* config/tc-mips.h (tc_frag_data_type, TC_FRAG_TYPE): New.
commit50f640aeb17653dccffabc9bba6fdca5abf9cd96
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 11 Apr 2003 01:56:49 +0000 (11 01:56 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Fri, 11 Apr 2003 01:56:49 +0000 (11 01:56 +0000)
tree186ec68533fbf2763bbc2e26b6c419603543de56
parent663d06bbd5f5ca71dab611c4393564a1cfa1c98e
* config/tc-mips.h (tc_frag_data_type, TC_FRAG_TYPE): New.
* config/tc-mips.c: Use signed add for n32 address arithmetic.
(append_insn): When filling delay slots with instructions
that have fixups that tc_gen_reloc might consider modifyable
in variant frags, start a new frag.
(load_address): Generate GOT_DISP with of without offset
depending on whether symbol is local.  For -xgot, use
GOT_PAGE/GOT_OFST or GOT_HI16/GOT_LO16.
(macro) <M_DLA_AB, M_LA_AB>: Likewise.
<M_JAL_A>: In NewABI, use CALL16 or GOT_DISP for small got,
CALL_HI16/CALL_LO16 or GOT_PAGE/GOT_OFST for big got.
<ld_st>: In NewABI with small got, always use
GOT_PAGE/GOT_OFST, with the latter in the load/store
instruction.  With big got, use GOT_HI16/GOT_LO16 or
GOT_PAGE/GOT_OFST.
(tc_gen_reloc): Adjust variant frags with GOT_DISP in NewABI.
Add tc_frag_data.tc_fr_offset to addends.  Decay CALL16,
GOT_OFST and GOT_DISP to GOT_DISP in NewABI.
(md_convert_frag): Use memmove for safe copying of overlapping
regions.
gas/ChangeLog
gas/config/tc-mips.c
gas/config/tc-mips.h