Jeppe Johansen
c20b27ede9
Add most SSE instructions as intrinsics.
...
git-svn-id: trunk@44274 -
2020-03-06 21:34:22 +00:00
Jeppe Johansen
135a88c888
movhlps/movlhps only take xmm registers.
...
Handle spilling of SSE registers.
git-svn-id: trunk@44272 -
2020-03-06 17:19:51 +00:00
florian
6cac8cc77b
* fix Peephole Optimization: Cmpcc2Testcc - condition AE/NB/NC/NO --> Always optimization
...
git-svn-id: trunk@44271 -
2020-03-06 16:16:38 +00:00
florian
8f0376c888
+ JccAdd2SetccAdd optimization
...
* take care of C_C/C_NC in JccAdd/Inc/Dec2(Cmc)Adc/Sbb
git-svn-id: trunk@44268 -
2020-03-06 15:47:18 +00:00
florian
cea7723080
* more use of RemoveCurrentP(p)
...
git-svn-id: trunk@44264 -
2020-03-05 21:49:36 +00:00
florian
f42b0bf6f5
* fixed JccAdd/Inc/Dec2*Adc/Sbb optimizations
...
git-svn-id: trunk@44254 -
2020-03-01 21:21:18 +00:00
florian
34be9e4643
* CallRet2* optimization may not misalign the stack, reported by C Western on fpc-devel
...
git-svn-id: trunk@44253 -
2020-03-01 09:37:09 +00:00
florian
9bdfbc2473
+ GetNextInstructionUsingRegTrackingUse
...
* better MovAnd2Mov optimization
+ TOptsToCheck to track expensive optimizations, needs more work
git-svn-id: trunk@44241 -
2020-02-23 21:47:47 +00:00
florian
a357359971
* LeaCallLeaRet2Jmp is done in TX86AsmOptimizer.PostPeepholeOptLea
...
git-svn-id: trunk@44240 -
2020-02-23 21:21:40 +00:00
florian
2acc6337d8
* debug statement removed
...
git-svn-id: trunk@44234 -
2020-02-22 22:38:36 +00:00
florian
4dff373fef
* (modified) patch by J. Gareth Moreton: processor-aware MOVZX optimisation cleanup, resolves #36687
...
git-svn-id: trunk@44233 -
2020-02-22 18:37:38 +00:00
florian
49f789b92a
* reverted accidently committed changes again
...
git-svn-id: trunk@44218 -
2020-02-19 21:12:23 +00:00
florian
95e8992e2f
+ AArch64: profiler support for aarch64-linux
...
git-svn-id: trunk@44216 -
2020-02-19 21:10:19 +00:00
florian
3099e10f41
* revert accidently committed code
...
git-svn-id: trunk@44205 -
2020-02-17 20:12:53 +00:00
florian
e50c4f6373
+ AAarch64: optimize divisions by constant
...
git-svn-id: trunk@44204 -
2020-02-17 20:11:32 +00:00
florian
88836b467e
* (V)MOVA*(V)MOVS*2(V)MOVS* 1 optimization
...
git-svn-id: trunk@44194 -
2020-02-16 16:43:26 +00:00
florian
42324235bd
+ CallRet2Call optimization
...
git-svn-id: trunk@44192 -
2020-02-16 13:15:12 +00:00
florian
3279e63351
* patch by J. Gareth Moreton: cleanup TX86AsmOptimizer.OptPass2MOV after DeepMov changes, second part of #36670
...
git-svn-id: trunk@44166 -
2020-02-13 20:53:39 +00:00
florian
3a5eb0ec59
* patch by J. Gareth Moreton: cleanup TX86AsmOptimizer.OptPass1MOV after DeepMov changes, first part of #36670
...
git-svn-id: trunk@44164 -
2020-02-13 20:20:10 +00:00
florian
f632e2e7be
* simplified TX86AsmOptimizer.OptPass1Movx
...
git-svn-id: trunk@44162 -
2020-02-12 20:23:06 +00:00
florian
21565c2284
* fixed Mov2Movz optimization
...
git-svn-id: trunk@44161 -
2020-02-12 19:26:52 +00:00
florian
c6350e2903
* patch by J. Gareth Moreton: processor-aware MOVZX optimisation cleanup, part one of #36687
...
git-svn-id: trunk@44153 -
2020-02-11 20:56:20 +00:00
florian
e7d2c93ca7
* patch by J. Gareth Moreton: deadstore removal improvement, resolves #36669
...
git-svn-id: trunk@44147 -
2020-02-10 20:48:45 +00:00
florian
12d015a935
* patch by J. Gareth Moreton: CMOV extensions: frame/stack pointer relative references are always valid, resolves #36675
...
git-svn-id: trunk@44141 -
2020-02-09 17:39:50 +00:00
florian
bbcbd4eae1
* patch by J. Gareth Moreton, avoid illegal MovAdd2Lea and MovSub2Lea optimziations, resolves #36630
...
git-svn-id: trunk@44101 -
2020-02-02 19:49:47 +00:00
florian
2ea35e55b1
* patch by J. Gareth Moreton: x86 "OptPass1MOV" improvements - Part 2, resolves #36608
...
git-svn-id: trunk@44086 -
2020-02-01 21:31:56 +00:00
florian
43c83b3ae6
* improve LeaLea2Lea optimization
...
git-svn-id: trunk@44058 -
2020-01-29 21:35:26 +00:00
yury
1b3a3a7983
* Removed lot of unused local vars. It is useful to turn on the notes in options. :)
...
git-svn-id: trunk@44053 -
2020-01-28 18:45:33 +00:00
florian
993144b91b
* patch by J. Gareth Moreton: x86 SUB and LEA optimisations, resolves #36622
...
git-svn-id: trunk@44030 -
2020-01-24 21:10:17 +00:00
florian
a807e18591
* patch by J. Gareth Moreton: x86 CMP/TEST/Jcc optimisations, resolves #36624
...
git-svn-id: trunk@44029 -
2020-01-24 20:41:11 +00:00
florian
16152cf948
* patch by J. Gareth Moreton: get rid of another pass through the assembler list by integrating OptReferences
...
into the post optimizer pass
git-svn-id: trunk@44001 -
2020-01-19 20:11:05 +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
5a1e6c2e91
* compilation on i386 fixed
...
git-svn-id: trunk@43920 -
2020-01-12 12:00:44 +00:00
florian
2b70c64d09
* patch by J. Gareth Moreton: Some cleaning up of OptPass2JMP and OptPass2MOV, resolves #36553
...
git-svn-id: trunk@43919 -
2020-01-12 10:33:21 +00:00
florian
124c64152d
* patch by J. Gareth Moreton: EAX -> EDX:EAX sign extension shortcuts, and MOVSX shortcuts for AX register, part 2 of #36551
...
git-svn-id: trunk@43918 -
2020-01-12 09:20:01 +00:00
florian
236c11ef71
* patch by J. Gareth Moreton: EAX -> EDX:EAX sign extension shortcuts, and MOVSX shortcuts for AX register, part 1 of #36551
...
git-svn-id: trunk@43917 -
2020-01-12 09:20:00 +00:00
florian
11287f018f
* explicitly emit a sub instruction in tx86inlinenode.second_high, resolves #36530
...
git-svn-id: trunk@43888 -
2020-01-07 21:46:07 +00:00
florian
3dd6a8e24e
* add forgotten exits, fixes r43874
...
git-svn-id: trunk@43877 -
2020-01-06 19:53:43 +00:00
florian
92671c9b85
o patch by J. Gareth Moreton:
...
* applies some optimisations to OptPass1MOV. Repeated checks to the "GetNextInstruction_p Boolean"
variable are factored out, since all of the optimisations bar the first one require a
succeeding instruction.
git-svn-id: trunk@43875 -
2020-01-06 17:05:48 +00:00
florian
9b68c7a5f5
* fix X86AsmOptimizer.RegModifiedByInstruction for VMOVSS/VMOVSD/IMUL
...
git-svn-id: trunk@43874 -
2020-01-06 17:05:47 +00:00
florian
fca4d3315b
* let the operation do the type conversion for x87 floating point operations
...
git-svn-id: trunk@43867 -
2020-01-05 17:47:23 +00:00
florian
76e7833a20
* avoid invalid type cast
...
git-svn-id: trunk@43865 -
2020-01-05 15:43:04 +00:00
florian
d3f3f81e16
* fixes TX86AsmOptimizer.OptPass1_V_MOVAP after r43855
...
git-svn-id: trunk@43864 -
2020-01-05 15:43:03 +00:00
florian
22cb46fca9
* cleanup
...
git-svn-id: trunk@43863 -
2020-01-05 15:43:02 +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
73c6cab096
+ MovMovMov2XChg optimization by J. Gareth Moreton
...
git-svn-id: trunk@43858 -
2020-01-04 14:24:28 +00:00
florian
3c16324f80
* x86: avoid to put variables into registers if they are handled by the x87-FPU
...
git-svn-id: trunk@43856 -
2020-01-03 22:23:49 +00:00
florian
7da6bac960
* look further forward in TX86AsmOptimizer.OptPass1_V_MOVAP
...
git-svn-id: trunk@43855 -
2020-01-03 22:23:07 +00:00
florian
451afd6e45
* triggered by #36505 , removed CmpJxxDecJmp2SubJcc optimization as it was wrong anyways
...
git-svn-id: trunk@43852 -
2020-01-03 19:15:12 +00:00