[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