From 143c8e19b42606e003e1812e838e779fd1c69b21 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 29 Nov 2002 21:00:50 +0000 Subject: [PATCH] Allow BKPT instruction to be specified without an operand. Add a test for this. --- gas/ChangeLog | 6 ++++++ gas/config/tc-arm.c | 14 ++++++++++---- gas/testsuite/ChangeLog | 6 ++++++ gas/testsuite/gas/arm/arch5tej.d | 4 ++-- 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 + + * 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 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 + + * 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 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. -- 2.7.4