florian
|
2f1989c1a6
* hp1 can have any condition in this case so don't access hp1.condition because it
|
13 years ago |
masta
|
d8af83d252
Introduce a version of MatchInstruction for multiple instructions
|
13 years ago |
florian
|
6b73bc45c5
* check constant for being a valid offset
|
13 years ago |
florian
|
58a85e79ce
* set index register correctly * index register might not be changed
|
13 years ago |
florian
|
245d8286d5
+ LookForPostindexedPattern
|
13 years ago |
masta
|
012da673a8
Use MatchInstruction in OpCmp2OpS
|
13 years ago |
florian
|
a016bc5ced
* white space change
|
13 years ago |
florian
|
f2ccd6e400
* when doing the AddSubLdr2Ldr optimization check also if the source register of the add is modified before the load
|
13 years ago |
florian
|
4e2de05667
* don't apply the AddSubLdr2Ldr optimization if the base register in the reference is used/modified during the ldr/str
|
13 years ago |
florian
|
d89b742109
* apply Add/SubLdr2Ldr only if no condition flags are involved
|
13 years ago |
florian
|
73d540e7b5
* unsigned byte ldr/str allow also an offset of max. +/-4095
|
13 years ago |
florian
|
9d20a73986
* optimize also str/ldrb/h/d
|
13 years ago |
florian
|
1b3e03d72d
+ DEBUG_AOPTCPU to turn off peephole optimizer messages
|
13 years ago |
florian
|
8a20ccc5f9
+ Add/SubLdr2Ldr optimization
|
13 years ago |
masta
|
b9fa9da629
Small fixes to OpCmp2OpS
|
13 years ago |
florian
|
3ad32b6e4e
* opcode spelling fixed
|
13 years ago |
florian
|
935985d0c0
* checked and updated valid opcode for OpCmp2OpS optimization
|
13 years ago |
florian
|
70009e8ed1
* move flag allocation item
|
13 years ago |
florian
|
2d2c66467c
+ optimize op ... / cmp .... when possible
|
13 years ago |
florian
|
a92ca7c456
* adjust the reg. allocations of the target register in RemoveSuperfluousMove
|
13 years ago |
florian
|
3d7b603d11
* get rid or move the allocation of the replaced register if possible
|
13 years ago |
florian
|
77e579f59f
* RemoveSuperfluousMove uses FindRegDeAlloc to find out if the register used in the move can be removed
|
13 years ago |
florian
|
5fd457e586
* when determining of a register is used after an instruction, new allocs should not be taken into account
|
13 years ago |
florian
|
c0425c48fd
* make use of GetNextInstructionUsingReg
|
13 years ago |
florian
|
f3f5be2af1
* RemoveSuperfluousMove should not mess with moves targetting lr or pc
|
13 years ago |
florian
|
93eb20d407
+ GetNextInstructionUsingReg
|
13 years ago |
florian
|
2a14394cf5
* cleaned up scheduler code, created own scheduler class to avoid unneeded passes through the assembler
|
13 years ago |
florian
|
a3bf956c33
* improved main loop of TCpuPreRegallocScheduler.PeepHoleOptPass1Cpu
|
13 years ago |
florian
|
54e2b40ab4
* revert the parameter type change of the last commit, it was an overleft from a failed fix attempt
|
13 years ago |
florian
|
45eafd3e65
* fix MovMov optimization if the second mov is a mov rX,rX
|
13 years ago |