diff options
author | Thiemo Seufer <ths@networkno.de> | 2002-09-26 09:00:08 +0000 |
---|---|---|
committer | Thiemo Seufer <ths@networkno.de> | 2002-09-26 09:00:08 +0000 |
commit | f3c0ec86c4c4a6784ea449e0e76a6a37f2da4488 (patch) | |
tree | 5cbd8e3abc650c5c5c5c42ab8d2501a3528b3d3c /gas | |
parent | 9f951329b6c97a113018ecdcebdf47a355d1b6c7 (diff) | |
download | gdb-f3c0ec86c4c4a6784ea449e0e76a6a37f2da4488.zip gdb-f3c0ec86c4c4a6784ea449e0e76a6a37f2da4488.tar.gz gdb-f3c0ec86c4c4a6784ea449e0e76a6a37f2da4488.tar.bz2 |
* 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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 6 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/jal-range.l | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/jal-range.s | 7 |
5 files changed, 18 insertions, 10 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index eaef139..eda63ad 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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 diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index ba803d2..bd797c4 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -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 |= diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 9523d48..159a617 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -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 diff --git a/gas/testsuite/gas/mips/jal-range.l b/gas/testsuite/gas/mips/jal-range.l index 79a2509..3887e18 100644 --- a/gas/testsuite/gas/mips/jal-range.l +++ b/gas/testsuite/gas/mips/jal-range.l @@ -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\) diff --git a/gas/testsuite/gas/mips/jal-range.s b/gas/testsuite/gas/mips/jal-range.s index 4d843b1..e52f560 100644 --- a/gas/testsuite/gas/mips/jal-range.s +++ b/gas/testsuite/gas/mips/jal-range.s @@ -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 |