nickysn
|
518cdf9674
* replaced the saved_XXX_registers arrays with virtual methods inside
|
7 vuotta sitten |
Jonas Maebe
|
880d438704
* renamed t<cpuname>procinfo to tcpuprocinfo for all targets, so we can
|
8 vuotta sitten |
Jonas Maebe
|
fa3b0ca312
* support marking defs created via the getreusable*() class methods as
|
9 vuotta sitten |
Jonas Maebe
|
f402b0d7df
* changed getpointerdef() into a tpointerdef.getreusable() class method
|
10 vuotta sitten |
Jonas Maebe
|
99de108c68
* renamed all paramanagers to tcpuparamanager so the llvm paramanager can
|
11 vuotta sitten |
sergei
|
c3350d13f9
* MIPS: floating point parameters on stack should be loaded to/from FPU registers directly, without using temp.
|
12 vuotta sitten |
sergei
|
89c9cdf6c4
+ MIPS: implemented parameter location reusing, eliminating second copy of (potentially large) records passed by value. When parameter is passed both in registers and stack, let it have a single LOC_REFERENCE location on callee side, and store relevant registers on stack (into 16-byte area reserved by ABI) early in prologue.
|
12 vuotta sitten |
sergei
|
5bcae5a80a
- Removed TMIPSParaManager.getintparaloc method, its generic implementation from r24716 works without issues.
|
12 vuotta sitten |
Jonas Maebe
|
9938169d2c
* don't use the paracgsize in get_paraloc_def(), because it generally
|
12 vuotta sitten |
Jonas Maebe
|
7566ddcc8f
* add a tdef to each parameter location and set it for all target
|
12 vuotta sitten |
sergei
|
1c652eb8f9
MIPS procinfo improvements:
|
12 vuotta sitten |
sergei
|
354ebb822a
* 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.
|
12 vuotta sitten |
sergei
|
30247d8961
* MIPS: fixed parameter handling for big-endian targets, and removed a lot of garbage.
|
12 vuotta sitten |
sergei
|
209bfaa774
+ MIPS: Allocate a LOC_VOID location for empty records, avoids internal errors in other parts of compiler.
|
12 vuotta sitten |
sergei
|
d82387ff72
* MIPS: fixed parameter management to properly align records smaller than 32 bits on big-endian targets.
|
12 vuotta sitten |
sergei
|
08c0c265c9
* MIPS: use correct def to calculate parameter alignment (when parameter is passed by address, its def changes to pointer and the alignment of parameter itself is irrelevant). Fixes at least webtbs/tw7806.
|
12 vuotta sitten |
paul
|
51825b6f2e
compiler: change ret_in_param to accept tabstractprocdef instead of tproccalloption to allow check more options (required for record constructor implementation)
|
12 vuotta sitten |
sergei
|
b35d04ffa8
* MIPS: methodpointers must be compatible with records; since records are never passed by address in this ABI, so must be methodpointers. Fixes webtbs/tw9141.pp.
|
12 vuotta sitten |
sergei
|
b5eecab582
* Procvars (methodpointers) must be treated as records, too. Fixes tw12318.pp and tw14155.pp after r23377.
|
12 vuotta sitten |
sergei
|
162896e7d7
* MIPS code generator fixes and improvements:
|
12 vuotta sitten |
Jonas Maebe
|
69c29a415f
* pass the procdef to getintparaloc instead of only the proccalloption, so
|
12 vuotta sitten |
pierre
|
bf46526cc7
Set register_used boolean only for calleeside
|
13 vuotta sitten |
pierre
|
6290526821
Fix variable alignment for varargs
|
13 vuotta sitten |
pierre
|
91bfa84952
Correct code after change in set_common_funcretloc_info which made the call to ret_in_param always return false
|
13 vuotta sitten |
florian
|
eb1efdff8a
+ introduce cstylearrayofconst because pocall_mwcall was forgotten at several places
|
13 vuotta sitten |
Jonas Maebe
|
0a1157da38
* fixed memory leaks in the compiler introduced in r21862 by marking and
|
13 vuotta sitten |
pierre
|
6a9edb2083
Always pass records by value (OABI compliance)
|
13 vuotta sitten |
Jonas Maebe
|
7a0ae38700
+ also specify the parameter def when allocating a parameter via
|
13 vuotta sitten |
Jonas Maebe
|
c3ea451aea
* set tcgpara.vardef when creating parameter info
|
13 vuotta sitten |
Jonas Maebe
|
587244c088
* factored out common code from get_funcretloc()
|
13 vuotta sitten |