Commit History

Auteur SHA1 Bericht Datum
  sergei 9a6edd0fb8 * MIPS: handle restoring GP after calls without GAS macro processing, removes ugly workaround for GAS bug. 12 jaren geleden
  sergei 9e4cc57768 * MIPS: handle 8 and 16-bit arithmetic shifts internally, by shifting argument left by 24/16 bits, followed with 32-bit arithmetic shift right by appropriately adjusted amount. 12 jaren geleden
  sergei 59d6df4fca * MIPS: replaced opcode mapping functions with array, much shorter that way. Separate "overflow" mapping is also no longer needed. 12 jaren geleden
  sergei 7a28815182 * r24895 used wrong expression for swapping sides of comparison, and it went undetected by tests. Fixed. 12 jaren geleden
  sergei c855868a3d * MIPS: get rid of macros in comparison operations, use immediate operands for comparison with constants when possible. 12 jaren geleden
  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 jaren geleden
  sergei 8b8553991a + MIPS: prevent coalescing written-to registers with $sp,$fp,$zero and $at. 12 jaren geleden
  sergei 6a8e4f0381 * MIPS: generate real instructions, not macros, for comparisons with $zero. 12 jaren geleden
  sergei fb88cc4257 * TCGMIPS.a_load_reg_reg: reduce code duplication, and don't generate same register move for OS_32->OS_S32 and vice versa. Such moves explode into at least 4 instructions if register needs spilling, after which they are no longer recognized and cannot be removed by reg.allocator. So it's much better not to generate them in first place. 12 jaren geleden
  sergei 7e0ae2e984 * MIPS: fixed cgsize2subreg to return correct result for float registers. 12 jaren geleden
  sergei 562714129f * MIPS: get completely rid of LI macro, generate equivalent CPU instructions instead. 12 jaren geleden
  sergei c31321c2fe * TCGMIPS.handle_reg_const_reg(): fixed to generate 'real' CPU instructions, so macro processing by assembler is no longer needed. 12 jaren geleden
  sergei d367148f75 - Removed obsolete comments (copypasted from other CPU code, most likely). 12 jaren geleden
  sergei 300289dd89 * MIPS: reworked 64-bit code generation, implemented overflow checking and optimized operations with constants. 12 jaren geleden
  sergei bfd7401541 * MIPS: overflow checking added in r24445 works only when source and destination of operation are different registers. Fixed cases of operations on same register. 12 jaren geleden
  sergei 7cfc737866 * MIPS: rewrote 32-bit code generation methods, reducing code duplication. 12 jaren geleden
  sergei 504b6754b7 * MIPS small improvements: 12 jaren geleden
  pierre 702effaad0 Force use of PIC compatible calling for register variable calls as procvars might be internal or external and thus require PIC 12 jaren geleden
  sergei 6f1997f5e5 + MIPS: added profiling support 12 jaren geleden
  sergei 1c652eb8f9 MIPS procinfo improvements: 12 jaren geleden
  sergei 823e3ea398 MIPS: reworked PIC/call code: 12 jaren geleden
  sergei a1b50f643e - removed never used function. 12 jaren geleden
  sergei d190d4676b - MIPS: removed comment generation in function prologues, it clutters listing more than it helps. Also removed some unused variables. 12 jaren geleden
  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 jaren geleden
  sergei 69c8f6cf7d * Typo in previous commit 12 jaren geleden
  sergei d7c96dea8b * MIPS: refactoring: removed handle_load_store and handle_load_store_fpu. 12 jaren geleden
  sergei 30247d8961 * MIPS: fixed parameter handling for big-endian targets, and removed a lot of garbage. 12 jaren geleden
  pierre 2916235cfe Fix make_simple_ref for pic address with big offsets 12 jaren geleden
  sergei d82387ff72 * MIPS: fixed parameter management to properly align records smaller than 32 bits on big-endian targets. 12 jaren geleden
  sergei ef38193043 * MIPS: Once again fixed g_external_wrapper. My initial assumption about .cpload was wrong: it is optimized into position-dependent sequence only if "-KPIC -mno-shared" is passed to GAS command line, without -KPIC it is ignored altogether. Therefore r23566 breaks some non-PIC tests. 12 jaren geleden