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 |
nickysn
|
e4f3dd1264
* do not emit shl/shr with a const different than 1 on 8086
|
12 years ago |
nickysn
|
fbc41991f9
* i8086 fixes in tcgx86.a_op_reg_reg for 16-bit OP_SHR,OP_SHL,OP_SAR,OP_ROL,OP_ROR
|
12 years ago |
florian
|
edd4c1ce4b
* proper fix to avoid sp relative adressing as r23867 tries
|
12 years ago |
florian
|
b321f867c6
+ trgintcpu.add_cpu_interferences for i8086 so references are properly build
|
12 years ago |
nickysn
|
95b15d15bd
another nested ifdef cleaned up
|
12 years ago |
nickysn
|
981f0a5c6c
nested ifdefs converted to series of elseif + some other ifdefs cleaned up
|
12 years ago |