sergei
|
f2096de53a
* tcg386.g_proc_exit: instead of recalculating stack size, use current_procinfo.final_localsize which was calculated in g_proc_entry.
|
11 years ago |
sergei
|
179586f589
+ SEH support for Win32. Enable by cycling with OPT=-dTEST_WIN32_SEH.
|
11 years ago |
florian
|
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
|
11 years ago |
nickysn
|
7ae59a62c5
* emit a FWAIT after a floating point store, when targeting the 8087 and 80287
|
11 years ago |
nickysn
|
dea947f87b
* fixed tcgx86.a_op_const_ref for shl/shr/sar/rol/ror on i8086 and x86_64
|
11 years ago |
nickysn
|
d0f988f7a8
* don't use LEA in the code generator on i8086, as this breaks it quite badly.
|
11 years ago |
florian
|
7fc1d70e49
* do reg2=reg1*const by lea if possible
|
11 years ago |
florian
|
3c58cad96b
* make use of lea if possible
|
11 years ago |
nickysn
|
67fdcb02f2
* in tcgx86.make_simple_ref, on the i8086, emit 'mov es, reg', instead of
|
12 years ago |
nickysn
|
6be9627e74
* use all kinds of copy and not just copy_string in Tcgx86.g_concatcopy, when
|
12 years ago |
nickysn
|
bd0585274e
* tsettings.enablecld converted to a targetswitch ts_cld
|
12 years ago |
nickysn
|
52fcc0a407
+ added a new x86-specific compiler option 'enablecld', which controls whether
|
12 years ago |
Jonas Maebe
|
3b9b6a0cd7
* explicitly define the asmsymbols for Darwin call stubs as local
|
12 years ago |
sergei
|
e1550e1aed
* Restore registers in correct order (for push/pop it *does* matter), fixes crashes caused by r25224.
|
12 years ago |
sergei
|
5c4abfa75a
+ Implemented saving/restoring registers using PUSH/POP instructions on i386 targets with non-fixed stack. Provides some advantage in code size (e.g. the compiler becomes about 20KBytes smaller).
|
12 years ago |
sergei
|
a21a20d559
+ i8086-specific version of g_stackpointer_alloc.
|
12 years ago |
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 years ago |
florian
|
507edb16de
* use add/sub instead of inc/dec on modern CPUs when optimizing for speed
|
12 years ago |
nickysn
|
7e70a5f763
* i8086 fix after r25010: i8086 doesn't support lea sp,[sp-XXX]
|
12 years ago |
florian
|
94cf650d9a
* use lea to adjust stack pointer, this is equal or faster on all modern CPUs than add/sub
|
12 years ago |
florian
|
466eb4c684
* use MOVAPS/MOVAPD for reg -> reg moves to reduce data dependencies
|
12 years ago |
florian
|
e81d2d1f3b
* basic avx support for floating point operations (use -Cfavx to activate)
|
12 years ago |
nickysn
|
62316da236
* a_call_reg moved to a_call_reg_near
|
12 years ago |
nickysn
|
604b7c9deb
+ added cg.a_call_ref_near and a_call_ref_far
|
12 years ago |
nickysn
|
ec497ae11e
+ the regular tcgx86.a_call_name and .a_call_name_static moved to .a_call_name_near and .a_call_name_static_near, because a_call_name and a_call_name_static are going to be overriden in tcg8086
|
12 years ago |
nickysn
|
ec76b2cf40
* refactored the segment-in-integer-register reference support, so it's handled in make_simple_ref, instead of all over the place in the code generator
|
12 years ago |
nickysn
|
c9c882c30a
* always use 16-bit pushes for pushing/popping the segment registers on i8086 in Tcgx86.g_concatcopy
|
12 years ago |
nickysn
|
e243b6b869
* never use the 66h prefix when pushing/popping segment registers on i8086, as the stack is aligned on 2 bytes there
|
12 years ago |
nickysn
|
c2e3fb5918
+ emit proper interrupt procedure entry/exit code on i8086
|
12 years ago |
nickysn
|
0a8e008a0d
+ the ES register made volatile on i8086 as per the 16-bit x86 calling conventions
|
12 years ago |