[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Mon Mar 15 15:40:14 CET 2010
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 10/03/15 15:40:14
Modified files:
cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3
Log message:
Do something cleaner when generating prologues.
In the interest of an optimization that saves an instruction
from many many (all?) functions, the original authors
often produce an epilogue by punching through abstraction
boundaries and using objfile.patch.
Worse, they sometimes do that, sometimes use equivalent
code that goes through the layers.
With this change, instead, we backup(5) and then use the
clearer version.
Unfortunately, if nothing else done, that leaves us trying to
fixup the branch that we wiped out (its use of the label
to the end of function. So compensate slightly in Codex86.m3.
This is trading one ugliness for another.
Perhaps something better can be found.
I had something that compared to last_exitbranch in codex86.m3
but that wasn't quite right and introduced e.g. one instruction
difference in RTHeapMap.m3.
More information about the M3commit
mailing list