Pierre Muller
|
71df6b83c6
|
Avoidd to use hp1 after calling RemoveInstruction, as the VMT is invalidated
|
2022-11-11 22:20:17 +00:00 |
|
Sven/Sarah Barth
|
a2789d611f
|
* fix crash in debug output in TX86AsmOptimizer.DoArithCombineOpt for DEC/INC $reg
|
2022-11-07 23:35:23 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
236febb148
|
* x86: Fixed bugs in and refactored and renamed
DoSubAddOpt optimisation method
|
2022-11-06 21:01:58 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
dbd8259c48
|
* x86: Fixed mistake in var9 optimisation under -Os; "andl $255,%eax" is not
smaller than "movzbl %al,%eax" because the immediate is sign-extended,
not zero-extended, so $255 will be stored as a 32-bit value.
|
2022-10-31 18:40:23 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
3ba9cf5b4f
|
* x86: PostPeepholeOptTestOr has different debug messages for each found instruction, and also tests for BEXTR and BZHI.
|
2022-10-30 16:16:56 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
a7d1f7d771
|
* x86: FuncMov2Func now has code to remove "mov %reg,%reg" (since it doesn't get removed in Pass 2).
|
2022-10-30 16:06:01 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
3d805b8a9a
|
* x86: FuncMov2Func moved to separate method and also called by OptPass2MOV.
|
2022-10-30 16:06:01 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
d35be8a9ea
|
* x86: Extended FuncMov2Func optimisation to handle 1, 3 and 4-operand functions
|
2022-10-30 16:06:01 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
9fc2b9062d
|
* x86: Updated Mov0LblCmp0Jne optimisation to work when alignment hints appear before the label
|
2022-10-30 15:58:43 +00:00 |
|
florian
|
a1064ad8fd
|
+ MovSubCmp2MovSub optimization
|
2022-10-30 16:58:09 +01:00 |
|
florian
|
c75bb80b14
|
* more debug messages
* better exit codes for test
|
2022-10-26 23:20:18 +02:00 |
|
florian
|
86547d35d7
|
+ apply OpTest/Or2Op optimization to ANDN as well
+ DebugMsg for OpTest/Or2Op added
|
2022-10-23 22:10:35 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
567244007e
|
* x86: Improvement to bug fix so an optimisation can still be made even if the other register is in use
|
2022-10-22 13:07:16 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
41b8f6a42e
|
* x86: Bug fix where improved AddMov2Mov optimisation didn't
check to see if the other register was modified in between
|
2022-10-22 13:07:16 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
45b1d592f5
|
* x86: Bug fix where "mov $0,%reg" was inserted on the wrong side of a SETcc instruction
|
2022-10-18 20:47:42 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
27aa4d4e34
|
* x86: ConvertJumpToRET now sets the condition to C_None
|
2022-10-18 20:47:42 +00:00 |
|
florian
|
9375257365
|
* look ahead for ShlOp2Op optimization
|
2022-09-25 20:43:57 +02:00 |
|
florian
|
1a66cde35b
|
* apply ShlOp2Shl optimization also to floating point operations
|
2022-09-24 22:48:41 +02:00 |
|
J. Gareth "Kit" Moreton
|
5a6d9ff532
|
x86: Deeper insight in OptPass2ADD and OptPass2SUB to produce more efficient code
|
2022-09-18 19:02:24 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
e7218d09fb
|
* x86: New MovShr/Sar2Movx optimisation
|
2022-09-18 14:06:18 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b872322678
|
* x86: New "shr %cl; shr x" swap optimisation
|
2022-09-16 16:57:55 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
6757bf3832
|
* x86: New SHR-based optimisations
|
2022-09-16 16:57:55 +00:00 |
|
florian
|
44dca29926
|
+ some debug messages added
* cosmetics
|
2022-08-16 20:26:24 +02:00 |
|
florian
|
85230758e4
|
* improved FstpFld2<Nop> optimization
|
2022-08-15 23:17:16 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
bb4d3fda25
|
* Fixed internal error number clash (2021102610)
|
2022-08-15 20:42:18 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
aff2a42431
|
* x86: Shrink TEST instruction on MovAndTest2Test
where possible.
|
2022-08-05 20:06:18 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
d7f1e56191
|
* x86: MovAndTest2Test optimisation now accepts a smaller sub-regiser on the TEST instruction
|
2022-08-05 20:06:18 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
89605f47c2
|
* x86: Correct fileinfo for PostPeepholeOptCall
|
2022-08-02 20:52:27 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f7dcb68c5a
|
* x86: Correct fileinfo for OptPass2MOV
|
2022-08-02 20:52:27 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
6eede0f71f
|
* x86: Correct fileinfo and some refactoring for OptPass1CMP
|
2022-08-02 20:52:27 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
e9b394a550
|
* x86: Correct fileinfo and some refactoring for OptPass1SHLSAL
|
2022-08-02 20:52:27 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
0c62ac9f16
|
* x86: Correct fileinfo and some refactoring for OptPass1LEA
|
2022-08-02 20:52:27 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f19b390c68
|
* x86: Correct fileinfo and some refactoring for imul2leashl optimisation
|
2022-08-02 20:52:27 +00:00 |
|
florian
|
899981f318
|
+ forgotten comments for new optimizations
|
2022-07-31 22:10:00 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
f5d76c5593
|
* x86: Reference count fix in CMP/Jcc and TEST/Jcc redirect optimisations
|
2022-07-31 19:45:23 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b1e65ca49f
|
* x86: Fixed bug where redirected jump has its condition changed (fixes i39851)
|
2022-07-31 19:45:23 +00:00 |
|
florian
|
77e350b6b8
|
+ VPXor2VPXor optimization
|
2022-07-30 22:09:59 +02:00 |
|
florian
|
d2c2ddb337
|
+ VPXorVMov2Mov optimization
|
2022-07-28 22:42:42 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
6c065e69fd
|
* x86: Corrected some incorrect uses of RemoveCurrentP in OptPass1_V_MOVAP.
|
2022-07-28 03:32:38 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
0e9ea11859
|
* x86: Bug fix where a tai type was assumed and could sometimes trigger an invalid typecast under -CriotR
|
2022-07-26 19:57:27 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
fcae0e311d
|
x86: Direct assignment instructions are no longer checked prior to calling CheckJumpMovTransferOpt, instead relying on the callee to do the heavy lifting (also fixed -Os bug)
|
2022-07-24 20:15:08 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
3e94af163b
|
* x86: Fixed bug in "Mov0LblCmp0Je -> Mov0JmpLblCmp0Je" optimisation
where the reference count was increased twice.
|
2022-07-23 12:58:20 +00:00 |
|
florian
|
578ce51fc3
|
* fix broken merge
|
2022-05-10 22:38:19 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
f4e28ab357
|
* x86: Fixes to GetInt/MMRegisterBetween assignments
|
2022-05-07 20:54:40 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
62d5ddffb8
|
* x86: Improvement to CMP/JE/CMP/@Lbl/SETE ->
CMP/SETE/CMP/SETE/OR optimisation to reduce
pass counts (and work better with improved
FLAGS register allocation).
|
2022-04-27 20:46:32 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
1fd2d3a83d
|
* x86: Improved TrySwapMovCmp to insert before
the FLAGS register is allocated.
|
2022-04-27 20:46:32 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f62ffa74dc
|
* x86: Changed the names of temporary register
stores in OptPass1MOV for reasons of clarity,
and other minor optimisations.
|
2022-04-24 16:42:35 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
627fb9a25b
|
* x86: New jump/label tracking in CrossJump optimisations
|
2022-04-24 16:42:35 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
92a0640bcc
|
* Local speedup in OptPass1LEA that avoids expensive calls if p and
hp1 are adjacent.
|
2022-04-06 19:56:24 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
305e49c0b8
|
* Some streamlining in x86's OptPass1LEA routine now that the stack
pointer is properly tracked, which also permits some deeper
optimisations on -O1 and -O2 virtually for free.
|
2022-04-06 19:56:24 +00:00 |
|