* config/tc-mips.c (append_insn): Fix jump overflow check.

* gas/mips/jal-range.s: Fix jump overflow check.
	* gas/mips/jal-range.l: Likewise.
This commit is contained in:
Thiemo Seufer 2002-09-26 09:00:08 +00:00
parent 9f951329b6
commit f3c0ec86c4
5 changed files with 18 additions and 10 deletions

View File

@ -1,3 +1,7 @@
2002-09-26 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* config/tc-mips.c (append_insn): Fix jump overflow check.
2002-09-24 Alan Modra <amodra@bigpond.net.au>
* config/tc-i386.c (process_operands): Warn about "lea" segment

View File

@ -1858,8 +1858,7 @@ append_insn (place, ip, address_expr, reloc_type, unmatched_hi)
if ((address_expr->X_add_number & 3) != 0)
as_bad (_("jump to misaligned address (0x%lx)"),
(unsigned long) address_expr->X_add_number);
if (address_expr->X_add_number & ~0xfffffff
|| address_expr->X_add_number > 0x7fffffc)
if (address_expr->X_add_number & ~0xfffffff)
as_bad (_("jump address range overflow (0x%lx)"),
(unsigned long) address_expr->X_add_number);
ip->insn_opcode |= (address_expr->X_add_number >> 2) & 0x3ffffff;
@ -1869,8 +1868,7 @@ append_insn (place, ip, address_expr, reloc_type, unmatched_hi)
if ((address_expr->X_add_number & 3) != 0)
as_bad (_("jump to misaligned address (0x%lx)"),
(unsigned long) address_expr->X_add_number);
if (address_expr->X_add_number & ~0xfffffff
|| address_expr->X_add_number > 0x7fffffc)
if (address_expr->X_add_number & ~0xfffffff)
as_bad (_("jump address range overflow (0x%lx)"),
(unsigned long) address_expr->X_add_number);
ip->insn_opcode |=

View File

@ -1,3 +1,8 @@
2002-09-26 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* gas/mips/jal-range.s: Fix jump overflow check.
* gas/mips/jal-range.l: Likewise.
2002-09-23 Nick Clifton <nickc@redhat.com>
* gas/arm/armv1-bad.s: Add LDM and STM instructions which are

View File

@ -1,4 +1,4 @@
.*: Assembler messages:
.*:5: Error: jump to misaligned address \(0x7fffffd\)
.*:5: Error: jump address range overflow \(0x7fffffd\)
.*:6: Error: jump address range overflow \(0x8000000\)
.*:4: Error: jump to misaligned address \(0x1\)
.*:6: Error: jump to misaligned address \(0xfffffff\)
.*:7: Error: jump address range overflow \(0x10000000\)

View File

@ -1,6 +1,7 @@
# Source file use to test border cases of jumps
jal 0x0
jal 0x7fffffc
jal 0x7fffffd
jal 0x8000000
jal 0x1
jal 0xffffffc
jal 0xfffffff
jal 0x10000000