<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>PM3 has it wrong too.<BR>
<BR>
<A href="http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/pm3/m3/pm3/language/modula3/m3compiler/m3front/src/misc/CG.m3?rev=1.4;content-type=text%2Fplain">http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/pm3/m3/pm3/language/modula3/m3compiler/m3front/src/misc/CG.m3?rev=1.4;content-type=text%2Fplain</A><BR><BR><BR>PROCEDURE Set_compare (s: Size; op: Cmp) =<BR> BEGIN<BR> IF Force_pair (commute := TRUE) THEN<BR> op := M3CG.SwappedCompare [op];<BR> END;<BR> IF (s <= Target.Integer.size)<BR> THEN cg.compare (Target.Word.cg_type, Target.Integer.cg_type, op);<BR> ELSE cg.<FONT face="">set_compare</FONT> (AsBytes (s), op, Target.Integer.cg_type);<BR> END;<BR> SPop (2, "Set_eq");<BR> SPush (Type.Int32);<BR> END Set_compare;<BR><BR>
<BR>
I didn't run it and look at the generate code, but this is the same as cm3 had and it just generated <,<=,>,>= for integers.<BR>
<BR>
Anyway, I checked in a fix for it.<BR>
<BR>
- Jay<BR>
<BR> <BR>
<HR id=stopSpelling>
<BR>
> Date: Tue, 15 Apr 2008 07:09:19 -0400<BR>> From: hendrik@topoi.pooq.com<BR>> To: m3devel@elegosoft.com<BR>> Subject: Re: [M3devel] small set comparisons understood, now just to understand the front end code..<BR>> <BR>> On Mon, Apr 14, 2008 at 07:03:00PM +0000, Jay wrote:<BR>> <BR>> > Should also 1) check the history; I suspect it never worked 2) as a stopgap if really desparate can probably omit the optimization and just use the functions but that's lame.. well, for < and >, the inline code might be kind of large actually.. could write helpers just for int-sized sets...<BR>> <BR>> You might compare the cm3 code with the pm3 code. I think I may have <BR>> used it on pm3 long ago without mishap.<BR>> <BR>> -- hendrik<BR><BR></body>
</html>