* config/tc-mips.h (tc_frag_data_type, TC_FRAG_TYPE): New.
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 11 Apr 2003 01:56:50 +0000 (01:56 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Fri, 11 Apr 2003 01:56:50 +0000 (01:56 +0000)
commitf5040a92c5b78b41f33dc3488dc1820bc5f916a8
tree7187cb92ef919ddb70dd5eda54925f46f131964a
parent0fdc1bf12541e30f9a66aa20dcea5be76328a52b
* 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