nickysn
|
791cd932fd
+ support i8086 far data memory models in tcg8086.g_intf_wrapper
|
před 11 roky |
nickysn
|
906d828ee0
* tcg8086.g_copyvaluepara_openarray: fix for the case where ref.segment is
|
před 11 roky |
nickysn
|
c9c29a3cd4
+ ignore the source segment, when the destination cgpara is a near pointer in
|
před 11 roky |
nickysn
|
c9f8703679
+ set ref.segment to NR_SS for all temps/localvars on i8086. This allows the
|
před 11 roky |
nickysn
|
bf6ad0ff78
* fixed tcg8086.g_flags2reg, so it behaves the same way as tcgx86.g_flags2reg
|
před 11 roky |
sergei
|
98de3c4e40
* tcg8086.g_flags2reg: call virtual method a_jmp_flags instead of duplicating its functionality, it prevents further changes to this method when adding support for unordered comparison results.
|
před 11 roky |
nickysn
|
6fe362a1b0
+ added method is_far to i8086's tcpuprocdef and tcpuprocvardef
|
před 11 roky |
nickysn
|
9da1ee0138
* i8086 far data model fixes in the copying of openarray value params
|
před 11 roky |
nickysn
|
0a9f738167
+ tcg8086.g_copyvaluepara_openarray: support source to be in a different segment
|
před 11 roky |
nickysn
|
1f8280e8f1
* load the destination segment in tcg8086.g_copyvaluepara_openarray from SS
|
před 11 roky |
nickysn
|
122f66b11a
+ support passing far addresses in tcg8086.a_loadaddr_ref_cgpara
|
před 11 roky |
sergei
|
9c54cdc85d
* x86: Cleaned out addr_far,addr_far_ref used to encode far calls/jumps. NASM (and FPC x86 assembler based on it) already have opsize=S_FAR for this purpose.
|
před 11 roky |
nickysn
|
b672bc754a
- rm references to system_i386_darwin and system_i386_iphonesim from
|
před 11 roky |
nickysn
|
a31b7d485f
* tcg8086.init_register_allocator: instantiate trgintcpu instead of trgcpu for
|
před 11 roky |
nickysn
|
fc29e10349
* allow the use of inc/dec when adding/subtracting 32 or 64-bit constants with
|
před 11 roky |
sergei
|
9c1f917e3a
* a_call_ref functionality cannot be implemented efficiently at code generator level, because references need specific preparations at earlier points. Moved this support to tcgcallnode and its x86 descendants, and got rid of all ifdef's around.
|
před 11 roky |
nickysn
|
85dd9e5789
+ added a size parameter to optimize_op_const and do a sign extension of the 'a' parameter up from the specified size, so that things like (i and $ffffffff) get optimized away the same way as (i and -1)
|
před 11 roky |
nickysn
|
529008e031
* emit MUL (when overflow checking is off), instead of IMUL for OP_IMUL in
|
před 11 roky |
nickysn
|
767a0f1187
- rm TODO comment about the IMUL optimization with SHL from
|
před 11 roky |
nickysn
|
1a846e7c71
- rm TODO comment for overflow checking from tcg8086.a_op_const_reg, since
|
před 11 roky |
nickysn
|
b8203a3406
* fixed tcg8086.gen_cmp32_jmp1 for the less than/greater than cases
|
před 11 roky |
nickysn
|
cf6f408214
+ implemented the tcg8086.a_cmp_*_*_label methods for i8086. How did the i8086
|
před 11 roky |
nickysn
|
dcb9306de8
* perform the OP_AND, OP_OR and OP_XOR optimizations for 0 and $FFFF values
|
před 11 roky |
nickysn
|
9a1e33d2a0
* tcg8086.a_op_const_reg: perform the OP_AND, OP_OR and OP_XOR optimizations for
|
před 11 roky |
nickysn
|
9eb4419ba3
* fixed the conversion and assignment to the 64-bit boolean types on the i8086
|
před 11 roky |
nickysn
|
974fea30b2
* use only one temporary 16-bit register, instead of two in tcg8086.g_flags2ref
|
před 11 roky |
nickysn
|
bda163544a
* tcg8086.g_flags2reg: restore the register back to the original size after the
|
před 11 roky |
nickysn
|
fbd05c4e12
* Improved code generation in tcg8086.g_flags2reg for the case when target reg
|
před 11 roky |
nickysn
|
d57d982be7
* simpler handling of moves from a smaller to a larger cgsize in
|
před 11 roky |
nickysn
|
5d0814016d
* improvements and fixes in tcg8086.a_load_reg_reg and .a_load_ref_reg:
|
před 11 roky |