nickysn
|
b3f7bce3a6
* check for CPUX86_HAS_SSE2 instead of CPUX86_HAS_SSEUNIT in Tcgx86.g_concatcopy
|
7 years ago |
florian
|
dba1761a76
+ tcgx86.a_load_reg_ref cuts data if the ref. size is smaller than the reg. size
|
8 years ago |
nickysn
|
7b70848d83
+ allow the src register size to be different from the op size or the dst
|
8 years ago |
florian
|
b1dff29cbf
* removed unused units
|
8 years ago |
florian
|
5c2c5d72a2
* use avx for copying data only on i386 for 8 byte chunks
|
8 years ago |
nickysn
|
ec11864272
* use a native sized int register for the shift count in in_sar_assign_x_y,
|
8 years ago |
nickysn
|
16af6f03fb
+ support OP_SHR/OP_SHL/OP_SAR/OP_ROL/OP_ROR in tcgx86.a_op_reg_ref
|
8 years ago |
nickysn
|
256dc546ac
+ implemented the in_neg_assign_x and in_not_assign_x inline nodes, which will
|
8 years ago |
florian
|
1e374df5b8
* correctly calculate the bit mask in thlcgobj.a_load_regconst_subsetreg_intern, resolves #31042
|
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 |
svenbarth
|
89f7da58ea
* fix tcgx86.make_direct_ref: we need to use the register in which we loaded the symbol and combine that with the base register (if it is set) without using an ADD
|
9 years ago |
Jonas Maebe
|
27bb656cec
* replaced "in_make_direct_ref" field with a trefaddr flag
|
9 years ago |
Jonas Maebe
|
e8c9541c04
* don't use ADD in make_direct_ref(), as the flags may be live
|
9 years ago |
Jonas Maebe
|
a9073cb50b
* don't overwrite the flags in make_simple_ref() if the reference
|
9 years ago |
Jonas Maebe
|
0afbe85aab
* various memory reference alignment fixes
|
9 years ago |
Jonas Maebe
|
aa1be3276f
- removed default value of _typ parameter of TAsmData.(Weak)RefAsmSymbol():
|
9 years ago |
Jonas Maebe
|
1cb8c0d00c
* specify the def of assembler level symbols defined via
|
9 years ago |
pierre
|
fb50d0860b
Use BX register instead of AX to reload DS at proc entry if register convention is used
|
9 years ago |
nickysn
|
c78f406d99
+ implemented proper stack checking for the i8086
|
9 years ago |
florian
|
d2b74be153
* always use vmov variants of instructions if avx is enabled
|
9 years ago |
florian
|
a742df9035
* reverse merged r33524 as it is not safe as test results showed
|
9 years ago |
florian
|
f576b0c01b
* make use of xor reg,reg by generating it directly instead of hoping for the peephole
|
9 years ago |
nickysn
|
c4343c1a2d
* don't call make_simple_ref in tcgx86.g_concatcopy on i8086, because that
|
9 years ago |
yury
|
3c6d4f1ee2
* Removed unused vars.
|
9 years ago |
svenbarth
|
f297b00f5b
Extend the x86 targets by the ability to handle indirect symbols.
|
9 years ago |
svenbarth
|
77ede2ac9f
i386/cgcpu.pas, tcg386:
|
9 years ago |
sergei
|
1b965e6766
* x86: Don't save/restore integer registers that are volatile per calling convention of current procedure. It implies that nothing will be saved for procedures with OLDFPCCALL, FAR16 and PASCAL and calling conventions. OLDFPCCALL restores behavior that was in effect before r25224.
|
9 years ago |
nickysn
|
b26e10d53c
+ generate proper win16 prologue/epilogue for exported routines (we don't yet
|
10 years ago |
yury
|
e04a3b4ac6
* Removed unused vars for x86 compiler.
|
10 years ago |