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
|
11 年之前 |
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 年之前 |