* config/tc-mips.c (append_insn): Add jump address range overflow

check.
This commit is contained in:
Thiemo Seufer 2001-12-04 14:05:54 +00:00
parent 34ba82a8bb
commit 7496292d88
2 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-12-04 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* config/tc-mips.c (append_insn): Add jump address range overflow
check.
2001-12-04 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* config/tc-mips.c (md_parse_option): Fix comment. Allow -mabi option

View File

@ -1974,6 +1974,10 @@ 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)
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;
break;
@ -1981,6 +1985,10 @@ 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)
as_bad (_("jump address range overflow (0x%lx)"),
(unsigned long) address_expr->X_add_number);
ip->insn_opcode |=
(((address_expr->X_add_number & 0x7c0000) << 3)
| ((address_expr->X_add_number & 0xf800000) >> 7)