diff options
author | Nick Clifton <nickc@redhat.com> | 2002-11-29 21:00:50 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2002-11-29 21:00:50 +0000 |
commit | 143c8e19b42606e003e1812e838e779fd1c69b21 (patch) | |
tree | c3f99b825a84853796796c1cb31b70bf7ac7be09 /gas | |
parent | 1d9b2aa8d89cda5090b57ea1b854d44206242bac (diff) | |
download | gdb-143c8e19b42606e003e1812e838e779fd1c69b21.zip gdb-143c8e19b42606e003e1812e838e779fd1c69b21.tar.gz 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/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 14 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/arch5tej.d | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/arch5tej.s | 8 |
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. |