diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 2d5a186..ec03c7a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ 2004-12-10 Ian Lance Taylor <ian@wasabisystems.com> + * config/tc-mips.c (macro) [M_LA_AB]: Give an error for a offset + which is too large in the case of NO_PIC without 64-bit + addresses. + * config/tc-mips.c (mips_in_shared): New static variable. (macro_build_lui): Permit "_gp" if !mips_in_shared. (md_longopts): Add -mshared and -mno-shared. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 157c541..f65727a 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -4996,6 +4996,8 @@ macro (struct mips_cl_insn *ip) tempreg, mips_gp_register, BFD_RELOC_GPREL16); relax_switch (); } + if (!IS_SEXT_32BIT_NUM (offset_expr.X_add_number)) + as_bad (_("offset too large")); macro_build_lui (&offset_expr, tempreg); macro_build (&offset_expr, ADDRESS_ADDI_INSN, "t,r,j", tempreg, tempreg, BFD_RELOC_LO16); |