[M3commit] CVS Update: cm3

Jay Krell jkrell at elego.de
Thu Feb 25 14:06:40 CET 2010


CVSROOT:	/usr/cvs
Changes by:	jkrell at birch.	10/02/25 14:06:40

Modified files:
	cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3BackInt.i3 
	                        M3BackInt.m3 M3x86.m3 M3x86Rep.i3 
	                        Stackx86.i3 Stackx86.m3 Wrx86.i3 
	                        Wrx86.m3 m3makefile 
	cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 TWord.i3 TWord.m3 
Removed files:
	cm3/m3-sys/m3back/src/: M3BackWord.i3 M3BackWord.m3 

Log message:
	eliminate M3BackWord
	
	drastically reduce M3BackInt to just:
	FromInt
	ToInt
	FromTargetInt
	ToDiagnosticText
	which can probably all go into TInt as something like
	FromIntAndChop
	ChopAndToInt
	CopyAndChop
	ToTextVerbose
	or somesuch, or caller synthesize
	
	add TInt.NE, GT, GE, Abs, Negate
	TWord.GE, GT
	
	which make for a smoother transition for m3back, even if the caller
	can inline them
	
	change TInt.EQ and NE to use structural (infix) comparison
	
	move the constants all to TInt to reduce abstraction boundary violations:
	Three, Four, Eight
	ThirtyOne, ThirtyTwo,
	SixtyThree,
	F3FF
	x0400, x0800, x0F00,
	MaxU8 -- changed to Target.Word8.max
	MThirtyOne, MSixtyThree
	
	perhaps not the best choice.
	At least 31, 32, 63, 64, -31, -63, maxu8 aren't super target-dependent.
	Some of the others are encodings for x87 status flags for example.
	Converting from strings is another not bad idea.
	
	The only abstraction boundary violation remaining now is the avoidance of ToBytes in init_int
	where the bytes are passed directly to m3objfile.AppendBytes
	This should perhaps be revisited.
	Granted, inconsistency with regard to where I violate the boundary.
	I have to look into ToBytes again.




More information about the M3commit mailing list