Unified · Split
| @@ -88,9 +88,8 @@ void relocate(TCCState *s1, ElfW_Rel *rel, int type, char *ptr, addr_t addr, add · 87 unmodified lines | |||
| 88 | (char *) symtab_section->link->data + sym->st_name); | 88 | (char *) symtab_section->link->data + sym->st_name); |
| 89 | #endif | 89 | #endif |
| 90 | if (((val - addr) + ((uint64_t)1 << 27)) & ~(uint64_t)0xffffffc) | 90 | if (((val - addr) + ((uint64_t)1 << 27)) & ~(uint64_t)0xffffffc) |
| 91 | { | 91 | tcc_error("R_AARCH64_(JUMP|CALL)26 relocation failed" |
| 92 | tcc_error("R_AARCH64_(JUMP|CALL)26 relocation failed (val=%lx, addr=%lx)", addr, val); | 92 | " (val=%lx, addr=%lx)", val, addr); |
| 93 | } | ||
| 94 | write32le(ptr, (0x14000000 | | 93 | write32le(ptr, (0x14000000 | |
| 95 | (uint32_t)(type == R_AARCH64_CALL26) << 31 | | 94 | (uint32_t)(type == R_AARCH64_CALL26) << 31 | |
| 96 | ((val - addr) >> 2 & 0x3ffffff))); | 95 | ((val - addr) >> 2 & 0x3ffffff))); |