From: Jeff Law Date: Sun, 22 Mar 1998 20:17:34 +0000 (+0000) Subject: * config/tc-mips.c (append_insn): Handle BFD_RELOC_MIPS16_S3. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0bc0e337fc28fa55ab921c6a9207519a6f611ed0;p=binutils-gdb.git * config/tc-mips.c (append_insn): Handle BFD_RELOC_MIPS16_S3. (mips_ip): Handle 'O' operand. (md_apply_fix): Handle BFD_RELOC_MIPS16_S3. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index c076ad2ac95..89c92ceba15 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +start-sanitize-r5900 +Sun Mar 22 13:21:01 1998 Jeffrey A Law (law@cygnus.com) + + * config/tc-mips.c (append_insn): Handle BFD_RELOC_MIPS16_S3. + (mips_ip): Handle 'O' operand. + (md_apply_fix): Handle BFD_RELOC_MIPS16_S3. + +end-sanitize-r5900 Fri Mar 20 19:15:44 1998 Ian Lance Taylor * aclocal.m4, configure: Rebuild with libtool 1.2. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index e5801c65d54..e2e763c8422 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -1794,6 +1794,12 @@ append_insn (place, ip, address_expr, reloc_type, unmatched_hi) | ((address_expr->X_add_number & 0x3fffc) >> 2)); break; + /* start-sanitize-r5900 + case BFD_RELOC_MIPS15_S3: + ip->insn_opcode |= ((imm_expr.X_add_number & 0x7fff) >> 3) << 6; + break; + /* end-sanitize-r5900 + case BFD_RELOC_16_PCREL_S2: goto need_reloc; @@ -7309,6 +7315,12 @@ mips_ip (str, ip) else insn_error = "operand `ACC' expected"; continue; + + case 'O': + my_getSmallExpression (&imm_expr, s); + imm_reloc = BFD_RELOC_MIPS15_S3; + s = expr_end; + continue; /* end-sanitize-r5900 */ case 'k': /* cache code */ @@ -9786,6 +9798,9 @@ md_apply_fix (fixP, valueP) case BFD_RELOC_MIPS_CALL_HI16: case BFD_RELOC_MIPS_CALL_LO16: case BFD_RELOC_MIPS16_GPREL: + /* start-sanitize-r5900 */ + case BFD_RELOC_MIPS15_S3: + /* end-sanitize-r5900 */ if (fixP->fx_pcrel) as_bad_where (fixP->fx_file, fixP->fx_line, "Invalid PC relative reloc");