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