aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2006-07-12 09:02:00 +0000
committerNick Clifton <nickc@redhat.com>2006-07-12 09:02:00 +0000
commit01eaea5ad27ebd470a27ae2f3c9ffd50956d4caf (patch)
tree615f18d78f0c5a4369ba68af08e2e714dc7568d7 /gas/testsuite
parent743a4945a6a302c986ee2f2b6d113e33b968a2f8 (diff)
downloadbinutils-01eaea5ad27ebd470a27ae2f3c9ffd50956d4caf.zip
binutils-01eaea5ad27ebd470a27ae2f3c9ffd50956d4caf.tar.gz
binutils-01eaea5ad27ebd470a27ae2f3c9ffd50956d4caf.tar.bz2
* config/tc-sh.c (md_apply_fix): Do not allow the generic code in
fixup_segment() to repeat a range check on a value that have already been checked here. * gas/sh/basic.exp: Run "too_large" dump test. * gas/sh/too_large.s: New test file. Check that .byte directives do not generate a bogus overflow message. * gas/sh/too_large.s: New test control file.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog7
-rw-r--r--gas/testsuite/gas/sh/basic.exp2
-rw-r--r--gas/testsuite/gas/sh/too_large.d9
-rw-r--r--gas/testsuite/gas/sh/too_large.s39
4 files changed, 57 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index a4cd0e9..fcec568 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2006-07-12 Nick Clifton <nickc@redhat.com>
+
+ * gas/sh/basic.exp: Run "too_large" dump test.
+ * gas/sh/too_large.s: New test file. Check that .byte directives
+ do not generate a bogus overflow message.
+ * gas/sh/too_large.s: New test control file.
+
2006-07-05 Julian Brown <julian@codesourcery.com>
* gas/arm/vfp-neon-syntax.d: Tweak expected fmsrr syntax.
diff --git a/gas/testsuite/gas/sh/basic.exp b/gas/testsuite/gas/sh/basic.exp
index 093048b..2f9424d 100644
--- a/gas/testsuite/gas/sh/basic.exp
+++ b/gas/testsuite/gas/sh/basic.exp
@@ -167,6 +167,8 @@ if [istarget sh*-*-*] then {
# Test --allow-reg-prefix.
run_dump_test "reg-prefix"
+
+ run_dump_test "too_large"
}
}
diff --git a/gas/testsuite/gas/sh/too_large.d b/gas/testsuite/gas/sh/too_large.d
new file mode 100644
index 0000000..597e745
--- /dev/null
+++ b/gas/testsuite/gas/sh/too_large.d
@@ -0,0 +1,9 @@
+#name: Check for bogus overflow errors in .byte directives
+#as: -big -relax -isa=sh4a
+#nm: -n
+
+[ ]*U \.L318
+[ ]*U \.L319
+[ ]*U \.L320
+[ ]*U \.L321
+0+00100 t \.L307
diff --git a/gas/testsuite/gas/sh/too_large.s b/gas/testsuite/gas/sh/too_large.s
new file mode 100644
index 0000000..b67b8f7
--- /dev/null
+++ b/gas/testsuite/gas/sh/too_large.s
@@ -0,0 +1,39 @@
+ .file "too_large.c"
+ .text
+ nop
+ .align 8
+.L307:
+ .byte .L302-.L307
+ .byte .L303-.L307
+ .byte .L304-.L307
+ .byte .L305-.L307
+.L304:
+ mov.l .L318,r1
+ jsr @r1
+ mov r8,r4
+ lds r0,fpul
+ fsts fpul,fr1
+ flds fr1,fpul
+ sts fpul,r0
+ mov r14,r15
+ lds.l @r15+,pr
+ mov.l @r15+,r14
+ mov.l @r15+,r8
+ rts
+ nop
+.L305:
+ mov.l .L319,r7
+ jsr @r7
+ mov r8,r4
+ lds r0,fpul
+ bra .L307
+ fsts fpul,fr1
+.L303:
+ mov.l .L320,r6
+ jsr @r6
+ mov r8,r4
+ lds r0,fpul
+ bra .L307
+ fsts fpul,fr1
+.L302:
+ mov.l .L321,r5