fpc/compiler/mips
sergei 823e3ea398 MIPS: reworked PIC/call code:
+ Favor 'weak' parameter in a_call_name of both thlcgmips and TCGMIPS.
* make_simple_ref and a_loadaddr_ref_reg: require input references to be 'raw' (no refaddr=addr_pic, etc) and do not use GP as base/index. If it's not true, raise an internal error. When addr_pic_call16 or so needs to be generated, it must be done without calling the mentioned methods.
* thlcgmips.a_call_name: generate PIC sequence for procedures declared as 'external', instead of 'cdecl', this is more correct because ABI has only one calling convention.
- make_simple_ref_fpu removed, there's no reason to handle references to floating-point data in different way.
- a_loadaddr_ref_cgpara override also removed, generic method does the job just well.
- thlcgmips.a_call_ref and a_call_reg overrides removed because indirect calls are now always done using $t9.

git-svn-id: trunk@23698 -
2013-03-05 19:31:20 +00:00
..
aasmcpu.pas * MIPS: MULT[U] and DIV[U] don't modify first operand. 2013-02-16 06:43:41 +00:00
aoptcpu.pas * more MIPS code of David Zhang integrated 2009-11-20 14:46:45 +00:00
aoptcpub.pas * Patch from Fuxin Zhang: other mips and mipsel CPUs changes 2012-06-07 23:20:06 +00:00
aoptcpud.pas * more MIPS code of David Zhang integrated 2009-11-20 14:46:45 +00:00
cgcpu.pas MIPS: reworked PIC/call code: 2013-03-05 19:31:20 +00:00
cpubase.pas Use TRegNameTable instead of array[tregisterindex] of string[10] 2012-10-22 10:23:21 +00:00
cpuelf.pas + MIPS: doing progress with linker, implemented processing of local symbols in PIC code and stuff needed to link shared libraries. 2013-03-04 20:48:33 +00:00
cpugas.pas * MIPS: fixed a_call_name and a_call_reg methods to workaround a bug in GAS <2.21, see comments in source for details. 2013-02-02 23:52:58 +00:00
cpuinfo.pas Fix -Cp option failure due to cputypestr array that must be uppercased 2013-01-18 17:09:28 +00:00
cpunode.pas Remove more TABs in sources 2012-09-06 08:11:59 +00:00
cpupara.pas * MIPS: fixed layout of stack frame in case procedure does only low-level calls (via a_call_name, etc.). A 16-byte outgoing parameter area must be allocated regardless of actual parameter count. 2013-02-21 20:57:38 +00:00
cpupi.pas * MIPS: allocate 16-byte outgoing parameter area also for procedures declared as 'assembler' without 'nostackframe'. This is a half-measure because there is no way to determine correct size to allocate for such procedures (probably we must add some directive to specify it). The same generally applies to all targets with fixed stack, not just MIPS. 2013-02-25 22:47:09 +00:00
cputarg.pas + ELF linker back-ends for ARM and MIPS. 2013-01-13 18:05:19 +00:00
hlcgcpu.pas MIPS: reworked PIC/call code: 2013-03-05 19:31:20 +00:00
itcpugas.pas * fix fpu register type 2012-02-05 09:14:55 +00:00
mipsreg.dat Change std reg names to allow use with GAS assembler 2012-07-04 16:24:11 +00:00
ncpuadd.pas * Patch from Fuxin Zhang: other mips and mipsel CPUs changes 2012-06-07 23:20:06 +00:00
ncpucall.pas Remove more TABs in sources 2012-09-06 08:11:59 +00:00
ncpucnv.pas * Fixed tMIPSELtypeconvnode.second_int_to_bool handling of C booleans, webtbs/tw10233 and webtbs/tw17180 now work. 2013-01-28 21:32:21 +00:00
ncpuinln.pas * adapted more fpc-mips stuff to trunk 2009-11-20 21:13:53 +00:00
ncpuld.pas Override tloadnode.pass_1 to for use of got for shared library variables and genrate_picvaraccess 2012-07-05 21:07:46 +00:00
ncpumat.pas + MIPS: Allow subset locations for boolean NOT, this appears sufficient to fix all bitpacking-related tests. 2013-01-31 21:52:29 +00:00
ncpuset.pas * converted tcgcasenode.pass_generate_code() to hlcgobj 2011-08-20 07:48:33 +00:00
opcode.inc + Add .cpXXX pseudo-instruction for PIC code 2012-07-04 16:23:16 +00:00
racpugas.pas Remove more TABs in sources 2012-09-06 08:11:59 +00:00
rgcpu.pas * MIPS register spilling: relocations are not needed to load constant values, and offset limit is 32767, not 4095. 2013-02-28 20:43:38 +00:00
rmipscon.inc * fixes several register allocation related mips issues 2012-02-05 21:58:45 +00:00
rmipsdwf.inc
rmipsgas.inc * fix floating point registers gas name 2012-02-06 20:33:12 +00:00
rmipsgri.inc * fix floating point registers gas name 2012-02-06 20:33:12 +00:00
rmipsgss.inc
rmipsnor.inc
rmipsnum.inc * fixes several register allocation related mips issues 2012-02-05 21:58:45 +00:00
rmipsrni.inc
rmipssri.inc Change std reg names to allow use with GAS assembler 2012-07-04 16:24:11 +00:00
rmipssta.inc
rmipsstd.inc Change std reg names to allow use with GAS assembler 2012-07-04 16:24:11 +00:00
rmipssup.inc * fixes several register allocation related mips issues 2012-02-05 21:58:45 +00:00
strinst.inc + Add .cpXXX pseudo-instruction for PIC code 2012-07-04 16:23:16 +00:00