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

ARM: correct the relocation type for bl on WoA #129

Merged
merged 1 commit into from
Sep 21, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ unsigned ARMWinCOFFObjectWriter::getRelocType(MCContext &Ctx,
case ARM::fixup_t2_condbranch:
return COFF::IMAGE_REL_ARM_BRANCH20T;
case ARM::fixup_t2_uncondbranch:
return COFF::IMAGE_REL_ARM_BRANCH24T;
case ARM::fixup_arm_thumb_bl:
return COFF::IMAGE_REL_ARM_BRANCH24T;
case ARM::fixup_arm_thumb_blx:
return COFF::IMAGE_REL_ARM_BLX23T;
case ARM::fixup_t2_movw_lo16:
Expand Down
28 changes: 18 additions & 10 deletions test/MC/ARM/coff-relocations.s
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,19 @@
.global target

.thumb_func
branch24t:
branch24t_0:
b target

@ CHECK-ENCODING-LABEL: branch24t:
@ CHECK-ENCODING-LABEL: branch24t_0:
@ CHECK-ENCODING-NEXT: b.w #0

.thumb_func
branch24t_1:
bl target

@ CHECK-ENCODING-LABEL: branch24t_1:
@ CHECK-ENCODING-NEXR: bl #0

.thumb_func
branch20t:
bcc target
Expand All @@ -26,10 +33,10 @@ branch20t:

.thumb_func
blx23t:
bl target
blx target

@ CHECK-ENCODING-LABEL: blx23t:
@ CHECK-ENCODING-NEXT: bl #0
@ CHECK-ENCODING-NEXT: blx #0

.thumb_func
mov32t:
Expand Down Expand Up @@ -90,12 +97,13 @@ secrel:
@ CHECK-RELOCATION: Relocations [
@ CHECK-RELOCATION: Section (1) .text {
@ CHECK-RELOCATION: 0x0 IMAGE_REL_ARM_BRANCH24T
@ CHECK-RELOCATION: 0x4 IMAGE_REL_ARM_BRANCH20T
@ CHECK-RELOCATION: 0x8 IMAGE_REL_ARM_BLX23T
@ CHECK-RELOCATION: 0xC IMAGE_REL_ARM_MOV32T
@ CHECK-RELOCATION: 0x1C IMAGE_REL_ARM_ADDR32
@ CHECK-RELOCATION: 0x28 IMAGE_REL_ARM_ADDR32NB
@ CHECK-RELOCATION: 0x34 IMAGE_REL_ARM_SECREL
@ CHECK-RELOCATION: 0x4 IMAGE_REL_ARM_BRANCH24T
@ CHECK-RELOCATION: 0x8 IMAGE_REL_ARM_BRANCH20T
@ CHECK-RELOCATION: 0xC IMAGE_REL_ARM_BLX23T
@ CHECK-RELOCATION: 0x10 IMAGE_REL_ARM_MOV32T
@ CHECK-RELOCATION: 0x20 IMAGE_REL_ARM_ADDR32
@ CHECK-RELOCATION: 0x2C IMAGE_REL_ARM_ADDR32NB
@ CHECK-RELOCATION: 0x38 IMAGE_REL_ARM_SECREL
@ CHECK-RELOCATION: }
@ CHECK-RELOCATION: ]