<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
diff attached<BR><BR> <BR>> Date: Fri, 26 Feb 2010 13:48:34 +0000<BR>> To: m3commit@elegosoft.com<BR>> From: jkrell@elego.de<BR>> Subject: [M3commit] CVS Update: cm3<BR>> <BR>> CVSROOT: /usr/cvs<BR>> Changes by: jkrell@birch. 10/02/26 13:48:34<BR>> <BR>> Modified files:<BR>> cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 <BR>> M3x86Rep.i3 Stackx86.i3 Stackx86.m3 <BR>> Wrx86.i3 Wrx86.m3 m3makefile <BR>> cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 TIntN.i3 TIntN.m3 <BR>> TWordN.i3 TWordN.m3 Target.i3 <BR>> Target.m3 m3makefile <BR>> Removed files:<BR>> cm3/m3-sys/m3back/src/: M3BackInt.i3 M3BackInt.m3 M3BackWord.i3 <BR>> M3BackWord.m3 <BR>> <BR>> Log message:<BR>> introduce type Target.IntN which is Int plus a precision<BR>> just like the old Target.Int<BR>> (previously M3BackInt.Int)<BR>> <BR>> make TIntN and TWordN support it<BR>> they are just thin wrappers over TInt, TWord<BR>> previously named M3BackInt, M3BackWord<BR>> <BR>> add small amount of support to TInt:<BR>> SignExtend, SignedTruncate, ZeroExtend, UnsignedTruncate<BR>> These could, if desired, go into their only users: TIntN, TWordN.<BR>> (with the understanding that that Target.Int is "revealed" to them.)<BR>> <BR>> add maxN, minN fields to Target.Int_type, that are equal to max and min but have a precision<BR>> <BR>> NOTE: Don't worry Tony, the vast majority of m3middle, m3front, TInt, Tword are unchanged<BR>> This is "just" additions.<BR>> (Moving maintenance cost from m3back to m3middle, if that isn't a no-op.)<BR>> (Coming up with alternate names for M3BackInt, M3BackWord => TIntN, TWordN)<BR>> (A little unsatisfactory that N is bytes instead of bits.)<BR>> (What a fun little exercise that might be, changing Int to be array [0..63] of [0..1] :) )<BR>> <BR>> While at it, in TIntN, rename things slightly:<BR>> FromInt => FromHostInteger<BR>> ToInt => ToHostInteger<BR>> <BR>> "Int" is "Target.Int"<BR>> "HostInteger" is "INTEGER"<BR>> <BR>> again, TInt/TWord/m3front/m3middle not much affected.<BR>> <BR>> One fishy/uncertain thing in all of this, something to test out, is cross builds<BR>> that target NT386 from 64bit host. Is TIntN.ToHostInteger correct? Or do we<BR>> really need INTEGER to be 4 bytes throughout m3back?<BR>> (I know that mklib has little endian dependency.)<BR>> <BR>                                          </body>
</html>