1570af302Sopenharmony_ci#define LDSO_ARCH "or1k" 2570af302Sopenharmony_ci 3570af302Sopenharmony_ci#define TPOFF_K 0 4570af302Sopenharmony_ci 5570af302Sopenharmony_ci#define REL_SYMBOLIC R_OR1K_32 6570af302Sopenharmony_ci#define REL_GOT R_OR1K_GLOB_DAT 7570af302Sopenharmony_ci#define REL_PLT R_OR1K_JMP_SLOT 8570af302Sopenharmony_ci#define REL_RELATIVE R_OR1K_RELATIVE 9570af302Sopenharmony_ci#define REL_COPY R_OR1K_COPY 10570af302Sopenharmony_ci#define REL_DTPMOD R_OR1K_TLS_DTPMOD 11570af302Sopenharmony_ci#define REL_DTPOFF R_OR1K_TLS_DTPOFF 12570af302Sopenharmony_ci#define REL_TPOFF R_OR1K_TLS_TPOFF 13570af302Sopenharmony_ci 14570af302Sopenharmony_ci#define CRTJMP(pc,sp) __asm__ __volatile__( \ 15570af302Sopenharmony_ci "l.jr %0 ; l.ori r1,%1,0" : : "r"(pc), "r"(sp) : "memory" ) 16570af302Sopenharmony_ci 17570af302Sopenharmony_ci#define GETFUNCSYM(fp, sym, got) __asm__ ( \ 18570af302Sopenharmony_ci ".hidden " #sym " \n" \ 19570af302Sopenharmony_ci " l.jal 1f \n" \ 20570af302Sopenharmony_ci " l.nop \n" \ 21570af302Sopenharmony_ci " .word " #sym "-. \n" \ 22570af302Sopenharmony_ci "1: l.lwz %0, 0(r9) \n" \ 23570af302Sopenharmony_ci " l.add %0, %0, r9 \n" \ 24570af302Sopenharmony_ci : "=r"(*(fp)) : : "memory", "r9" ) 25