<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Another problem now is that 64bit rotate of constants doesn't get the type size correct.<BR>
Anyway I'm trying to get things back to working by bringing in the old code, only in m3back, and then can find the actual problems..<BR>
I agree it is simpler now that TInt/TWord have a fixed precision of exactly 64 bits. Maybe make it even larger, say 72 bytes, a) to fix that warning a different way b) to sort of get better testing?<BR>
 <BR>
 - Jay<BR><BR> <BR>
<HR id=stopSpelling>
From: jay.krell@cornell.edu<BR>To: jkrell@elego.de; m3commit@elegosoft.com<BR>Date: Thu, 18 Feb 2010 08:09:30 +0000<BR>Subject: Re: [M3commit] CVS Update: cm3<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
Tony there are multiple related problems here.<BR> <BR>1) The front end likes to output values between 128 and 256 with type Int8 instead of Word8.<BR>  e.g. in InitTypecell.<BR>  And maybe similar for 16/32/64, I don't know.<BR> <BR>2) Even if the front end used the correct Word8 for them, m3back needs to use TWord.ToBytes vs. TInt.ToBytes for unsigned types, but TWord.ToBytes doesn't exist.<BR> <BR>I'll see what I can do.<BR>I'll probably add TWord.ToBytes and if the value fits using it, accept it.<BR> <BR> - Jay<BR><BR>> Date: Thu, 18 Feb 2010 08:30:35 +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/18 08:30:35<BR>> <BR>> Modified files:<BR>> cm3/m3-sys/m3back/src/: M3x86.m3 <BR>> <BR>> Log message:<BR>> more information when this assertion fails, as it now does:<BR>> <BR>> == package C:\dev2\cm3.2\m3-libs\m3core ==<BR>> <BR>> +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 -DCM3_VERSION_TEXT=d5.8.2<BR>> <BR>> new source -> compiling RTHooks.i3<BR>> "..\src\runtime\common\RTHooks.i3", line 15: len:2 t:Int.8 CG_Bytes[t]:1 158<BR>> <BR>> ***<BR>> *** runtime error:<BR>> *** <*ASSERT*> failed.<BR>> *** file "..\src\M3x86.m3", line 1114<BR>> ***<BR>> <BR>> Stack trace:<BR>> FP PC Procedure<BR>> --------- --------- -------------------------------<BR>> 0x12f5cc 0x43c230 init_int + 0x488 in ..\src\M3x86.m3<BR>> 0x12f5f8 0x63f506 init_int + 0xa5 in ..\src\M3CG_Check.m3<BR>> 0x12f638 0x4fe1ce Init_int + 0x1be in ..\src\misc\CG.m3<BR>> 0x12f65c 0x4fe33e DumpInt + 0x34 in ..\src\misc\CG.m3<BR>> 0x12f6a4 0x4fc86a DumpPendingNodes + 0x2c2 in ..\src\misc\CG.m3<BR>> 0x12f6cc 0x4fa4c6 Bind_segment + 0xe0 in ..\src\misc\CG.m3<BR>> 0x12f72c 0x4c71e8 GenLinkerInfo + 0x7d7 in ..\src\values\Module.m3<BR>> 0x12f770 0x4c577c CompileInterface + 0x30a in ..\src\values\Module.m3<BR>> 0x12f7a8 0x4c5252 Compile + 0x24d in ..\src\values\Module.m3<BR>> 0x12f804 0x4aff65 DoCompile + 0x7cd in ..\src\misc\M3Front.m3<BR>> <BR>> confusion here about signed vs. unsigned integers;<BR>> the signed number 158 requires 2 bytes but the unsigned number 158<BR>> only requirs 1 byte<BR>> <BR><BR>                                         </body>
</html>