sergei
|
6b1f021fcf
- Removed remaining optimizations that duplicate functionality of tcg.optimize_op_const.
|
11 years ago |
nickysn
|
1f7b14f38e
* fixed the conversion of powerof2 mul/imuls to lea in tcgx86.a_op_const_reg_reg
|
11 years ago |
nickysn
|
cc1faad3d2
+ make use of the 3-operand form of IMUL on i386 and x86_64
|
11 years ago |
nickysn
|
5d75bf4f92
* always use IMUL instead of MUL on i386, when doing a 32->32 multiplication
|
11 years ago |
nickysn
|
820b667e1b
- rm the OP_IMUL to SHL optimization from tcgx86.a_op_const_reg and tcgx86.a_op_const_ref, because it's already done in optimize_op_const, which is called in the beginning of both methods.
|
11 years ago |
florian
|
e210d5f30e
+ cpu_capabilites for x86_64 and i386
|
11 years ago |
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 |