aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2002-11-29 21:00:50 +0000
committerNick Clifton <nickc@redhat.com>2002-11-29 21:00:50 +0000
commit143c8e19b42606e003e1812e838e779fd1c69b21 (patch)
treec3f99b825a84853796796c1cb31b70bf7ac7be09 /gas
parent1d9b2aa8d89cda5090b57ea1b854d44206242bac (diff)
downloadfsf-binutils-gdb-143c8e19b42606e003e1812e838e779fd1c69b21.zip
fsf-binutils-gdb-143c8e19b42606e003e1812e838e779fd1c69b21.tar.gz
fsf-binutils-gdb-143c8e19b42606e003e1812e838e779fd1c69b21.tar.bz2
Allow BKPT instruction to be specified without an operand. Add a test for this.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-arm.c14
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/arm/arch5tej.d4
-rw-r--r--gas/testsuite/gas/arm/arch5tej.s8
5 files changed, 27 insertions, 11 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 2925f13..b2ded4f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2002-11-29 Nick Clifton <nickc@redhat.com>
+
+ * config/tc-arm.c (do_t_bkpt): If no operand is specified,
+ assume a value of zero.
+ (do_bkpt): Likewise.
+
2002-11-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* config/tc-sh.c (md_apply_fix3): Call S_SET_THREAD_LOCAL
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 1205866..690fbaf 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -3929,9 +3929,12 @@ do_t_bkpt (str)
str ++;
memset (& expr, '\0', sizeof (expr));
- if (my_get_expression (& expr, & str) || (expr.X_op != O_constant))
+ if (my_get_expression (& expr, & str)
+ || (expr.X_op != O_constant
+ /* As a convenience we allow 'bkpt' without an operand. */
+ && expr.X_op != O_absent))
{
- inst.error = _("bad or missing expression");
+ inst.error = _("bad expression");
return;
}
@@ -4111,9 +4114,12 @@ do_bkpt (str)
memset (& expr, '\0', sizeof (expr));
- if (my_get_expression (& expr, & str) || (expr.X_op != O_constant))
+ if (my_get_expression (& expr, & str)
+ || (expr.X_op != O_constant
+ /* As a convenience we allow 'bkpt' without an operand. */
+ && expr.X_op != O_absent))
{
- inst.error = _("bad or missing expression");
+ inst.error = _("bad expression");
return;
}
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 6023ba1..396a852 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2002-11-29 Nick Clifton <nickc@redhat.com>
+
+ * gas/arm/arch5tej.s: Replace "nop"s with tests of breakpoint
+ instruction.
+ * gas/arm/arch5tej.d: Expect "bkpt"s not nops.
+
2002-11-26 Hans-Peter Nilsson <hp@axis.com>
* gas/cris/rd-bcnst.d, gas/cris/rd-bcnst.d: New test.
diff --git a/gas/testsuite/gas/arm/arch5tej.d b/gas/testsuite/gas/arm/arch5tej.d
index 9afdc6e..49d2cbb 100644
--- a/gas/testsuite/gas/arm/arch5tej.d
+++ b/gas/testsuite/gas/arm/arch5tej.d
@@ -13,5 +13,5 @@ Disassembly of section .text:
0+0c <[^>]*> 012fff20 ? bxjeq r0
0+10 <[^>]*> 412fff20 ? bxjmi r0
0+14 <[^>]*> 512fff27 ? bxjpl r7
-0+18 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\)
-0+1c <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\)
+0+18 <[^>]*> e1200070 ? bkpt 0x0000
+0+1c <[^>]*> e120007a ? bkpt 0x000a
diff --git a/gas/testsuite/gas/arm/arch5tej.s b/gas/testsuite/gas/arm/arch5tej.s
index d4f9522..4624b7e 100644
--- a/gas/testsuite/gas/arm/arch5tej.s
+++ b/gas/testsuite/gas/arm/arch5tej.s
@@ -7,8 +7,6 @@ label:
bxjeq r0
bxjmi r0
bxjpl r7
-
- # Add two nop instructions to ensure that the output
- # is aligned as will automatically be done for arm-aout.
- nop
- nop
+
+ bkpt @ Support for a breakpoint without an argument
+ bkpt 10 @ is a feature added to GAS.