Commit History

Author SHA1 Message Date
  sergei c3350d13f9 * MIPS: floating point parameters on stack should be loaded to/from FPU registers directly, without using temp. 12 years ago
  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 years ago
  sergei 5bcae5a80a - Removed TMIPSParaManager.getintparaloc method, its generic implementation from r24716 works without issues. 12 years ago
  Jonas Maebe 9938169d2c * don't use the paracgsize in get_paraloc_def(), because it generally 12 years ago
  Jonas Maebe 7566ddcc8f * add a tdef to each parameter location and set it for all target 12 years ago
  sergei 1c652eb8f9 MIPS procinfo improvements: 12 years ago
  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 years ago
  sergei 30247d8961 * MIPS: fixed parameter handling for big-endian targets, and removed a lot of garbage. 12 years ago
  sergei 209bfaa774 + MIPS: Allocate a LOC_VOID location for empty records, avoids internal errors in other parts of compiler. 12 years ago
  sergei d82387ff72 * MIPS: fixed parameter management to properly align records smaller than 32 bits on big-endian targets. 12 years ago
  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 years ago
  paul 51825b6f2e compiler: change ret_in_param to accept tabstractprocdef instead of tproccalloption to allow check more options (required for record constructor implementation) 12 years ago
  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 years ago
  sergei b5eecab582 * Procvars (methodpointers) must be treated as records, too. Fixes tw12318.pp and tw14155.pp after r23377. 12 years ago
  sergei 162896e7d7 * MIPS code generator fixes and improvements: 12 years ago
  Jonas Maebe 69c29a415f * pass the procdef to getintparaloc instead of only the proccalloption, so 12 years ago
  pierre bf46526cc7 Set register_used boolean only for calleeside 13 years ago
  pierre 6290526821 Fix variable alignment for varargs 13 years ago
  pierre 91bfa84952 Correct code after change in set_common_funcretloc_info which made the call to ret_in_param always return false 13 years ago
  florian eb1efdff8a + introduce cstylearrayofconst because pocall_mwcall was forgotten at several places 13 years ago
  Jonas Maebe 0a1157da38 * fixed memory leaks in the compiler introduced in r21862 by marking and 13 years ago
  pierre 6a9edb2083 Always pass records by value (OABI compliance) 13 years ago
  Jonas Maebe 7a0ae38700 + also specify the parameter def when allocating a parameter via 13 years ago
  Jonas Maebe c3ea451aea * set tcgpara.vardef when creating parameter info 13 years ago
  Jonas Maebe 587244c088 * factored out common code from get_funcretloc() 13 years ago
  pierre 74eb121d1c Fix big endian issues 13 years ago
  Jonas Maebe 0fc422f244 * moved definition of maxcpuregister and tcpuregisterset from cgbase to 13 years ago
  pierre 72d310a8a4 Partial merge of 21562 by Foxsen, adapted. 13 years ago
  pierre 9453b1bb1e Merge of revision 21551 by Foxsen. 13 years ago
  pierre 22eae1b337 * Stack setup for MIPS and MIPSEL 13 years ago