[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