mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-25 00:32:24 +02:00
represent complex locations (required for full x86-64 ABI support,
which is not yet implemented) -> lots of special result handling
code has been removed and replaced by the parameter handling
routines
+ added support for composite parameters (and hence function
results) to tcg.a_load_ref_cgpara() (so it can be used for
handling, e.g., 64 bit parameters on 32 bit platforms)
* the above fixed writing past the end of allocated memory when
handling records returned in registers on x86-64 whose size is
not a multiple of 8 bytes (mantis #16357)
- removed the x86-64 and PPC specific versions of a_load_ref_cgpara(),
as they are now handled correctly by the generic version
* moved the responsibility of allocating tcgpara cpu registers
(using paramanager.allocparaloc()) from the callers of
cg.a_load*_cgpara() to the cg.a_load*_cgpara() methods
themselves (so the register allocation can be done efficiently
when dealing with function results)
* for the above, renamed paramanager.alloc/freeparaloc() to
paramanager.alloc/freecgpara(), and use paramanager.allocparaloc()
to allocate individual pcgparalocations instead
* fixed the register size of SSE2 function result registers for
x86-64 (when used for floating point), which results in removing
a few superfluous "movs? %xmm0,%xmm0" instructions
* fixed compilation of paramanagers of avr, m68k and mips after r13695
and also updated them for these new changes
git-svn-id: trunk@15350 -
|
||
|---|---|---|
| .. | ||
| aasmcpu.pas | ||
| aoptcpu.pas | ||
| aoptcpub.pas | ||
| aoptcpud.pas | ||
| cgcpu.pas | ||
| cpubase.pas | ||
| cpugas.pas | ||
| cpuinfo.pas | ||
| cpunode.pas | ||
| cpupara.pas | ||
| cpupi.pas | ||
| cputarg.pas | ||
| itcpugas.pas | ||
| mipsreg.dat | ||
| ncpuadd.pas | ||
| ncpucall.pas | ||
| ncpucnv.pas | ||
| ncpuinln.pas | ||
| ncpumat.pas | ||
| ncpuset.pas | ||
| opcode.inc | ||
| rgcpu.pas | ||
| rmipscon.inc | ||
| rmipsdwf.inc | ||
| rmipsgas.inc | ||
| rmipsgri.inc | ||
| rmipsgss.inc | ||
| rmipsmot.inc | ||
| rmipsmri.inc | ||
| rmipsnor.inc | ||
| rmipsnum.inc | ||
| rmipsrni.inc | ||
| rmipssri.inc | ||
| rmipssta.inc | ||
| rmipsstd.inc | ||
| rmipssup.inc | ||
| strinst.inc | ||