From 6943caf04880e22227fde296e811bc283d9893b4 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sat, 11 Dec 2004 03:41:31 +0000 Subject: [PATCH] * 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. --- gas/ChangeLog | 4 ++++ gas/config/tc-mips.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 2d5a1865f42..ec03c7a7083 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ 2004-12-10 Ian Lance Taylor + * 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 157c541a486..f65727a04d2 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); -- 2.30.2