Károly Balogh
fc5c35362b
m68k: preparations for upcoming full instruction tables, mostly converting code away from using sets of opcodes
...
git-svn-id: trunk@45307 -
2020-05-07 23:30:13 +00:00
pierre
7d12e8cc6d
Avoid warnings for m68k compiler
...
git-svn-id: trunk@43391 -
2019-11-05 10:00:48 +00:00
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
...
git-svn-id: trunk@42943 -
2019-09-08 09:21:17 +00:00
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
...
git-svn-id: trunk@42923 -
2019-09-05 19:32:57 +00:00
Károly Balogh
0ef47f6426
m68k: tabs 2 spaces, no functional changes
...
git-svn-id: trunk@42829 -
2019-08-26 13:08:39 +00:00
Jonas Maebe
122d0d36d6
+ volatile() expression that marks an expression as volatile
...
* disable matching volatile references in the assembler optimisers, so they
can't be removed (more conservative than needed, but better than removing
too many)
o the CSE optimiser will ignore them by default, because they're an unknown
inline node for it
* also removed no longer used fpc_in_move_x and fpc_in_fillchar_x inline node
identifiers from rtl/inc/innr.inc, and placed fpc_in_unaligned_x at the
right place
git-svn-id: trunk@40465 -
2018-12-04 19:53:20 +00:00
pierre
2761448f44
* Disable range check for m68k/aoptcpu unit
...
* Add missing change of var parameter p to next instruction
in TryToOptimizeMove method after instruction removal.
git-svn-id: trunk@40324 -
2018-11-16 10:27:42 +00:00
pierre
96460b70b2
Remove another wrong typecast when testing that a tai is an instruction
...
git-svn-id: trunk@40131 -
2018-11-01 07:01:02 +00:00
pierre
a015c779ff
Remove unneeded typecasts in TryTOptimizeMove
...
git-svn-id: trunk@40123 -
2018-10-31 23:19:39 +00:00
Jonas Maebe
4686f61002
* keep track of the temp position separately from the offset in references,
...
so that they can still be freed after the reference has been changed
(e.g. in case of array indexing or record field accesses) (mantis #33628 )
git-svn-id: trunk@38814 -
2018-04-22 17:03:16 +00:00
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
...
git-svn-id: trunk@36484 -
2017-06-11 11:22:49 +00:00
Károly Balogh
40fb45aef6
m68k: attempt to make MOVE+OP+MOVE optmization more robust. this fixes random exceptions in tfmtbcd test among others
...
git-svn-id: trunk@36480 -
2017-06-10 21:54:48 +00:00
Jonas Maebe
a25ebbba3e
+ added volatility information to all memory references
...
o separate information for reading and writing, because e.g. in a
try-block, only the writes to local variables and parameters are
volatile (they have to be committed immediately in case the next
instruction causes an exception)
o for now, only references to absolute memory addresses are marked
as volatile
o the volatily information is (should be) properly maintained throughout
all code generators for all archictures with this patch
o no optimizers or other compiler infrastructure uses the volatility
information yet
o this functionality is not (yet) exposed at the language level, it
is only for internal code generator use right now
git-svn-id: trunk@34996 -
2016-11-27 18:17:37 +00:00
Károly Balogh
a595877da3
m68k: in fmove + op + fmove optimizations, allow the ops precision to be different to the fmoves
...
git-svn-id: trunk@34985 -
2016-11-27 15:17:58 +00:00
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)
...
git-svn-id: trunk@34979 -
2016-11-27 11:23:11 +00:00
Károly Balogh
41776e9608
m68k: on a '000, optimize CLR.L Dx to MOVEQ #0,Dx which is slightly faster
...
git-svn-id: trunk@34760 -
2016-10-23 23:10:39 +00:00
Károly Balogh
424f329173
m68k: use inlined realconsts also during normal float calculations on '881/040/060. also optimize them where possible
...
git-svn-id: trunk@33671 -
2016-05-10 18:19:41 +00:00
Károly Balogh
2dbfca4e8e
m68k: optimize a few cases of comparisons against inlined realconsts
...
git-svn-id: trunk@33669 -
2016-05-10 15:39:08 +00:00
Károly Balogh
2b3bd71735
m68k: include CMPI in the CMP to TST optimization
...
git-svn-id: trunk@32842 -
2016-01-04 01:14:34 +00:00
Károly Balogh
b617345e43
m68k: disabled premature MOVEA #0,Ax to SUBA Ax,Ax in the CG, because it breaks with spilling temp replacement and moved it to the optimizer, where it belongs. this fixes some code with potentially heavy address register pressure, like the IDE.
...
git-svn-id: trunk@30245 -
2015-03-16 02:04:58 +00:00
Károly Balogh
05d38053f7
m68k: optimize a few more trivial cases
...
git-svn-id: trunk@29606 -
2015-02-02 08:52:19 +00:00
Károly Balogh
df7af34de9
m68k: very early optimizer implementation experiments
...
git-svn-id: trunk@27862 -
2014-06-06 07:38:50 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
carl
654ddac250
+ m68k problems with cvs fixed?()!
2002-08-13 18:58:54 +00:00
carl
c68b2dfbee
* rename swatoperands to swapoperands
...
+ m68k first compilable version (still needs a lot of testing):
assembler generator, system information , inline
assembler reader.
2002-08-13 18:01:50 +00:00