1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Header to factor out platform differences in asm code. 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// On Darwin, all symbols get an underscore prepended when compiled. If we 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// use any such symbols in asm code, we need to add that underscore. So in 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// general, any symbol named in asm code should be wrapped by VG_SYM. 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// This one is for use in inline asm in C files. 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#if defined(VGO_darwin) 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define VG_SYM(x) "_"#x 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#else 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define VG_SYM(x) #x 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// This one is for use in asm files. 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#if defined(VGO_darwin) 16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define VG_SYM_ASM(x) _##x 17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#else 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define VG_SYM_ASM(x) x 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif 20