nickysn
|
7ee0c07b8d
+ added flags register tracking for many i8086 operations
|
8 years ago |
nickysn
|
256dc546ac
+ implemented the in_neg_assign_x and in_not_assign_x inline nodes, which will
|
8 years ago |
nickysn
|
9093047a7a
* fixed a bug in the i8086 32-bit rol/ror code generation method rm_fast_386
|
8 years ago |
nickysn
|
1560f20e7f
+ implemented other 32-bit rol/ror by const methods for i8086 and added a
|
8 years ago |
nickysn
|
0fd860d9e7
* refactored the code generation for 32-bit rol/ror by const for i8086, so it
|
8 years ago |
nickysn
|
d5e33cce7f
* generate better i8086 code for ror32 by 1 and 17
|
8 years ago |
nickysn
|
321876252b
+ enabled the rol/ror intrinsic on i8086
|
8 years ago |
nickysn
|
76cb419241
* use 16-bit 386+ instructions (shld,shrd) for performing fast 32-bit
|
8 years ago |
nickysn
|
0ab4f01668
* implemented fast (loopless) 32-bit shift by constant for 8086 as well
|
8 years ago |
nickysn
|
0f2ad7b712
* generate faster (i.e. loopless) code for 32-bit shl/shr/sar by const on 186+
|
8 years ago |
nickysn
|
f0a63fa895
+ added an optimized implementation of a_op64_reg_ref for i8086; this improves
|
8 years ago |
Jonas Maebe
|
a25ebbba3e
+ added volatility information to all memory references
|
8 years ago |
svenbarth
|
c8202061dc
* get rid of addr_load_indirect again by having tcgx86 provide an internal implementation of both make_simple_ref() and a_load_ref_reg() so that make_direct_ref() can call the latter (and the latter the former) without fear of inifinite recursive calls due to the symbol; a_load_ref_reg() is additionally declared as "final" as a_load_ref_reg_internal() needs to be overloaded instead (which is the case for tcg8086)
|
8 years ago |
Jonas Maebe
|
aa1be3276f
- removed default value of _typ parameter of TAsmData.(Weak)RefAsmSymbol():
|
9 years ago |
nickysn
|
ac5658470e
+ use the 16-bit movsx and movzx instructions on 386+ in tcg8086.a_load_ref_reg
|
9 years ago |
nickysn
|
a5f1ae97d4
+ make use of the 16-bit movsx and movzx instructions in tcg8086.a_load_reg_reg
|
9 years ago |
nickysn
|
c78f406d99
+ implemented proper stack checking for the i8086
|
9 years ago |
pierre
|
40193ea1db
Add pi_has_open_array_parameter to proc_info.flags as this requires special handling for i8086 huge memory model to restore DS register correctly
|
9 years ago |
Jonas Maebe
|
d440daf47f
* fixed compilation with -Oodfa/-O3
|
9 years ago |
nickysn
|
09218c88aa
+ optimizations in tcg8086.g_flags2reg for the case where the carry flag or the
|
9 years ago |
nickysn
|
b26e10d53c
+ generate proper win16 prologue/epilogue for exported routines (we don't yet
|
10 years ago |
nickysn
|
bdfd23cc2e
+ new target switch "FarProcsPushOddBP", which causes the i8086 compiler to push
|
10 years ago |
nickysn
|
a1d29b8251
* always pop DS in huge memory models in asm routines that don't specify
|
10 years ago |
nickysn
|
98ec7a2211
* eliminated the dual initialization of DS in interrupt procedures in the huge
|
10 years ago |
nickysn
|
0fdc62e0f7
+ initialize DS with the current unit's data segment in the function entry code
|
10 years ago |
Jonas Maebe
|
67b8aceaee
* synchronized with privatetrunk till r30095
|
10 years ago |
florian
|
35a04ad095
* modified patch of Paul W to replace leave by mov/pop, resolves #26455
|
10 years ago |
Jonas Maebe
|
b745dcc64c
* moved g_external_wrapper() to the hlcg, and also g_intf_wrapper() because
|
11 years ago |
Jonas Maebe
|
a637fbe596
* moved all g_exception_*() methods to hlcgobj and cleaned them up (no more
|
11 years ago |
nickysn
|
791cd932fd
+ support i8086 far data memory models in tcg8086.g_intf_wrapper
|
11 years ago |