mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-15 05:01:13 +08:00
2006-04-07 Paul Brook <paul@codesourcery.com>
gas/ * config/tc-arm.c (md_apply_fix): Set H bit on blx instruction. gas/testsuite/ * gas/arm/blx-local.d: New test. * gas/arm/blx-local.d: New test.
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
2006-04-07 Paul Brook <paul@codesourcery.com>
|
||||||
|
|
||||||
|
* config/tc-arm.c (md_apply_fix): Set H bit on blx instruction.
|
||||||
|
|
||||||
2006-04-07 Paul Brook <paul@codesourcery.com>
|
2006-04-07 Paul Brook <paul@codesourcery.com>
|
||||||
|
|
||||||
* config/tc-arm.c (THUMB2_LOAD_BIT): Define.
|
* config/tc-arm.c (THUMB2_LOAD_BIT): Define.
|
||||||
|
@ -11927,6 +11927,14 @@ md_apply_fix (fixS * fixP,
|
|||||||
{
|
{
|
||||||
newval = md_chars_to_number (buf, INSN_SIZE);
|
newval = md_chars_to_number (buf, INSN_SIZE);
|
||||||
newval |= (value >> 2) & 0x00ffffff;
|
newval |= (value >> 2) & 0x00ffffff;
|
||||||
|
/* Set the H bit on BLX instructions. */
|
||||||
|
if (temp == 1)
|
||||||
|
{
|
||||||
|
if (value & 2)
|
||||||
|
newval |= 0x01000000;
|
||||||
|
else
|
||||||
|
newval &= ~0x01000000;
|
||||||
|
}
|
||||||
md_number_to_chars (buf, newval, INSN_SIZE);
|
md_number_to_chars (buf, newval, INSN_SIZE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2006-04-07 Paul Brook <paul@codesourcery.com>
|
||||||
|
|
||||||
|
* gas/arm/blx-local.d: New test.
|
||||||
|
* gas/arm/blx-local.d: New test.
|
||||||
|
|
||||||
2006-04-07 Paul Brook <paul@codesourcery.com>
|
2006-04-07 Paul Brook <paul@codesourcery.com>
|
||||||
|
|
||||||
* gas/arm/thumb2_pool.d: New test.
|
* gas/arm/thumb2_pool.d: New test.
|
||||||
|
14
gas/testsuite/gas/arm/blx-local.d
Normal file
14
gas/testsuite/gas/arm/blx-local.d
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#name: Local BLX instructions
|
||||||
|
#objdump: -dr --prefix-addresses --show-raw-insn
|
||||||
|
#as:
|
||||||
|
|
||||||
|
# Test assembler resolution of blx instructions.
|
||||||
|
|
||||||
|
.*: +file format .*arm.*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
0+00 <[^>]*> fa000000 blx 00+8 <foo>
|
||||||
|
0+04 <[^>]*> fbffffff blx 00+a <foo2>
|
||||||
|
0+08 <[^>]*> 46c0 nop \(mov r8, r8\)
|
||||||
|
0+0a <[^>]*> 46c0 nop \(mov r8, r8\)
|
16
gas/testsuite/gas/arm/blx-local.s
Normal file
16
gas/testsuite/gas/arm/blx-local.s
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
.text
|
||||||
|
.arch armv5t
|
||||||
|
.arm
|
||||||
|
one:
|
||||||
|
blx foo
|
||||||
|
blx foo2
|
||||||
|
|
||||||
|
.thumb
|
||||||
|
.type foo, %function
|
||||||
|
.thumb_func
|
||||||
|
foo:
|
||||||
|
nop
|
||||||
|
.type foo2, %function
|
||||||
|
.thumb_func
|
||||||
|
foo2:
|
||||||
|
nop
|
Reference in New Issue
Block a user