History

add arm64 relocs

herman ten brugge committed 5 years ago

Commit 33d5a9f1 parent 78d0f071 file · +18 −0Browse files

Unified · Split

arm64-link.c+18−0
@@ -37,7 +37,10 @@ int code_reloc (int reloc_type) · 36 unmodified lines
37 case R_AARCH64_ADD_ABS_LO12_NC:37 case R_AARCH64_ADD_ABS_LO12_NC:
38 case R_AARCH64_ADR_GOT_PAGE:38 case R_AARCH64_ADR_GOT_PAGE:
39 case R_AARCH64_LD64_GOT_LO12_NC:39 case R_AARCH64_LD64_GOT_LO12_NC:
40 case R_AARCH64_LDST128_ABS_LO12_NC:
40 case R_AARCH64_LDST64_ABS_LO12_NC:41 case R_AARCH64_LDST64_ABS_LO12_NC:
42 case R_AARCH64_LDST32_ABS_LO12_NC:
43 case R_AARCH64_LDST16_ABS_LO12_NC:
41 case R_AARCH64_LDST8_ABS_LO12_NC:44 case R_AARCH64_LDST8_ABS_LO12_NC:
42 case R_AARCH64_GLOB_DAT:45 case R_AARCH64_GLOB_DAT:
43 case R_AARCH64_COPY:46 case R_AARCH64_COPY:
@@ -64,7 +67,10 @@ int gotplt_entry_type (int reloc_type) · 20 unmodified lines
64 case R_AARCH64_MOVW_UABS_G3:67 case R_AARCH64_MOVW_UABS_G3:
65 case R_AARCH64_ADR_PREL_PG_HI21:68 case R_AARCH64_ADR_PREL_PG_HI21:
66 case R_AARCH64_ADD_ABS_LO12_NC:69 case R_AARCH64_ADD_ABS_LO12_NC:
70 case R_AARCH64_LDST128_ABS_LO12_NC:
67 case R_AARCH64_LDST64_ABS_LO12_NC:71 case R_AARCH64_LDST64_ABS_LO12_NC:
72 case R_AARCH64_LDST32_ABS_LO12_NC:
73 case R_AARCH64_LDST16_ABS_LO12_NC:
68 case R_AARCH64_LDST8_ABS_LO12_NC:74 case R_AARCH64_LDST8_ABS_LO12_NC:
69 case R_AARCH64_GLOB_DAT:75 case R_AARCH64_GLOB_DAT:
70 case R_AARCH64_JUMP_SLOT:76 case R_AARCH64_JUMP_SLOT:
@@ -243,10 +249,22 @@ void relocate(TCCState *s1, ElfW_Rel *rel, int type, unsigned char *ptr, addr_t · 172 unmodified lines
243 write32le(ptr, ((read32le(ptr) & 0xffc003ff) |249 write32le(ptr, ((read32le(ptr) & 0xffc003ff) |
244 (val & 0xfff) << 10));250 (val & 0xfff) << 10));
245 return;251 return;
252 case R_AARCH64_LDST16_ABS_LO12_NC:
253 write32le(ptr, ((read32le(ptr) & 0xffc003ff) |
254 (val & 0xffe) << 9));
255 return;
256 case R_AARCH64_LDST32_ABS_LO12_NC:
257 write32le(ptr, ((read32le(ptr) & 0xffc003ff) |
258 (val & 0xffc) << 8));
259 return;
246 case R_AARCH64_LDST64_ABS_LO12_NC:260 case R_AARCH64_LDST64_ABS_LO12_NC:
247 write32le(ptr, ((read32le(ptr) & 0xffc003ff) |261 write32le(ptr, ((read32le(ptr) & 0xffc003ff) |
248 (val & 0xff8) << 7));262 (val & 0xff8) << 7));
249 return;263 return;
264 case R_AARCH64_LDST128_ABS_LO12_NC:
265 write32le(ptr, ((read32le(ptr) & 0xffc003ff) |
266 (val & 0xff0) << 6));
267 return;
250 case R_AARCH64_JUMP26:268 case R_AARCH64_JUMP26:
251 case R_AARCH64_CALL26:269 case R_AARCH64_CALL26:
252#ifdef DEBUG_RELOC270#ifdef DEBUG_RELOC

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t