aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2006-02-22 15:03:30 +0000
committerPaul Brook <paul@codesourcery.com>2006-02-22 15:03:30 +0000
commitf40d16432570939c792ed5c67ff3687c055f3483 (patch)
treed177f740bb392a20e20f5afc92d7a125264b1e09
parent0dd0cb290997507d5b8b2d2eb4d3ddbab7f4b773 (diff)
downloadgdb-f40d16432570939c792ed5c67ff3687c055f3483.zip
gdb-f40d16432570939c792ed5c67ff3687c055f3483.tar.gz
gdb-f40d16432570939c792ed5c67ff3687c055f3483.tar.bz2
2005-02-22 Paul Brook <paul@codesourcery.com>
gas/ * config/tc-arm.c (do_pld): Remove incorrect write to inst.instruction. (encode_thumb32_addr_mode): Use correct operand. gas/testsuite/ * gas/arm/thumb32.d: Fix expected pld opcode.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-arm.c5
-rw-r--r--gas/testsuite/ChangeLog4
-rw-r--r--gas/testsuite/gas/arm/thumb32.d4
4 files changed, 14 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 15945a3..347d32e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2005-02-22 Paul Brook <paul@codesourcery.com>
+
+ * config/tc-arm.c (do_pld): Remove incorrect write to
+ inst.instruction.
+ (encode_thumb32_addr_mode): Use correct operand.
+
2006-02-21 Paul Brook <paul@codesourcery.com>
* config/tc-arm.c (md_apply_fix): Fix off-by-one errors.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 20a31b9..906f62a 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -5181,7 +5181,6 @@ do_pld (void)
_("writeback used in preload instruction"));
constraint (!inst.operands[0].preind,
_("unindexed addressing used in preload instruction"));
- inst.instruction |= inst.operands[0].reg;
encode_arm_addr_mode_2 (0, /*is_t=*/FALSE);
}
@@ -5900,7 +5899,7 @@ encode_thumb32_addr_mode (int i, bfd_boolean is_t, bfd_boolean is_d)
constraint (inst.operands[i].shifted && inst.operands[i].shift_kind != SHIFT_LSL,
_("Thumb supports only LSL in shifted register indexing"));
- inst.instruction |= inst.operands[1].imm;
+ inst.instruction |= inst.operands[i].imm;
if (inst.operands[i].shifted)
{
constraint (inst.reloc.exp.X_op != O_constant,
@@ -5916,7 +5915,7 @@ encode_thumb32_addr_mode (int i, bfd_boolean is_t, bfd_boolean is_d)
{
constraint (is_pc && inst.operands[i].writeback,
_("cannot use writeback with PC-relative addressing"));
- constraint (is_t && inst.operands[1].writeback,
+ constraint (is_t && inst.operands[i].writeback,
_("cannot use writeback with this instruction"));
if (is_d)
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 2cb93d1..bab0878 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2005-02-22 Paul Brook <paul@codesourcery.com>
+
+ * gas/arm/thumb32.d: Fix expected pld opcode.
+
2006-02-17 Shrirang Khisti <shrirangk@kpitcummins.com>
Anil Paranjape <anilp1@kpitcummins.com>
Shilin Shakti <shilins@kpitcummins.com>
diff --git a/gas/testsuite/gas/arm/thumb32.d b/gas/testsuite/gas/arm/thumb32.d
index 0c1da2f..e811b14 100644
--- a/gas/testsuite/gas/arm/thumb32.d
+++ b/gas/testsuite/gas/arm/thumb32.d
@@ -513,8 +513,8 @@ Disassembly of section .text:
0[0-9a-f]+ <[^>]+> f815 f930 pld \[r5\], #-48
0[0-9a-f]+ <[^>]+> f815 ff30 pld \[r5, #48\]!
0[0-9a-f]+ <[^>]+> f815 fd30 pld \[r5, #-48\]!
-0[0-9a-f]+ <[^>]+> f815 f000 pld \[r5, r0\]
-0[0-9a-f]+ <[^>]+> f819 f000 pld \[r9, r0\]
+0[0-9a-f]+ <[^>]+> f815 f004 pld \[r5, r4\]
+0[0-9a-f]+ <[^>]+> f819 f00c pld \[r9, ip\]
0[0-9a-f]+ <[^>]+> f89f f006 pld \[pc, #6\] ; 0+5ba <[^>]+>
0[0-9a-f]+ <[^>]+> f81f f02a pld \[pc, #-42\] ; 0+58e <[^>]+>
0[0-9a-f]+ <[^>]+> e9d5 2300 ldrd r2, r3, \[r5\]