Commit History

Автор SHA1 Съобщение Дата
  sergei eb86cd47c6 * tcgx86_64.g_proc_entry: Don't crash if 'list' is initially empty. Went unnoticed this far because ncgutil.gen_proc_entry_code adds some items before calling cg.g_proc_entry. преди 9 години
  sergei 1b965e6766 * x86: Don't save/restore integer registers that are volatile per calling convention of current procedure. It implies that nothing will be saved for procedures with OLDFPCCALL, FAR16 and PASCAL and calling conventions. OLDFPCCALL restores behavior that was in effect before r25224. преди 9 години
  Jonas Maebe 61e4a1b811 + added tasmlist parameter to getintparaloc() (needed for llvm) преди 10 години
  Jonas Maebe 67b8aceaee * synchronized with privatetrunk till r30095 преди 10 години
  Jonas Maebe 79a06b1514 + iphonesim/x86_64 target (64 bit iOS simulator) преди 10 години
  florian 35a04ad095 * modified patch of Paul W to replace leave by mov/pop, resolves #26455 преди 10 години
  Jonas Maebe d8c898742a * handle the fact that records containing a single extended value are преди 10 години
  Jonas Maebe 8244d366d0 - moved deallocation of NR_PIC_OFFSET_REG from the x86_64 to the i386 code преди 10 години
  Jonas Maebe b745dcc64c * moved g_external_wrapper() to the hlcg, and also g_intf_wrapper() because преди 11 години
  florian d8c0f11ff9 + cs_userbp optimizer switch, so on x86-64 the compiler can make use of rbp if it is not needed as frame pointer преди 11 години
  sergei f508442a7e * Emit everything to the same asmlist (fixing copy-paste error). преди 11 години
  sergei 409e176ded * Factored reusable (SEH-related) piece of code into separate procedure. преди 11 години
  sergei da2887a4ec * x86_64-win64: SEH finalization procedures have frame pointer set to RBP but since r25389 they save registers relative to RSP. Fixed offsets for .seh_savereg/.seh_savexmm directives. преди 12 години
  sergei e41149a7ec * x86_64: reworked register saving/restoring to use PUSH/POP instructions for procedures with RSP-based frame and SEH finalization procedures. XMM registers are also saved/restored without involving tempgen in mentioned cases. This prevents SEH finalization procedures from saving registers in stack frame of their parent procedures, fixing incorrect unwind bytecode (Mantis #24791). It also reduces executable size (for compiler itself, by about 100Kb). преди 12 години
  sergei 5dda96bdfe - Tcgx86_64.init_register_allocators: removed 'preserved_by_proc' parameter, because it isn't used by RA in any way. преди 12 години
  sergei 1f72143eef * In preparation for fixing Mantis #24791: Copy related code from tcgx86.g_proc_entry to tcgx86_64.g_proc_entry, and remove win64-specific stuff from tcgx86 version. преди 12 години
  florian 94cf650d9a * use lea to adjust stack pointer, this is equal or faster on all modern CPUs than add/sub преди 12 години
  Jonas Maebe 69c29a415f * pass the procdef to getintparaloc instead of only the proccalloption, so преди 12 години
  florian 2e7fe1aebd * support of avx register requires now proper usage of R_SUBMMWHOLE преди 13 години
  florian 7361e19799 + support for handling OS_128/OS_S128 on 64 Bit CPUs as far as needed for method pointers in registers преди 13 години
  Jonas Maebe 7a0ae38700 + also specify the parameter def when allocating a parameter via преди 13 години
  sergei cbad0abab5 + Platform-specific exception support for x86_64-win64. Enable by cycling with OPT=-dTEST_WIN64_SEH. преди 13 години
  sergei fde1695961 * tcgx86_64.g_proc_exit: restore stack pointer using value that was calculated and stored in tcgx86.g_proc_entry, instead of recalculating it again. преди 13 години
  sergei fffa4a35a0 * x86_64: Don't waste time initializing/finalizing saved_standard_registers and saved_mm_registers arrays on every procedure. Initialize once, reinitialize if target system happens to change, and let finalization happen implicitly on shutdown. преди 13 години
  sergei 85f7914906 * Don't generate .seh_endprologue if SEH directives are present in the text of (pure assembler) procedure, as it results in duplicate .seh_endprologue. преди 14 години
  sergei 4c21beb48e win64 unwinding, misc fixes: преди 14 години
  sergei b997094755 + Generate unwind bytecode for function prologues on win64. преди 14 години
  sergei 9608c4eabe * Interface wrappers must be global when linking smart, Mantis #19462. Other targets already have this condition in place. преди 14 години
  svenbarth 35b47e491c Rebase to revision 17306 преди 14 години
  sergei c939beee70 * Changed register allocation order for x86_64, putting first registers that don't need to be preserved by procedure. This way registers needing preservation are allocated less frequently (and for non-complex leaf functions not allocated at all), reducing amount of entry/exit code. преди 14 години