[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Sat Oct 16 14:12:02 CEST 2010
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 10/10/16 14:12:02
Modified files:
cm3/m3-sys/m3back/src/: Codex86.m3
Log message:
push one byte integers with 2 byte 0x6A instruction
instead of 5 byte 0x68 instruction
load one byte integers into registers with
2 byte push followed by 1 byte pop, instead of 5 byte move
(except for 0 which is xor and 1 which is xor/inc)
pessimize this and previous xor/inc for 1 to only handle 32 bit integers
(it'd work for 64bit as xor/xor/inc but we might
check for the overflow upon inc, conditional branch, etc.
(0 is still xor; a pair of xors is still better than
almost anything else; notice though that there are optimizations
based on knowing you are modifying two registers, where
one is computed from the other, such as via a mov or mov/inc)
More information about the M3commit
mailing list