aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2006-04-07 15:08:04 +0000
committerPaul Brook <paul@codesourcery.com>2006-04-07 15:08:04 +0000
commit7ae2971b7af507f3d30ff3c0877bb9448e1eb683 (patch)
tree8871dc050002ecd7bd966448c4a4a8889ffe9577 /gas/config
parent53365c0d765c72dcca8ca57f4c8dd8bb2e0c1b19 (diff)
downloadgdb-7ae2971b7af507f3d30ff3c0877bb9448e1eb683.zip
gdb-7ae2971b7af507f3d30ff3c0877bb9448e1eb683.tar.gz
gdb-7ae2971b7af507f3d30ff3c0877bb9448e1eb683.tar.bz2
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.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-arm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index bf91b89..54cd349 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -11927,6 +11927,14 @@ md_apply_fix (fixS * fixP,
{
newval = md_chars_to_number (buf, INSN_SIZE);
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);
}
break;