From: Nick Clifton Date: Fri, 29 Nov 2002 21:00:50 +0000 (+0000) Subject: Allow BKPT instruction to be specified without an operand. Add a test for this. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=143c8e19b42606e003e1812e838e779fd1c69b21;p=binutils-gdb.git Allow BKPT instruction to be specified without an operand. Add a test for this. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 2925f1345df..b2ded4f9ce6 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2002-11-29 Nick Clifton + + * 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 * 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 12058668f01..690fbaf64ec 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 6023ba12172..396a852b697 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2002-11-29 Nick Clifton + + * 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 * 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 9afdc6e12a1..49d2cbbe4cd 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 d4f95228a4e..4624b7e12fb 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.