Commit Graph

2360 Commits

Author SHA1 Message Date
florian
f6002d8078 * ensure make_simple_ref is called, resolves #40851 2024-07-10 22:26:09 +02:00
florian
db5e821ead * more change information updates 2024-07-02 22:21:24 +02:00
florian
9ce7fbeef0 * change information updates 2024-06-28 22:45:00 +02:00
J. Gareth "Curious Kit" Moreton
fb66369a3b * x86: CheckJumpMovTransferOpt now also copies over register deallocations to allow better optimisations 2024-06-24 20:05:39 +00:00
florian
2fe3955be9 + more change information 2024-06-11 23:22:21 +02:00
florian
bdb611c925 * small fix of change information 2024-06-10 23:10:48 +02:00
florian
15b3f16646 * use fld1/fchs regardless of pic 2024-06-06 22:36:29 +02:00
florian
aaeefacf85 * also optimize loading of -1.0 2024-06-05 22:56:45 +02:00
florian
8c2aca6ece * load 2 on x86 stack by fld1/fadd, if pic code is generated. It is more efficient as two memory accesses are saved. 2024-06-04 23:21:26 +02:00
florian
c64fae2f89 * missing AVX-2 change information fixed 2024-06-03 23:29:37 +02:00
florian
73a251410e + more change information 2024-06-02 23:11:14 +02:00
florian
8db51a367e * forgotten part of last commit 2024-06-01 18:53:50 +02:00
florian
055681c8b4 * correct change information for some instructions where the change
information cannot be modelled in x86ins.dat
2024-06-01 18:46:23 +02:00
J. Gareth "Curious Kit" Moreton
2de19f9e66 * x86: Reimplemented TAsmNode XML dumping using new framework 2024-05-30 20:04:11 +00:00
florian
4eb8f8e565 * patch by Marģers
- Rename 3DNow instruction (fixed long lasting typo in mnemonic). PMULHRWA  --> PMULHRW
    - Add vpclmullqlqdq, vpclmulhqlqdq, vpclmullqhqdq, vpclmulhqhqdq.
    - Fix "typo" for SHA1MSG2
2024-05-30 21:49:30 +02:00
florian
d5ab671ec3 * patch by Marģers: patch to enable ENTER asm instruction
+ test
2024-05-29 23:15:09 +02:00
J. Gareth "Curious Kit" Moreton
bba8558a1a * x86: Minor change to lineinfo in "MovAdd2Lea" so debugging is more logical 2024-05-20 17:45:29 +00:00
florian
cab3b8c06f * factor out tcgx86.getcopymode 2024-05-19 22:56:23 +02:00
florian
e29d1ecda9 * reorganize Tcgx86.g_concatcopy 2024-05-17 21:39:18 +02:00
florian
b826ad8b7e + CPUX86_HINT_FAST_SHORT_REP_MOVS
* use FPC_MOVE instead of rep movs if possible, partially fixes #40785
2024-05-16 22:59:21 +02:00
J. Gareth "Curious Kit" Moreton
6cc391dfa1 * x86: Improved "Test2Bt" peephole optimisation 2024-05-02 23:46:20 +01:00
florian
b6da7a799a * regenerated 2024-05-02 22:46:49 +02:00
florian
346962beaa * compiler part of #35433 2024-05-01 23:05:06 +02:00
J. Gareth "Curious Kit" Moreton
e601156b8c * x86-64: Bug fix where RIP-relative references were made absolute in minmax optimisations by mistake. 2024-04-27 16:32:04 +00:00
J. Gareth "Curious Kit" Moreton
17b7782929 * i386: Fixed issue where the peephole optimizer entered an infinite loop when building for CPUs older than Pentium II 2024-04-26 19:08:00 +00:00
florian
2e86cdb620 * allow swapping of operands for three operand instructions if they are commutative 2024-04-22 22:25:37 +02:00
J. Gareth "Curious Kit" Moreton
3cae3e7e48 * x86: Registers are now allocated properly during a FuncMov2Func
optimisation
2024-04-09 20:51:24 +00:00
J. Gareth "Curious Kit" Moreton
18eec3055e * x86: More accurate register tracking in CheckJumpMovTransferOpt 2024-04-09 20:51:24 +00:00
florian
fd68d3bfbb * ensure that left and right have a result type set in tx86addnode.pass_1, resolves #40727 2024-04-08 22:53:34 +02:00
florian
139f2dfe84 * fix internalerror 200502052 with certain min/max optimizations on x86-64, resolves #40730 2024-04-06 23:31:37 +02:00
florian
8cdb3deebd * another fix for min/max intrinsics on x86_64 for non constant/reference/register locations, resolves #40724 2024-04-03 22:03:30 +02:00
florian
3b8fcfc6eb * fix min/max intrinsics on x86_64 for non constant/reference/register locations, resolves #40721 2024-04-01 23:25:24 +02:00
florian
a8d496ade7 * i386 uses generic x86 abs(long/int64) code now 2024-03-29 20:54:52 +01:00
florian
fea8050457 * fix i386 building after fb3c4ff75b 2024-03-27 00:04:46 +01:00
florian
fb3c4ff75b * avoid CMPs with constants outside the range of signed 32 bit values 2024-03-26 23:53:46 +01:00
J. Gareth "Curious Kit" Moreton
ee1916e919 * i8086: Local variables unused in "second_AndOrXorShiftRot_assign" on i8086 are now not defined on this platform 2024-03-26 14:18:31 +00:00
J. Gareth "Curious Kit" Moreton
11b341cc97 * x86: Added new OptPass1CMOVcc peephole optimisation routine to dust up min/max code 2024-03-26 14:18:31 +00:00
J. Gareth "Curious Kit" Moreton
e4a0ce2fb5 * x86: Min/max intrinsic support 2024-03-26 14:18:31 +00:00
J. Gareth "Curious Kit" Moreton
948766a37a * x86: New Op/TEST optimisation that rearranges register usage for the most efficient execution 2024-03-25 22:25:29 +00:00
florian
7c609ee7c4 * proper fix for 9056ab8025 2024-03-25 22:33:30 +01:00
Pierre Muller
9056ab8025 Fix generation of i8086 CPU code, as BTR/BTS instructions require at least 386 CPU 2024-03-25 14:29:08 +00:00
florian
12176d3683 * avoid to generate bts/r with memory operand
+ thlcgx86.a_bit_set_reg_reg
2024-03-24 23:03:33 +01:00
J. Gareth "Curious Kit" Moreton
2b7df4237b * nf_pass1_done, nf_error, nf_processing and nf_do_not_execute
have been moved to a new "transientflags" node field that
    isn't stored in PPU files
2024-03-24 18:14:49 +00:00
florian
c3b8b51cb5 * more overflow checking for abs(...) 2024-03-16 21:54:12 +01:00
florian
2a46596edd * overflow check abs(...) for x86 2024-03-14 23:14:47 +01:00
J. Gareth "Curious Kit" Moreton
755d221230 * x86: Additional optimisation in OptPass2MOV to help with sub-optimal MOV/CMP/MOV triplets (and a minor refactor). 2024-03-10 21:09:59 +00:00
J. Gareth "Curious Kit" Moreton
f4e955d04f * x86: Improvement to CMOVcc/Jcc optimisation that attempts to remove temporary registers storing constants 2024-03-10 21:09:59 +00:00
J. Gareth "Curious Kit" Moreton
a7fe49f38f * x86: CMOVcc/Jcc pairs are now changed to MOV/Jcc if the register is not used if the jump doesn't branch 2024-03-10 21:09:59 +00:00
J. Gareth "Curious Kit" Moreton
b804fc5164 * Flags specific to TAddNode have been moved to their own field 2024-03-02 21:31:21 +01:00
florian
1966ce7c1c + Skylake-X for i386 2024-02-26 22:41:55 +01:00