1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| | #if __FDPIC__
#define ABI_SUFFIX "-fdpic"
#else
#define ABI_SUFFIX ""
#endif
#define LDSO_ARCH "xtensa" ABI_SUFFIX
#define TPOFF_K 0
#define REL_PLT R_XTENSA_JMP_SLOT
#define REL_GOT R_XTENSA_GLOB_DAT
#if __FDPIC__
#define REL_SYMBOLIC R_XTENSA_SYM32
#define REL_TPOFF R_XTENSA_TLS_TPOFF
#define REL_TLSDESC R_XTENSA_TLSDESC
#define REL_FUNCDESC R_XTENSA_FUNCDESC
#define REL_FUNCDESC_VAL R_XTENSA_FUNCDESC_VALUE
#define DL_FDPIC 1
#define DL_NOMMU_SUPPORT 1
#define CRTJMP(pc,sp) do { \
register size_t a4 __asm__("a4") = ((size_t *)(sp))[-2]; \
__asm__ __volatile__( "mov a1, %1 ; jx %0" \
: : "r"(pc), "r"(sp), "r"(a4) : "memory" ); } while(0)
#define GETFUNCSYM(fp, sym, got) __asm__ ( \
"movi %0, " #sym "@GOTOFFFUNCDESC ; add %0, %0, %1" \
: "=&a"(*fp) : "a"(got) : "memory" )
#endif
|