[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