diff options
author | Nick Clifton <nickc@redhat.com> | 2005-08-03 09:50:43 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2005-08-03 09:50:43 +0000 |
commit | f2184508ddc02259748ca1bd0363a6452ac6b564 (patch) | |
tree | 05545548ba3b8161118ab0c0622712be1a775312 /gas | |
parent | 9f4fb50211b7f57d241f911223874a1d16ae9c1a (diff) | |
download | gdb-f2184508ddc02259748ca1bd0363a6452ac6b564.zip gdb-f2184508ddc02259748ca1bd0363a6452ac6b564.tar.gz gdb-f2184508ddc02259748ca1bd0363a6452ac6b564.tar.bz2 |
config/tc-arm.c (do_iwmmxt_wldstd): Correct the offset range for WLDRD/WSTRD
instruction.
gas/arm/iwmmxt-bad2.s: New file: Check for error messages about erroneous
offsets in iwmmxt instructions. Cannot be part of iwmmxt-bad.s because
the errors there stop the assembler before it gets to check the offsets
in instructions.
gas/arm/iwmmxt-bad2.d: New file.
gas/arm/iwmmxt-bad2.l: New file: Expected error messages.
gas/arm/iwmmxt.s: Change the offset values of the WLDRD, WSTRD and WSTRW
instructions to be larger than +/-255.
gas/arm/iwmmxt.d: Fix the expected results for these instructions.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 2 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 16 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/iwmmxt-bad2.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/iwmmxt-bad2.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/iwmmxt-bad2.s | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/iwmmxt.d | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/iwmmxt.s | 6 |
8 files changed, 36 insertions, 7 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index e4ff266..ac2b865 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2005-08-02 Khem Raj <kraj@mvista.com> + + * config/tc-arm.c (do_iwmmxt_wldstd): Correct the offset range for + WLDRD/WSTRD instruction. + 2005-08-02 Alan Modra <amodra@bigpond.net.au> * config/tc-ppc.c (md_apply_fix <ELF>): Don't warn on overflow diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 754bc4c..4033836 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -5516,7 +5516,7 @@ static void do_iwmmxt_wldstd (void) { inst.instruction |= inst.operands[0].reg << 12; - encode_arm_cp_address (1, TRUE, FALSE, BFD_RELOC_ARM_CP_OFF_IMM_S2); + encode_arm_cp_address (1, TRUE, FALSE, 0); } static void diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 579441c..2eabaf6 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,19 @@ +2005-08-03 Nick Clifton <nickc@redhat.com> + + * gas/arm/iwmmxt-bad2.s: New file: Check for error messages about + erroneous offsets in iwmmxt instructions. Cannot be part of + iwmmxt-bad.s because the errors there stop the assembler before it + gets to check the offsets in instructions. + * gas/arm/iwmmxt-bad2.d: New file. + * gas/arm/iwmmxt-bad2.l: New file: Expected error messages. + +2005-08-02 Khem Raj <kraj@mvista.com> + + * gas/arm/iwmmxt.s: Change the offset values of the WLDRD, WSTRD + and WSTRW instructions to be larger than +/-255. + * gas/arm/iwmmxt.d: Fix the expected results for these + instructions. + 2005-07-29 Paul Brook <paul@codesourcery.com> * gas/arm/thumb32.d: Fix expected output for writeback addressing diff --git a/gas/testsuite/gas/arm/iwmmxt-bad2.d b/gas/testsuite/gas/arm/iwmmxt-bad2.d new file mode 100644 index 0000000..c8587a4 --- /dev/null +++ b/gas/testsuite/gas/arm/iwmmxt-bad2.d @@ -0,0 +1,3 @@ +#name: iWMMXt CoProcessor offset errors +#as: -mcpu=iwmmxt +#error-output: iwmmxt-bad2.l diff --git a/gas/testsuite/gas/arm/iwmmxt-bad2.l b/gas/testsuite/gas/arm/iwmmxt-bad2.l new file mode 100644 index 0000000..3305bdf --- /dev/null +++ b/gas/testsuite/gas/arm/iwmmxt-bad2.l @@ -0,0 +1,3 @@ +[^:]*: Assembler messages: +[^:]*:1: Error: co-processor offset out of range +[^:]*:2: Error: co-processor offset out of range diff --git a/gas/testsuite/gas/arm/iwmmxt-bad2.s b/gas/testsuite/gas/arm/iwmmxt-bad2.s new file mode 100644 index 0000000..1132e10 --- /dev/null +++ b/gas/testsuite/gas/arm/iwmmxt-bad2.s @@ -0,0 +1,2 @@ + wldrd wr1, [r0, #3] + wstrd wr1, [r0, #0x400] diff --git a/gas/testsuite/gas/arm/iwmmxt.d b/gas/testsuite/gas/arm/iwmmxt.d index f7d81ec..8565f52 100644 --- a/gas/testsuite/gas/arm/iwmmxt.d +++ b/gas/testsuite/gas/arm/iwmmxt.d @@ -74,7 +74,7 @@ Disassembly of section .text: 0+108 <[^>]*> ed901024[ ]+wldrb[ ]+wr1, \[r0, #36\] 0+10c <[^>]*> 0df12018[ ]+wldrheq[ ]+wr2, \[r1, #24\]! 0+110 <[^>]*> 1cb23104[ ]+wldrwne[ ]+wr3, \[r2\], #16 -0+114 <[^>]*> 6dd34102[ ]+wldrdvs[ ]+wr4, \[r3, #8\] +0+114 <[^>]*> 6d534153[ ]+wldrdvs[ ]+wr4, \[r3, #-332\] 0+118 <[^>]*> fdb12105[ ]+wldrw[ ]+wcssf, \[r1, #20\]! 0+11c <[^>]*> ee474109[ ]+wmacu[ ]+wr4, wr7, wr9 0+120 <[^>]*> 2e6a810e[ ]+wmacscs[ ]+wr8, wr10, wr14 @@ -138,8 +138,8 @@ Disassembly of section .text: 0+208 <[^>]*> ed811004[ ]+wstrb[ ]+wr1, \[r1, #4\] 0+20c <[^>]*> ede11004[ ]+wstrh[ ]+wr1, \[r1, #4\]! 0+210 <[^>]*> eca11101[ ]+wstrw[ ]+wr1, \[r1\], #4 -0+214 <[^>]*> edc11101[ ]+wstrd[ ]+wr1, \[r1, #4\] -0+218 <[^>]*> fca13101[ ]+wstrw[ ]+wcasf, \[r1\], #4 +0+214 <[^>]*> edc111ff[ ]+wstrd[ ]+wr1, \[r1, #1020\] +0+218 <[^>]*> fca1314b[ ]+wstrw[ ]+wcasf, \[r1\], #300 0+21c <[^>]*> 3e1311ae[ ]+wsubbuscc[ ]+wr1, wr3, wr14 0+220 <[^>]*> ee5311ae[ ]+wsubhus[ ]+wr1, wr3, wr14 0+224 <[^>]*> 3e9311ae[ ]+wsubwuscc[ ]+wr1, wr3, wr14 diff --git a/gas/testsuite/gas/arm/iwmmxt.s b/gas/testsuite/gas/arm/iwmmxt.s index 5cf1551..ba599c1 100644 --- a/gas/testsuite/gas/arm/iwmmxt.s +++ b/gas/testsuite/gas/arm/iwmmxt.s @@ -88,7 +88,7 @@ iwmmxt: wldrb wr1, [r0, #36] wldrheq wr2, [r1, #24]! wldrwne wr3, [r2], #16 - wldrdvs wr4, [r3, #8] + wldrdvs wr4, [r3, #-332] wldrw wcssf, [r1, #20]! wmacu wr4, wr7, wr9 @@ -167,8 +167,8 @@ iwmmxt: wstrb wr1, [r1, #4] wstrh wr1, [r1, #4]! wstrw wr1, [r1], #4 - wstrd wr1, [r1, #4] - wstrw wcasf, [r1], #4 + wstrd wr1, [r1, #0x3FC] + wstrw wcasf, [r1], #300 wsubbusul wr1, wr3, wr14 wsubhus wr1, wr3, wr14 |