nickysn
|
af54de6d56
+ added tcg8086.a_call_name_far and .a_call_name_static_far; a_call_name and a_call_name_static overriden and call near or far depending on the memory model
|
12 years ago |
nickysn
|
aa63efc27e
* emit a far ret instruction in the exit code of far procedures
|
12 years ago |
nickysn
|
e2241d97a2
* i8086 optimizations for 32-bit OP_SAR with const >= 16
|
12 years ago |
nickysn
|
55a071692e
* i8086 optimizations in op_const_reg for 32-bit OP_SHL and OP_SHR with const >= 16
|
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
|
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
|
c271594b4f
+ optimized implementation of 32-bit OP_SHL,OP_SHR and OP_SAR in tcg8086.a_op_const_reg
|
12 years ago |
nickysn
|
06838be452
* fixed bug when passing a 'single' floating point type parameter via tcg8086.a_load_ref_cgpara
|
12 years ago |
nickysn
|
27adafeecb
+ support moving from a shorter unsigned (sign extension not yet implemented) to a longer type in tcg8086.a_load_reg_ref
|
12 years ago |
nickysn
|
3aeea835f9
+ int register in treference.segment support in tcg8086.op_*ref*
|
12 years ago |
florian
|
c1a1325a72
* reduce register pressure by allocating/deallocating registers as late/early as possible
|
12 years ago |
nickysn
|
8b1e621665
* segment in int register support added also to tcg8086.a_load_reg_ref and .a_load_ref_reg
|
12 years ago |
nickysn
|
9171c19601
* support int register in treference.segment in tcg8086.a_load_const_ref; this fixes farptr^:=const
|
12 years ago |
nickysn
|
2557382815
- rm tcg8086.g_maybe_got_init as it's of no use for the i8086
|
12 years ago |
nickysn
|
c4dd85a0eb
+ implemented tcg8086.a_op_reg_ref
|
12 years ago |
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 years ago |
nickysn
|
2d67a3169d
* i8086 fixes in tcg8086.g_copyvaluepara_openarray
|
12 years ago |
nickysn
|
502c2ffb94
* fixed tcg8086.a_load_reg_reg when doing an unsigned extension in the same superregister; this fixes the taddbool test
|
12 years ago |
nickysn
|
5a4a3cbbc3
+ implemented tcg8086.a_op_ref_reg; supports op_add/sub/xor/or/and
|
12 years ago |
nickysn
|
4527fe8fa2
+ added 8086 workaround for the 'imul reg,const' 186+ instruction. The compiler can now generate strict 8086/8088 code.
|
12 years ago |
nickysn
|
8fddb1361b
* got rid of push const also in tcg8086.a_loadaddr_ref_cgpara
|
12 years ago |
nickysn
|
cfc3c6ec5d
- cleanup tcg8086.a_loadaddr_ref_cgpara from unused code left over from i386
|
12 years ago |
nickysn
|
76e3dd5cef
* do not generate push const on the i8086, go through a register instead, unless it's 186+
|
12 years ago |
nickysn
|
06f1b6a4e8
* moved the i8086 'push const' instructions to a new method, so they can be abstracted on pre-186 processors
|
12 years ago |
nickysn
|
7c0679efdb
* use the 'leave' instruction on 80186+
|
12 years ago |
nickysn
|
af5614e52d
* i8086 parameter alignment fixes
|
12 years ago |
nickysn
|
7b9fd7b9f4
* instruction size fixes in tcg8086.g_intf_wrapper
|
12 years ago |
nickysn
|
c4cee15481
* bug fix in tcg8086.a_load_reg_reg for loading larger register to a smaller one
|
12 years ago |
florian
|
636129ed8c
* fix interface wrapper generation for i8086
|
12 years ago |