florian
8f68988aef
* another location to use source register as second register in VCVTSD2SS and VCVTSS2SD
...
to break dependency chains, hopefully final fix for #39360
2021-10-09 14:24:14 +02:00
florian
4752230c8f
* use source register as second register in VCVTSD2SS and VCVTSS2SD, this should break
...
dependency chains better and resolves partially #39360
2021-10-07 23:16:39 +02:00
yury
75491ae21c
* Removed/ifdefed the assigned and unused variables.
...
git-svn-id: trunk@48391 -
2021-01-24 13:58:17 +00:00
yury
64c586b86d
* Removed/ifdefed lots of unused variables.
...
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
florian
ecc3ce64ea
* x86: some fixes to enable 8 and 16 bit operations
...
git-svn-id: trunk@48166 -
2021-01-16 22:46:25 +00:00
florian
792b629aa6
+ -Xa option: generate code which allows to use more than 2 GB of static data on 64 Bit targets
...
+ implemented support for x86-64
* more than 2 GB static data requires to use the --no-relax option on linux
git-svn-id: trunk@47651 -
2020-11-30 22:07:34 +00:00
florian
9c7cb3dbd7
* fix spilling of avx(512) registers
...
* get_scalar_mm_op fixed for M256
git-svn-id: trunk@47524 -
2020-11-21 22:30:34 +00:00
florian
c3a0e0c6d2
* compilation on i386 fixed
...
git-svn-id: trunk@47369 -
2020-11-09 21:46:25 +00:00
florian
78244d89dc
* use VPXORD in avx-512 mode as VPXOR does not work for the upper 16 registers
...
git-svn-id: trunk@47368 -
2020-11-09 21:21:36 +00:00
florian
47066f0ce7
* moved UseAVX from cgx86 to cpubase
...
+ UseAVX512
git-svn-id: trunk@47346 -
2020-11-08 19:39:18 +00:00
florian
3ae370b190
* also use avx copying for mod 4=0 memory blocks
...
git-svn-id: trunk@47328 -
2020-11-05 22:13:58 +00:00
florian
f8d33dc188
* fix tcgx86.a_loadmm_reg_ref and tcgx86.a_loadmm_ref_reg for 64 OS_M512
...
git-svn-id: trunk@47315 -
2020-11-04 21:31:49 +00:00
florian
60bb8600a1
+ copy mode avx512
...
git-svn-id: trunk@47314 -
2020-11-04 21:31:48 +00:00
florian
37e934ffbd
* using ymm registers for copying data is always useful, regardless of alignment
...
git-svn-id: trunk@47313 -
2020-11-04 21:31:48 +00:00
florian
637976e83f
* patch by Marģers to unify internal error numbers, resolves #37888
...
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
florian
c2684c0dc3
* use V* instructions if possible
...
* fix i386 compilation
git-svn-id: trunk@47076 -
2020-10-10 13:50:35 +00:00
florian
cf153b0854
* use (V)XORPS/D for unary minus
...
git-svn-id: trunk@47074 -
2020-10-10 13:50:34 +00:00
yury
4dcdaa259a
* 8086: Use CX as a scratch register instead of BX.
...
git-svn-id: trunk@46554 -
2020-08-22 20:50:02 +00:00
florian
e73dd883cd
+ handle OS_128 in mm code
...
git-svn-id: trunk@45728 -
2020-07-03 21:12:07 +00:00
florian
5f67d830e7
* better rules if a 3 op mul operation is tried
...
git-svn-id: trunk@45605 -
2020-06-06 19:21:04 +00:00
florian
88c98a5741
* improve copy_avx gencopy mode
...
git-svn-id: trunk@45486 -
2020-05-24 17:52:07 +00:00
florian
93eb40b05c
* create vpxor instead of pxor in avx mode
...
git-svn-id: trunk@45485 -
2020-05-24 17:52:06 +00:00
florian
3d81c8e51d
* re-activate copy_mm: using it instead of movs might reduce register pressure
...
git-svn-id: trunk@45482 -
2020-05-24 13:56:41 +00:00
florian
8f0a3cfce7
* x86-64: adjust stack by push/pop if possible
...
git-svn-id: trunk@45476 -
2020-05-23 17:50:13 +00:00
florian
7dbab3a78f
* handle OP_XOR for a full mm register correctly in tcgx86.opmm_loc_reg
...
git-svn-id: trunk@45348 -
2020-05-12 20:43:15 +00:00
nickysn
0f6ab0de17
* handle LOC_(C)SUBSETREG/REF in second_NegNot_assign
...
* changed the way OP_NEG and OP_NOT are handled in op_reg_ref, in order to be
consistent with op_reg_reg
* introduced op_reg,op_ref,op_subsetreg,op_subsetref and op_loc for the unary
operations only (OP_NEG,OP_NOT)
git-svn-id: trunk@45302 -
2020-05-07 02:43:02 +00:00
florian
70a836c4a2
* first part of merging parts of Jeppe's intrinsics patch, mainly r31135
...
is merged by this commit with a lot of adaptions
git-svn-id: trunk@43949 -
2020-01-14 21:52:39 +00:00
florian
a34ae2261a
* copy fpu parameters using fld/fst onto the stack
...
git-svn-id: trunk@43861 -
2020-01-04 22:19:15 +00:00
florian
b7c6e01b03
* cleaning up tcgsize: it makes no sense to declare every combination and type
...
the different vector types must be either handled in the high level cg or
by using the shuffle parameter
git-svn-id: trunk@43860 -
2020-01-04 21:54:53 +00:00
florian
7000d82dcd
* do not convert cmp 0,... into test ...,... before the post pass of the peephole optimizer
...
as this conversion might result in missing further optimizer opportunities
git-svn-id: trunk@43596 -
2019-11-26 22:09:34 +00:00
florian
a7e72617a6
* fix stackmisalignment calculation to take care of pushf/push cs, before r43503,
...
it was correct by coincidence
git-svn-id: trunk@43506 -
2019-11-17 09:14:54 +00:00
florian
240acc10f8
* fix calculation of stackmisalignment for interrupt procedures as pointed out by Jonas
...
git-svn-id: trunk@43503 -
2019-11-16 17:46:39 +00:00
florian
896e031e84
* interrupt procedures fixed for i386 targets with a fixed stack with 16 byte alignment
...
git-svn-id: trunk@43006 -
2019-09-15 17:17:27 +00:00
florian
ba203c0564
+ x86 makes use of fpu_capabilities
...
* moved CPUX86_HAS_AVXUNIT to FPUX86_HAS_AVXUNIT
+ mm register allocator can be initialized with 32 mm registers of AVX512
git-svn-id: trunk@42707 -
2019-08-16 11:35:03 +00:00
Jonas Maebe
1b6425176b
* synchronised with trunk till r42049
...
git-svn-id: branches/debug_eh@42050 -
2019-05-12 18:44:05 +00:00
Jonas Maebe
281b3ad276
* fix case completeness and unreachable code warnings in compiler that would
...
be introduced by the next commit
git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +00:00
Jonas Maebe
a7bd37d17a
* synchronised with trunk till r40776
...
git-svn-id: branches/debug_eh@41867 -
2019-04-13 15:16:09 +00:00
nickysn
8f8aa70074
+ OpenBSD i386 and x86_64 support in tcgx86.g_profilecode
...
git-svn-id: trunk@41760 -
2019-03-21 17:09:21 +00:00
Jonas Maebe
866331de34
* fixed CFI registers for leave on x86-64, and place CFI directives closer to
...
the instructions they apply to
git-svn-id: branches/debug_eh@41576 -
2019-03-03 17:14:56 +00:00
florian
367bc18bc5
* cfa for x86-64 fixed
...
git-svn-id: branches/debug_eh@41563 -
2019-03-02 23:03:32 +00:00
Jonas Maebe
50c82b6468
* synchronised with trunk till r41537
...
git-svn-id: branches/debug_eh@41538 -
2019-03-01 16:20:22 +00:00
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.
...
git-svn-id: trunk@41464 -
2019-02-25 15:48:41 +00:00
florian
db6916453d
* warning fixed
...
git-svn-id: branches/debug_eh@41452 -
2019-02-24 20:03:23 +00:00
florian
18fb53e012
* set cfa offset always properly
...
git-svn-id: branches/debug_eh@41413 -
2019-02-22 22:00:20 +00:00
florian
a8c8cc1890
* create proper cfi, when registers are pushed
...
git-svn-id: branches/debug_eh@41382 -
2019-02-19 22:16:39 +00:00
florian
3567d01ee4
* improved CFI
...
git-svn-id: branches/debug_eh@41356 -
2019-02-17 20:26:32 +00:00
florian
72a02b467c
+ generate more cfi on x86
...
git-svn-id: branches/debug_eh@41287 -
2019-02-10 18:00:24 +00:00
florian
597a23d278
+ tls support for x86_64-linux (not yet enabled by default)
...
git-svn-id: trunk@41081 -
2019-01-27 09:37:25 +00:00
florian
6dbde11f5a
* three operand shl for shifting by 2, 4 or 8 can be simulated by lea
...
git-svn-id: trunk@40337 -
2018-11-17 15:08:22 +00:00
florian
6a6ea6729f
* i8086 compiler fixed, resolves #34552
...
git-svn-id: trunk@40316 -
2018-11-14 18:05:35 +00:00