+2006-07-12 Nick Clifton <nickc@redhat.com>
+
+ * 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.
+
2006-07-07 James E Wilson <wilson@specifix.com>
* config/tc-mips.c (mips_cpu_info_table): Add sb1a.
}
if (max != 0 && (val < min || val > max))
as_bad_where (fixP->fx_file, fixP->fx_line, _("offset out of range"));
+ else if (max != 0)
+ /* Stop the generic code from trying to overlow check the value as well.
+ It may not have the correct value anyway, as we do not store val back
+ into *valP. */
+ fixP->fx_no_overflow = 1;
if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0)
fixP->fx_done = 1;
+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.
# Test --allow-reg-prefix.
run_dump_test "reg-prefix"
+
+ run_dump_test "too_large"
}
}
--- /dev/null
+#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
--- /dev/null
+ .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