History

Add some relocations to riscv64-link.c

dlltest failed on a riscv machine.

herman ten brugge committed 2 years ago

Commit 2701dcf1 parent c13bbb51 file · +15 −0Browse files

Unified · Split

riscv64-link.c+15−0
@@ -39,10 +39,13 @@ int code_reloc (int reloc_type) · 38 unmodified lines
39 case R_RISCV_PCREL_LO12_S:39 case R_RISCV_PCREL_LO12_S:
40 case R_RISCV_32_PCREL:40 case R_RISCV_32_PCREL:
41 case R_RISCV_SET6:41 case R_RISCV_SET6:
42 case R_RISCV_SET8:
43 case R_RISCV_SET16:
42 case R_RISCV_SUB6:44 case R_RISCV_SUB6:
43 case R_RISCV_ADD16:45 case R_RISCV_ADD16:
44 case R_RISCV_ADD32:46 case R_RISCV_ADD32:
45 case R_RISCV_ADD64:47 case R_RISCV_ADD64:
48 case R_RISCV_SUB8:
46 case R_RISCV_SUB16:49 case R_RISCV_SUB16:
47 case R_RISCV_SUB32:50 case R_RISCV_SUB32:
48 case R_RISCV_SUB64:51 case R_RISCV_SUB64:
@@ -68,8 +71,11 @@ int gotplt_entry_type (int reloc_type) · 19 unmodified lines
68 case R_RISCV_RVC_JUMP:71 case R_RISCV_RVC_JUMP:
69 case R_RISCV_JUMP_SLOT:72 case R_RISCV_JUMP_SLOT:
70 case R_RISCV_SET6:73 case R_RISCV_SET6:
74 case R_RISCV_SET8:
75 case R_RISCV_SET16:
71 case R_RISCV_SUB6:76 case R_RISCV_SUB6:
72 case R_RISCV_ADD16:77 case R_RISCV_ADD16:
78 case R_RISCV_SUB8:
73 case R_RISCV_SUB16:79 case R_RISCV_SUB16:
74 return NO_GOTPLT_ENTRY;80 return NO_GOTPLT_ENTRY;
75 81
@@ -328,12 +334,21 @@ void relocate(TCCState *s1, ElfW_Rel *rel, int type, unsigned char *ptr, · 252 unmodified lines
328 case R_RISCV_ADD16:334 case R_RISCV_ADD16:
329 write16le(ptr, read16le(ptr) + val);335 write16le(ptr, read16le(ptr) + val);
330 return;336 return;
337 case R_RISCV_SUB8:
338 *ptr -= val;
339 return;
331 case R_RISCV_SUB16:340 case R_RISCV_SUB16:
332 write16le(ptr, read16le(ptr) - val);341 write16le(ptr, read16le(ptr) - val);
333 return;342 return;
334 case R_RISCV_SET6:343 case R_RISCV_SET6:
335 *ptr = (*ptr & ~0x3f) | (val & 0x3f);344 *ptr = (*ptr & ~0x3f) | (val & 0x3f);
336 return;345 return;
346 case R_RISCV_SET8:
347 *ptr = (*ptr & ~0xff) | (val & 0xff);
348 return;
349 case R_RISCV_SET16:
350 *ptr = (*ptr & ~0xffff) | (val & 0xffff);
351 return;
337 case R_RISCV_SUB6:352 case R_RISCV_SUB6:
338 *ptr = (*ptr & ~0x3f) | ((*ptr - val) & 0x3f);353 *ptr = (*ptr & ~0x3f) | ((*ptr - val) & 0x3f);
339 return;354 return;

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