[commit: ghc] master: Handle sign bit when generating veneer for ARM Thumb branch relocation (c47c47a)
Ian Lynagh
igloo at earth.li
Sat Apr 27 03:09:50 CEST 2013
Repository : http://darcs.haskell.org/ghc.git/
On branch : master
https://github.com/ghc/ghc/commit/c47c47a4afb3aea920a8006cd44ced5874664288
>---------------------------------------------------------------
commit c47c47a4afb3aea920a8006cd44ced5874664288
Author: Colin Watson <cjwatson at canonical.com>
Date: Tue Apr 9 00:02:27 2013 +0100
Handle sign bit when generating veneer for ARM Thumb branch relocation
>---------------------------------------------------------------
rts/Linker.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/rts/Linker.c b/rts/Linker.c
index a002681..2bcc522 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -4957,6 +4957,7 @@ do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC,
// Generate veneer
SymbolExtra *extra = makeArmSymbolExtra(oc, ELF_R_SYM(info), S+imm+4, 1, is_target_thm);
offset = (StgWord32) &extra->jumpIsland - P - 4;
+ sign = offset >> 31;
to_thm = 1;
} else if (!is_target_thm && ELF_R_TYPE(info) == R_ARM_THM_CALL) {
offset &= ~0x3;
More information about the ghc-commits
mailing list