yury
|
a04e4971fc
* i386: Do not request GOT for every function call. GOT is requested only for external calls in thlcgcpu.a_call_name(). Local calls are always PC relative.
|
6 tahun lalu |
florian
|
597a23d278
+ tls support for x86_64-linux (not yet enabled by default)
|
6 tahun lalu |
florian
|
6dbde11f5a
* three operand shl for shifting by 2, 4 or 8 can be simulated by lea
|
6 tahun lalu |
florian
|
6a6ea6729f
* i8086 compiler fixed, resolves #34552
|
6 tahun lalu |
florian
|
e157939b41
* compilation on x86-64 and i8086 fixed
|
6 tahun lalu |
florian
|
063415fa72
+ i386-linux support for tls-based threadvars
|
6 tahun lalu |
pierre
|
c6977a0a7a
Explicitly disable range checking
|
6 tahun lalu |
Jonas Maebe
|
0b246f3dbd
* converted Boolean8 to an internal type, and mapped Boolean to the
|
6 tahun lalu |
Jonas Maebe
|
4686f61002
* keep track of the temp position separately from the offset in references,
|
7 tahun lalu |
nickysn
|
518cdf9674
* replaced the saved_XXX_registers arrays with virtual methods inside
|
7 tahun lalu |
florian
|
9b18e39c81
* enable Lea2AddBase and Lea2AddIndex in TX86AsmOptimizer.PostPeepholeOptLea as we have flag tracking now
|
7 tahun lalu |
florian
|
381cf78ff1
* there is no vmovq for mmx registers
|
7 tahun lalu |
florian
|
31f78ea2b6
+ implementation of the vectorcall calling convention by J. Gareth Moreton
|
7 tahun lalu |
florian
|
092223f400
* comment links to test now
|
7 tahun lalu |
florian
|
e5ebc65cce
* if si and di are allocated on i8086, using an index in references is not possible anymore
|
7 tahun lalu |
nickysn
|
b3f7bce3a6
* check for CPUX86_HAS_SSE2 instead of CPUX86_HAS_SSEUNIT in Tcgx86.g_concatcopy
|
7 tahun lalu |
florian
|
dba1761a76
+ tcgx86.a_load_reg_ref cuts data if the ref. size is smaller than the reg. size
|
8 tahun lalu |
nickysn
|
7b70848d83
+ allow the src register size to be different from the op size or the dst
|
8 tahun lalu |
florian
|
b1dff29cbf
* removed unused units
|
8 tahun lalu |
florian
|
5c2c5d72a2
* use avx for copying data only on i386 for 8 byte chunks
|
8 tahun lalu |
nickysn
|
ec11864272
* use a native sized int register for the shift count in in_sar_assign_x_y,
|
8 tahun lalu |
nickysn
|
16af6f03fb
+ support OP_SHR/OP_SHL/OP_SAR/OP_ROL/OP_ROR in tcgx86.a_op_reg_ref
|
8 tahun lalu |
nickysn
|
256dc546ac
+ implemented the in_neg_assign_x and in_not_assign_x inline nodes, which will
|
8 tahun lalu |
florian
|
1e374df5b8
* correctly calculate the bit mask in thlcgobj.a_load_regconst_subsetreg_intern, resolves #31042
|
8 tahun lalu |
Jonas Maebe
|
a25ebbba3e
+ added volatility information to all memory references
|
8 tahun lalu |
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 tahun lalu |
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
|
8 tahun lalu |
Jonas Maebe
|
27bb656cec
* replaced "in_make_direct_ref" field with a trefaddr flag
|
8 tahun lalu |
Jonas Maebe
|
e8c9541c04
* don't use ADD in make_direct_ref(), as the flags may be live
|
8 tahun lalu |
Jonas Maebe
|
a9073cb50b
* don't overwrite the flags in make_simple_ref() if the reference
|
8 tahun lalu |