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
florian
e157939b41
* compilation on x86-64 and i8086 fixed
...
git-svn-id: trunk@40275 -
2018-11-08 18:45:16 +00:00
florian
063415fa72
+ i386-linux support for tls-based threadvars
...
git-svn-id: trunk@40272 -
2018-11-07 22:03:02 +00:00
pierre
c6977a0a7a
Explicitly disable range checking
...
git-svn-id: trunk@40026 -
2018-10-24 21:37:22 +00:00
Jonas Maebe
0b246f3dbd
* converted Boolean8 to an internal type, and mapped Boolean to the
...
new internal pasbool1(type) (part of mantis #34411 )
o apply the _Bool x86-64 parameter passing rules only to pasbool1
git-svn-id: trunk@39949 -
2018-10-16 21:14:18 +00:00
Jonas Maebe
4686f61002
* keep track of the temp position separately from the offset in references,
...
so that they can still be freed after the reference has been changed
(e.g. in case of array indexing or record field accesses) (mantis #33628 )
git-svn-id: trunk@38814 -
2018-04-22 17:03:16 +00:00