diff options
author | Jeff Law <law@redhat.com> | 1998-03-22 20:17:34 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1998-03-22 20:17:34 +0000 |
commit | 0bc0e337fc28fa55ab921c6a9207519a6f611ed0 (patch) | |
tree | 01d9a49ba0062401d234ae75f20993d88cad8170 /gas/config | |
parent | 721232f36c0c8c874a2564cfbc9517c4934d483a (diff) | |
download | gdb-0bc0e337fc28fa55ab921c6a9207519a6f611ed0.zip gdb-0bc0e337fc28fa55ab921c6a9207519a6f611ed0.tar.gz gdb-0bc0e337fc28fa55ab921c6a9207519a6f611ed0.tar.bz2 |
* config/tc-mips.c (append_insn): Handle BFD_RELOC_MIPS16_S3.
(mips_ip): Handle 'O' operand.
(md_apply_fix): Handle BFD_RELOC_MIPS16_S3.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-mips.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index e5801c6..e2e763c 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"); |