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.
|
hace 9 años |
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.
|
hace 10 años |
Jonas Maebe
|
61e4a1b811
+ added tasmlist parameter to getintparaloc() (needed for llvm)
|
hace 10 años |
Jonas Maebe
|
67b8aceaee
* synchronized with privatetrunk till r30095
|
hace 10 años |
Jonas Maebe
|
79a06b1514
+ iphonesim/x86_64 target (64 bit iOS simulator)
|
hace 10 años |
florian
|
35a04ad095
* modified patch of Paul W to replace leave by mov/pop, resolves #26455
|
hace 10 años |
Jonas Maebe
|
d8c898742a
* handle the fact that records containing a single extended value are
|
hace 11 años |
Jonas Maebe
|
8244d366d0
- moved deallocation of NR_PIC_OFFSET_REG from the x86_64 to the i386 code
|
hace 11 años |
Jonas Maebe
|
b745dcc64c
* moved g_external_wrapper() to the hlcg, and also g_intf_wrapper() because
|
hace 11 años |
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
|
hace 11 años |
sergei
|
f508442a7e
* Emit everything to the same asmlist (fixing copy-paste error).
|
hace 12 años |
sergei
|
409e176ded
* Factored reusable (SEH-related) piece of code into separate procedure.
|
hace 12 años |
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.
|
hace 12 años |
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).
|
hace 12 años |
sergei
|
5dda96bdfe
- Tcgx86_64.init_register_allocators: removed 'preserved_by_proc' parameter, because it isn't used by RA in any way.
|
hace 12 años |
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.
|
hace 12 años |
florian
|
94cf650d9a
* use lea to adjust stack pointer, this is equal or faster on all modern CPUs than add/sub
|
hace 12 años |
Jonas Maebe
|
69c29a415f
* pass the procdef to getintparaloc instead of only the proccalloption, so
|
hace 12 años |
florian
|
2e7fe1aebd
* support of avx register requires now proper usage of R_SUBMMWHOLE
|
hace 13 años |
florian
|
7361e19799
+ support for handling OS_128/OS_S128 on 64 Bit CPUs as far as needed for method pointers in registers
|
hace 13 años |
Jonas Maebe
|
7a0ae38700
+ also specify the parameter def when allocating a parameter via
|
hace 13 años |
sergei
|
cbad0abab5
+ Platform-specific exception support for x86_64-win64. Enable by cycling with OPT=-dTEST_WIN64_SEH.
|
hace 13 años |
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.
|
hace 13 años |
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.
|
hace 14 años |
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.
|
hace 14 años |
sergei
|
4c21beb48e
win64 unwinding, misc fixes:
|
hace 14 años |
sergei
|
b997094755
+ Generate unwind bytecode for function prologues on win64.
|
hace 14 años |
sergei
|
9608c4eabe
* Interface wrappers must be global when linking smart, Mantis #19462. Other targets already have this condition in place.
|
hace 14 años |
svenbarth
|
35b47e491c
Rebase to revision 17306
|
hace 14 años |
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.
|
hace 14 años |