remove textrels with -fPIC/-fPIE (for android/ios)

This commit is contained in:
kub 2019-12-03 23:52:13 +01:00
parent 4f992bf541
commit 9760505eaf
10 changed files with 298 additions and 261 deletions

View file

@ -211,7 +211,7 @@ enum { XT_UXTW=0x4, XT_UXTX=0x6, XT_LSL=0x7, XT_SXTW=0xc, XT_SXTX=0xe };
#define A64_MOVT_IMM(rd, imm16, lsl16) \
A64_INSN(0x9,0x3,0x2,lsl16,_,_,_,(imm16)&0xffff,rd)
// rd = rn SHIFT imm6
// rd = rn SHIFT imm5/imm6 (for Wn/Xn)
#define A64_LSL_IMM(rd, rn, bits) /* UBFM */ \
A64_INSN(0x9,0x2,0x4,_,32-(bits),_,31-(bits),rn,rd)
#define A64_LSR_IMM(rd, rn, bits) /* UBFM */ \
@ -229,7 +229,7 @@ enum { XT_UXTW=0x4, XT_UXTX=0x6, XT_LSL=0x7, XT_SXTW=0xc, XT_SXTX=0xe };
#define A64_BFX_IMM(rd, rn, lsb, bits) /* UBFM */ \
A64_INSN(0x9,0x2,0x4,_,lsb,_,bits-1,rn,rd)
#define A64_BFI_IMM(rd, rn, lsb, bits) /* BFM */ \
A64_INSN(0x9,0x1,0x4,_,(32-lsb)&31,_,bits-1,rn,rd)
A64_INSN(0x9,0x1,0x4,_,-(lsb)&0x1f,_,bits-1,rn,rd)
// multiplication

View file

@ -971,9 +971,8 @@ static void emith_log_imm(int op, int rd, int rs, u32 imm)
EMIT(MIPS_ASR_IMM(d, s, cnt))
#if defined(__mips_isa_rev) && __mips_isa_rev >= 2
#define emith_ror(d, s, cnt) do { \
EMIT(MIPS_ROR_IMM(d, s, cnt)); \
} while (0)
#define emith_ror(d, s, cnt) \
EMIT(MIPS_ROR_IMM(d, s, cnt))
#else
#define emith_ror(d, s, cnt) do { \
EMIT(MIPS_LSL_IMM(AT, s, 32-(cnt))); \
@ -985,9 +984,8 @@ static void emith_log_imm(int op, int rd, int rs, u32 imm)
emith_ror(d, s, cnt)
#if defined(__mips_isa_rev) && __mips_isa_rev >= 2
#define emith_rol(d, s, cnt) do { \
EMIT(MIPS_ROR_IMM(d, s, 32-(cnt))); \
} while (0)
#define emith_rol(d, s, cnt) \
EMIT(MIPS_ROR_IMM(d, s, 32-(cnt)))
#else
#define emith_rol(d, s, cnt) do { \
EMIT(MIPS_LSR_IMM(AT, s, 32-(cnt))); \