Index: lld/trunk/ELF/Arch/Hexagon.cpp =================================================================== --- lld/trunk/ELF/Arch/Hexagon.cpp +++ lld/trunk/ELF/Arch/Hexagon.cpp @@ -128,6 +128,9 @@ case R_HEX_12_X: or32le(Loc, applyMask(0x000007e0, Val)); break; + case R_HEX_32: + or32le(Loc, applyMask(0xffffffff, Val)); + break; case R_HEX_32_6_X: or32le(Loc, applyMask(0x0fff3fff, Val >> 6)); break; Index: lld/trunk/test/ELF/hexagon.s =================================================================== --- lld/trunk/test/ELF/hexagon.s +++ lld/trunk/test/ELF/hexagon.s @@ -172,3 +172,8 @@ # The rest: r1:0=combine(r2,##_start); # CHECK: 7302e000 r1:0 = combine(r2,##69632) } + +# R_HEX_32: +r_hex_32: +.word _start +# CHECK: 00011000