Allow BKPT instruction to be specified without an operand. Add a test for this.
authorNick Clifton <nickc@redhat.com>
Fri, 29 Nov 2002 21:00:50 +0000 (21:00 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 29 Nov 2002 21:00:50 +0000 (21:00 +0000)
gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/arch5tej.d
gas/testsuite/gas/arm/arch5tej.s

index 2925f1345dfa3ff3f2901d8b67e1ec9dd4473923..b2ded4f9ce6b42188c71921f33f008f218f44d06 100644 (file)
@@ -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
index 12058668f01f56ac3a412bb1ad9e7e41d77dd760..690fbaf64ec060dcc3b86bcaec537f14e8fdcb41 100644 (file)
@@ -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;
     }
 
index 6023ba12172735afa89091ec6c6e5068598c7227..396a852b697ededb6b44979dc3f6a0e4920c9cd6 100644 (file)
@@ -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.
index 9afdc6e12a1098a70ade3b045aa441f0be65f6cf..49d2cbbe4cdbc7a109290ca9fa28028639fa9d0e 100644 (file)
@@ -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
index d4f95228a4ea6b7a4bc3c4beedeb94ebfe403f43..4624b7e12fb1a9c476d5b8563f5cfe77744daa40 100644 (file)
@@ -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.