Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.

Commit ee7a104

Browse files
authored
Merge pull request #129 from jordanrh1/fix-windows-arm
ARM: correct the relocation type for `bl` on WoA
2 parents 7051ead + 440cd3b commit ee7a104

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ unsigned ARMWinCOFFObjectWriter::getRelocType(MCContext &Ctx,
7575
case ARM::fixup_t2_condbranch:
7676
return COFF::IMAGE_REL_ARM_BRANCH20T;
7777
case ARM::fixup_t2_uncondbranch:
78-
return COFF::IMAGE_REL_ARM_BRANCH24T;
7978
case ARM::fixup_arm_thumb_bl:
79+
return COFF::IMAGE_REL_ARM_BRANCH24T;
8080
case ARM::fixup_arm_thumb_blx:
8181
return COFF::IMAGE_REL_ARM_BLX23T;
8282
case ARM::fixup_t2_movw_lo16:

test/MC/ARM/coff-relocations.s

+18-10
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,19 @@
1111
.global target
1212

1313
.thumb_func
14-
branch24t:
14+
branch24t_0:
1515
b target
1616

17-
@ CHECK-ENCODING-LABEL: branch24t:
17+
@ CHECK-ENCODING-LABEL: branch24t_0:
1818
@ CHECK-ENCODING-NEXT: b.w #0
1919

20+
.thumb_func
21+
branch24t_1:
22+
bl target
23+
24+
@ CHECK-ENCODING-LABEL: branch24t_1:
25+
@ CHECK-ENCODING-NEXR: bl #0
26+
2027
.thumb_func
2128
branch20t:
2229
bcc target
@@ -26,10 +33,10 @@ branch20t:
2633

2734
.thumb_func
2835
blx23t:
29-
bl target
36+
blx target
3037

3138
@ CHECK-ENCODING-LABEL: blx23t:
32-
@ CHECK-ENCODING-NEXT: bl #0
39+
@ CHECK-ENCODING-NEXT: blx #0
3340

3441
.thumb_func
3542
mov32t:
@@ -90,12 +97,13 @@ secrel:
9097
@ CHECK-RELOCATION: Relocations [
9198
@ CHECK-RELOCATION: Section (1) .text {
9299
@ CHECK-RELOCATION: 0x0 IMAGE_REL_ARM_BRANCH24T
93-
@ CHECK-RELOCATION: 0x4 IMAGE_REL_ARM_BRANCH20T
94-
@ CHECK-RELOCATION: 0x8 IMAGE_REL_ARM_BLX23T
95-
@ CHECK-RELOCATION: 0xC IMAGE_REL_ARM_MOV32T
96-
@ CHECK-RELOCATION: 0x1C IMAGE_REL_ARM_ADDR32
97-
@ CHECK-RELOCATION: 0x28 IMAGE_REL_ARM_ADDR32NB
98-
@ CHECK-RELOCATION: 0x34 IMAGE_REL_ARM_SECREL
100+
@ CHECK-RELOCATION: 0x4 IMAGE_REL_ARM_BRANCH24T
101+
@ CHECK-RELOCATION: 0x8 IMAGE_REL_ARM_BRANCH20T
102+
@ CHECK-RELOCATION: 0xC IMAGE_REL_ARM_BLX23T
103+
@ CHECK-RELOCATION: 0x10 IMAGE_REL_ARM_MOV32T
104+
@ CHECK-RELOCATION: 0x20 IMAGE_REL_ARM_ADDR32
105+
@ CHECK-RELOCATION: 0x2C IMAGE_REL_ARM_ADDR32NB
106+
@ CHECK-RELOCATION: 0x38 IMAGE_REL_ARM_SECREL
99107
@ CHECK-RELOCATION: }
100108
@ CHECK-RELOCATION: ]
101109

0 commit comments

Comments
 (0)