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 jaren geleden |
nickysn
|
e243b6b869
* never use the 66h prefix when pushing/popping segment registers on i8086, as the stack is aligned on 2 bytes there
|
12 jaren geleden |
nickysn
|
c2e3fb5918
+ emit proper interrupt procedure entry/exit code on i8086
|
12 jaren geleden |
nickysn
|
c271594b4f
+ optimized implementation of 32-bit OP_SHL,OP_SHR and OP_SAR in tcg8086.a_op_const_reg
|
12 jaren geleden |
nickysn
|
06838be452
* fixed bug when passing a 'single' floating point type parameter via tcg8086.a_load_ref_cgpara
|
12 jaren geleden |
nickysn
|
27adafeecb
+ support moving from a shorter unsigned (sign extension not yet implemented) to a longer type in tcg8086.a_load_reg_ref
|
12 jaren geleden |
nickysn
|
3aeea835f9
+ int register in treference.segment support in tcg8086.op_*ref*
|
12 jaren geleden |
florian
|
c1a1325a72
* reduce register pressure by allocating/deallocating registers as late/early as possible
|
12 jaren geleden |
nickysn
|
8b1e621665
* segment in int register support added also to tcg8086.a_load_reg_ref and .a_load_ref_reg
|
12 jaren geleden |
nickysn
|
9171c19601
* support int register in treference.segment in tcg8086.a_load_const_ref; this fixes farptr^:=const
|
12 jaren geleden |
nickysn
|
2557382815
- rm tcg8086.g_maybe_got_init as it's of no use for the i8086
|
12 jaren geleden |
nickysn
|
c4dd85a0eb
+ implemented tcg8086.a_op_reg_ref
|
12 jaren geleden |
nickysn
|
85b98671bd
+ implemented tcg8086.a_op_const_ref for op_add/and/or/sub/xor/move/none; this fixes inc(longint) among other things
|
12 jaren geleden |
nickysn
|
2d67a3169d
* i8086 fixes in tcg8086.g_copyvaluepara_openarray
|
12 jaren geleden |
nickysn
|
502c2ffb94
* fixed tcg8086.a_load_reg_reg when doing an unsigned extension in the same superregister; this fixes the taddbool test
|
12 jaren geleden |
nickysn
|
5a4a3cbbc3
+ implemented tcg8086.a_op_ref_reg; supports op_add/sub/xor/or/and
|
12 jaren geleden |
nickysn
|
4527fe8fa2
+ added 8086 workaround for the 'imul reg,const' 186+ instruction. The compiler can now generate strict 8086/8088 code.
|
12 jaren geleden |
nickysn
|
8fddb1361b
* got rid of push const also in tcg8086.a_loadaddr_ref_cgpara
|
12 jaren geleden |
nickysn
|
cfc3c6ec5d
- cleanup tcg8086.a_loadaddr_ref_cgpara from unused code left over from i386
|
12 jaren geleden |
nickysn
|
76e3dd5cef
* do not generate push const on the i8086, go through a register instead, unless it's 186+
|
12 jaren geleden |
nickysn
|
06f1b6a4e8
* moved the i8086 'push const' instructions to a new method, so they can be abstracted on pre-186 processors
|
12 jaren geleden |
nickysn
|
7c0679efdb
* use the 'leave' instruction on 80186+
|
12 jaren geleden |
nickysn
|
af5614e52d
* i8086 parameter alignment fixes
|
12 jaren geleden |
nickysn
|
7b9fd7b9f4
* instruction size fixes in tcg8086.g_intf_wrapper
|
12 jaren geleden |
nickysn
|
c4cee15481
* bug fix in tcg8086.a_load_reg_reg for loading larger register to a smaller one
|
12 jaren geleden |
florian
|
636129ed8c
* fix interface wrapper generation for i8086
|
12 jaren geleden |
florian
|
edd4c1ce4b
* proper fix to avoid sp relative adressing as r23867 tries
|
12 jaren geleden |
nickysn
|
01106a0968
* support stack relative addresses in a_loadfpu_reg_ref on the i8086
|
12 jaren geleden |
nickysn
|
44ce37369e
* support 32-bit parameters that have a pair of two 16-bit locations in tcg8086.a_load_reg_cgpara
|
12 jaren geleden |
nickysn
|
e956ffc27b
* bug fix in the 32-bit parameters handling in tcg8086.a_load_const_cgpara
|
12 jaren geleden |