aboutsummaryrefslogtreecommitdiff
path: root/tccelf.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2016-10-14 16:45:37 +0200
committerMichael Matz <matz@suse.de>2016-10-14 16:47:43 +0200
commit7600b03f35a0178978e864c17abac9a5f3a24032 (patch)
treeac1c7898da5f1cd880d4f55200790dfd1ea6ad76 /tccelf.c
parentc232af7ddbbf55055e0a47d9f0ca43dc6dd3d9de (diff)
downloadtinycc-7600b03f35a0178978e864c17abac9a5f3a24032.tar.gz
tinycc-7600b03f35a0178978e864c17abac9a5f3a24032.tar.bz2
arm64: Support PREL32 relocation
A PC-relative 32bit value is stored.
Diffstat (limited to 'tccelf.c')
-rw-r--r--tccelf.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/tccelf.c b/tccelf.c
index 6c54036..f0a3241 100644
--- a/tccelf.c
+++ b/tccelf.c
@@ -791,6 +791,9 @@ ST_FUNC void relocate_section(TCCState *s1, Section *s)
case R_AARCH64_ABS32:
write32le(ptr, val);
break;
+ case R_AARCH64_PREL32:
+ write32le(ptr, val - addr);
+ break;
case R_AARCH64_MOVW_UABS_G0_NC:
write32le(ptr, ((read32le(ptr) & 0xffe0001f) |
(val & 0xffff) << 5));