* config/tc-arm.c (do_t_branch): Treat (PLT) branches as wide.

gas/testsuite/
	* gas/arm/plt-1.s, gas/arm/plt-1.d: New test.
This commit is contained in:
Richard Sandiford 2010-11-10 13:36:31 +00:00
parent fd3646071c
commit 12d6b0b7ba
5 changed files with 77 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2010-11-10 Richard Sandiford <richard.sandiford@linaro.org>
* config/tc-arm.c (do_t_branch): Treat (PLT) branches as wide.
2010-11-05 Nick Clifton <nickc@redhat.com>
* config/tc-cr16.c (getprocreg_image): Fix typo MAX_PREG ->

View File

@ -2213,7 +2213,7 @@ create_neon_reg_alias (char *newname, char *p)
struct reg_entry mybasereg;
struct neon_type ntype;
struct neon_typed_alias typeinfo;
char *namebuf, *nameend;
char *namebuf, *nameend ATTRIBUTE_UNUSED;
int namelen;
typeinfo.defined = 0;
@ -9683,7 +9683,9 @@ do_t_branch (void)
else
opcode = inst.instruction;
if (unified_syntax && inst.size_req == 4)
if (unified_syntax
&& (inst.size_req == 4
|| (inst.size_req != 2 && inst.operands[0].hasreloc)))
{
inst.instruction = THUMB_OP32(opcode);
if (cond == COND_ALWAYS)

View File

@ -1,3 +1,7 @@
2010-11-10 Richard Sandiford <richard.sandiford@linaro.org>
* gas/arm/plt-1.s, gas/arm/plt-1.d: New test.
2010-11-08 Thomas Schwinge <thomas@schwinge.name>
* lib/gas-defs.exp (is_elf_format): Consider for *-*-gnu*, too.

View File

@ -0,0 +1,38 @@
# name: Thumb branch to PLT
# as:
# objdump: -dr
# This test is only valid on ELF based ports.
#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
.*: +file format .*arm.*
Disassembly of section \.text:
0+000 <Strong1>:
0: f7ff bffe b\.w 12 <Strong2>
0: R_ARM_THM_JUMP24 Strong2
4: f7ff bffe b\.w 12 <Strong2>
4: R_ARM_THM_JUMP24 Strong2
8: e7fe b\.n 12 <Strong2>
8: R_ARM_THM_JUMP11 Strong2
a: e7fe b\.n 12 <Strong2>
a: R_ARM_THM_JUMP11 Strong2
c: f7ff bffe b\.w 12 <Strong2>
c: R_ARM_THM_JUMP24 Strong2
10: e7fe b\.n 12 <Strong2>
10: R_ARM_THM_JUMP11 Strong2
0+012 <Strong2>:
12: f7ff bffe b\.w 0 <Strong1>
12: R_ARM_THM_JUMP24 Strong1
16: f7ff bffe b\.w 0 <Strong1>
16: R_ARM_THM_JUMP24 Strong1
1a: e7fe b\.n 0 <Strong1>
1a: R_ARM_THM_JUMP11 Strong1
1c: e7fe b\.n 0 <Strong1>
1c: R_ARM_THM_JUMP11 Strong1
1e: f7ff bffe b\.w 0 <Strong1>
1e: R_ARM_THM_JUMP24 Strong1
22: e7fe b\.n 0 <Strong1>
22: R_ARM_THM_JUMP11 Strong1

View File

@ -0,0 +1,27 @@
.syntax unified
.text
.thumb
.globl Strong1
.thumb_func
.type Strong1, %function
Strong1:
b Strong2(PLT)
b.w Strong2(PLT)
b.n Strong2(PLT)
b Strong2
b.w Strong2
b.n Strong2
.size Strong1,.-Strong1
.globl Strong2
.thumb_func
.type Strong2, %function
Strong2:
b Strong1(PLT)
b.w Strong1(PLT)
b.n Strong1(PLT)
b Strong1
b.w Strong1
b.n Strong1
.size Strong2, .-Strong2