[M3commit] CVS Update: cm3

Jay Krell jkrell at elego.de
Mon Mar 1 13:54:37 CET 2010


CVSROOT:	/usr/cvs
Changes by:	jkrell at birch.	10/03/01 13:54:37

Modified files:
	cm3/m3-sys/m3back/src/: Codex86.m3 

Log message:
	work in progress to inline all 64bit shifts (and then rotates)
	the 64bit shift code in particular in the AMD manual is around 6 instruction
	
	however before we do that:
	
	teach unOp about double shift (aka shift by ecx)
	not yet used, as these cases still call functions
	
	split up the double ops into separate functions for readability:
	not_double, add_double, add_double_immediate, etc.
	(not, negate, add, subtract, compare, immediate and not; bigger
	things like multiply/divide generate function calls at a higher level, currently;
	given that our complicated single precision divide was inlined, probably will
	inline that for double, probably multiple too; while the result is bloated,
	I like the idea of reducing hand.c, and longint use on 32bit targets
	maybe ok to bloat?)
	
	also goal to have less duplication of the various logic such
	as left vs. right vs. "signed" shift, the compares to 32, 64, etc.
	at least move the code into fewer functions
	
	also stretch goal is to alter/eliminate the binop/binop1/binopWithShiftCount split
	into something that seems less hoky. Part of the issue is that
	other than oNOT, and separate functions like swapOp, movOp, nothing is really
	"just loop over the parts"




More information about the M3commit mailing list