From 87a1fd79cebe5d14a29922446bcf3f58f7d4e518 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 21 Aug 2006 11:41:24 +0000 Subject: [PATCH] gas: * config/tc-arm.c (s_arm_unwind_save_mmxwr): Correct condition for merging with previous long opcode. gas/testsuite: * gas/arm/unwind.s: Test not merging iWMMXt register save with previous long opcode. * gas/arm/unwind.d, gas/arm/unwind_vxworks.d: Update. --- gas/ChangeLog | 5 +++++ gas/config/tc-arm.c | 2 +- gas/testsuite/ChangeLog | 6 ++++++ gas/testsuite/gas/arm/unwind.d | 4 ++-- gas/testsuite/gas/arm/unwind.s | 2 ++ gas/testsuite/gas/arm/unwind_vxworks.d | 4 ++-- 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index d9b215f7e90..ca8e0a5ecfa 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2006-08-21 Joseph Myers + + * config/tc-arm.c (s_arm_unwind_save_mmxwr): Correct condition for + merging with previous long opcode. + 2006-08-22 Pedro Alves * Makefile.am (TARG_ENV_HFILES): Add te-wince-pe.h. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 577c76c1204..63aa32e75d0 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -3448,7 +3448,7 @@ s_arm_unwind_save_mmxwr (void) op = 0xffff << (reg - 1); if (reg > 0 - || ((mask & op) == (1u << (reg - 1)))) + && ((mask & op) == (1u << (reg - 1)))) { op = (1 << (reg + i + 1)) - 1; op &= ~((1 << reg) - 1); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 35220b60d68..d4bd44be426 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-08-21 Joseph Myers + + * gas/arm/unwind.s: Test not merging iWMMXt register save with + previous long opcode. + * gas/arm/unwind.d, gas/arm/unwind_vxworks.d: Update. + 2006-08-16 Julian Brown * gas/arm/noarm.s: Add test for disabled ARM insns. diff --git a/gas/testsuite/gas/arm/unwind.d b/gas/testsuite/gas/arm/unwind.d index cd4a7c7995c..e7a9036d64d 100644 --- a/gas/testsuite/gas/arm/unwind.d +++ b/gas/testsuite/gas/arm/unwind.d @@ -32,8 +32,8 @@ Contents of section .text: 0010 (04200520|20052004) .* Contents of section .ARM.extab: 0000 (449b0181 b0b08086|81019b44 8680b0b0) 00000000 00000000 .* - 0010 (8402b101 b0b0b005 2a000000 00c60181|01b10284 05b0b0b0 0000002a 8101c600) .* - 0020 (b0b0c1c1|c1c1b0b0) 00000000 .* + 0010 (8402b101 b0b0b005 2a000000 00c60281|01b10284 05b0b0b0 0000002a 8102c600) .* + 0020 (d0c6c1c1 b0b0c0c6|c1c1c6d0 c6c0b0b0) 00000000 .* Contents of section .ARM.exidx: 0000 00000000 (b0b0a880 04000000|80a8b0b0 00000004) 00000000 .* 0010 (08000000 0c000000 0c000000 1c000000|00000008 0000000c 0000000c 0000001c) .* diff --git a/gas/testsuite/gas/arm/unwind.s b/gas/testsuite/gas/arm/unwind.s index 7d0f126954f..f0503788b3a 100644 --- a/gas/testsuite/gas/arm/unwind.s +++ b/gas/testsuite/gas/arm/unwind.s @@ -27,6 +27,8 @@ foo2: @ Custom personality routine .fnend foo3: @ Saving iwmmxt registers .fnstart + .save {wr12} + .save {wr13} .save {wr11} .save {wr10} .save {wr10, wr11} diff --git a/gas/testsuite/gas/arm/unwind_vxworks.d b/gas/testsuite/gas/arm/unwind_vxworks.d index ccd16a65cc9..4e4b215ad39 100644 --- a/gas/testsuite/gas/arm/unwind_vxworks.d +++ b/gas/testsuite/gas/arm/unwind_vxworks.d @@ -31,8 +31,8 @@ Contents of section .text: 0010 (04200520|20052004) .* Contents of section .ARM.extab: 0000 (449b0181 b0b08086|81019b44 8680b0b0) 00000000 00000000 .* - 0010 (8402b101 b0b0b005 2a000000 00c60181|01b10284 05b0b0b0 0000002a 8101c600) .* - 0020 (b0b0c1c1|c1c1b0b0) 00000000 .* + 0010 (8402b101 b0b0b005 2a000000 00c60281|01b10284 05b0b0b0 0000002a 8102c600) .* + 0020 (d0c6c1c1 b0b0c0c6|c1c1c6d0 c6c0b0b0) 00000000 .* Contents of section .ARM.exidx: 0000 00000000 (b0b0a880|80a8b0b0) 00000000 00000000 .* 0010 00000000 00000000 00000000 00000000 .* -- 2.30.2