florian
|
c7290bfb78
* enclose {$define DEBUG_AOPTCPU} in {$ifdef EXTDEBUG}
|
5 months ago |
Karoly Balogh
|
e09304f671
m68k: do not try to optimize CMP #0,Ax to TST Ax, if the CPU doesn't support it
|
5 months ago |
Karoly Balogh
|
627734e104
m68k: try to fold two consecutive AND instructions into one. This usually happens when a zero extension is followed by another AND.
|
1 year ago |
Karoly Balogh
|
d9c786fee6
m68k: also allow TST from before Sxx instructions with explicit .b size to be optimized away
|
1 year ago |
Karoly Balogh
|
88ffc9e228
m68k: refactored the optimizer to avoid direct asml management where possible, and use standard functions instead
|
1 year ago |
Karoly Balogh
|
020ca55e25
m68k: add more cases, where TST instructions can beoptimized away, because the previous instruction already sets all the required flags
|
1 year ago |
Karoly Balogh
|
6bbb10e64d
m68k: do not generate LEA instructions with explicitly specified size. only long is possible anyway.
|
2 years ago |
Károly Balogh
|
da1746426b
m68k: do not optimize away fmove fpureg0, intreg0; fmove intreg0; fpureg0; constructs, they're used for rounding to single on FPUs with no resultprecision encoding
|
4 years ago |
Károly Balogh
|
16a21eea87
m68k: the LEA+MOVEM to MOVEM optimization is not feasible on a ColdFire
|
4 years ago |
florian
|
0ab69ea0ad
+ m68k: LEA, MOVE(M) to MOVE(M) predecremented optimization and MOVE(M), LEA to MOVE(M) postincremented optimization
|
4 years ago |
florian
|
817ef6949a
* m68k: MOVE, TST, Jxx/Sxx to MOVE, Jxx optimization
|
4 years ago |
florian
|
bb8c3fd153
* made optimization JSR, RTS to JMP more bullet proof, added comment
|
4 years ago |
florian
|
a849e51a3c
+ m68k: JSR, RTS to JMP optimization
|
4 years ago |
Károly Balogh
|
fc5c35362b
m68k: preparations for upcoming full instruction tables, mostly converting code away from using sets of opcodes
|
5 years ago |
pierre
|
7d12e8cc6d
Avoid warnings for m68k compiler
|
5 years ago |
Károly Balogh
|
16fc8c8d9a
m68k: added some handling for the explicit precision FPU instructions in the spilling and optimizer. fixed a_fsabs and a_fdabs names
|
6 years ago |
Károly Balogh
|
36286441b2
m68k: try to optimize realconst operands into B/W/L sized integer operands. these are shorter to encode - which almost always means faster on m68k
|
6 years ago |
Károly Balogh
|
0ef47f6426
m68k: tabs 2 spaces, no functional changes
|
6 years ago |
Jonas Maebe
|
122d0d36d6
+ volatile() expression that marks an expression as volatile
|
6 years ago |
pierre
|
2761448f44
* Disable range check for m68k/aoptcpu unit
|
6 years ago |
pierre
|
96460b70b2
Remove another wrong typecast when testing that a tai is an instruction
|
6 years ago |
pierre
|
a015c779ff
Remove unneeded typecasts in TryTOptimizeMove
|
6 years ago |
Jonas Maebe
|
4686f61002
* keep track of the temp position separately from the offset in references,
|
7 years ago |
Károly Balogh
|
90b1c8e5ed
m68k: the previous attempt in r36480 broke more tests than it fixed, so lets revert to previous version and disable MOVE+OP+MOVE optimizations instead
|
8 years ago |
Károly Balogh
|
40fb45aef6
m68k: attempt to make MOVE+OP+MOVE optmization more robust. this fixes random exceptions in tfmtbcd test among others
|
8 years ago |
Jonas Maebe
|
a25ebbba3e
+ added volatility information to all memory references
|
8 years ago |
Károly Balogh
|
a595877da3
m68k: in fmove + op + fmove optimizations, allow the ops precision to be different to the fmoves
|
8 years ago |
Károly Balogh
|
98d4c426cb
m68k: some groundwork for an improved optimizer, now tries to optimize away MOVE/FMOVE based unnecessary register shuffling around ops when possible (with room for further improvements)
|
8 years ago |
Károly Balogh
|
41776e9608
m68k: on a '000, optimize CLR.L Dx to MOVEQ #0,Dx which is slightly faster
|
8 years ago |
Károly Balogh
|
424f329173
m68k: use inlined realconsts also during normal float calculations on '881/040/060. also optimize them where possible
|
9 years ago |