<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div><font face="Calibri, sans-serif">M3CG_Binary.Op currently represents</font></div><div><font face="Calibri, sans-serif">what we write to ".mc" files for the gcc</font></div><div><font face="Calibri, sans-serif">backend to read in. This is very very close</font></div><div><font face="Calibri, sans-serif">to what you'd want to fully represent M3CG.T.</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">It missing an operation that takes a function pointer -- can't</font></div><div><font face="Calibri, sans-serif">be stored in a file. It is missing operations that get converted</font></div><div><font face="Calibri, sans-serif">to different operations by M3CG_Wr. There is no real</font></div><div><font face="Calibri, sans-serif">value in the transform but it doesn't hurt either.</font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">I'd like to add the missing operations.</font></div><div><font face="Calibri, sans-serif">It seems like a very sensible reasonable change to me.</font></div><div><br></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif"><br></font></div><div><font face="Calibri, sans-serif">===================================================================</font></div><div><font face="Calibri, sans-serif">RCS file: /usr/cvs/cm3/m3-sys/m3middle/src/M3CG_BinRd.m3,v</font></div><div><font face="Calibri, sans-serif">retrieving revision 1.19</font></div><div><font face="Calibri, sans-serif">diff -u -r1.19 M3CG_BinRd.m3</font></div><div><font face="Calibri, sans-serif">--- M3CG_BinRd.m3<span class="Apple-tab-span" style="white-space:pre"> </span>4 Sep 2012 14:29:54 -0000<span class="Apple-tab-span" style="white-space:pre">   </span>1.19</font></div><div><font face="Calibri, sans-serif">+++ M3CG_BinRd.m3<span class="Apple-tab-span" style="white-space:pre">  </span>10 Oct 2012 04:04:19 -0000</font></div><div><font face="Calibri, sans-serif">@@ -37,7 +37,7 @@</font></div><div><font face="Calibri, sans-serif">   END;</font></div><div><font face="Calibri, sans-serif"> </font></div><div><font face="Calibri, sans-serif"> CONST</font></div><div><font face="Calibri, sans-serif">-  CmdMap = ARRAY Bop OF Cmd {</font></div><div><font face="Calibri, sans-serif">+  CmdMap = ARRAY [Bop.begin_unit..Bop.fetch_and_xor] OF Cmd {</font></div><div><font face="Calibri, sans-serif">     Cmd {Bop.begin_unit, begin_unit},</font></div><div><font face="Calibri, sans-serif">     Cmd {Bop.end_unit, end_unit},</font></div><div><font face="Calibri, sans-serif">     Cmd {Bop.import_unit, import_unit},</font></div><div><font face="Calibri, sans-serif">Index: M3CG_Binary.i3</font></div><div><font face="Calibri, sans-serif">===================================================================</font></div><div><font face="Calibri, sans-serif">RCS file: /usr/cvs/cm3/m3-sys/m3middle/src/M3CG_Binary.i3,v</font></div><div><font face="Calibri, sans-serif">retrieving revision 1.6</font></div><div><font face="Calibri, sans-serif">diff -u -r1.6 M3CG_Binary.i3</font></div><div><font face="Calibri, sans-serif">--- M3CG_Binary.i3<span class="Apple-tab-span" style="white-space:pre"> </span>1 Nov 2010 09:59:44 -0000<span class="Apple-tab-span" style="white-space:pre">   </span>1.6</font></div><div><font face="Calibri, sans-serif">+++ M3CG_Binary.i3<span class="Apple-tab-span" style="white-space:pre">  </span>10 Oct 2012 04:04:19 -0000</font></div><div><font face="Calibri, sans-serif">@@ -38,7 +38,17 @@</font></div><div><font face="Calibri, sans-serif">     call_indirect, pop_param, pop_struct, pop_static_link,</font></div><div><font face="Calibri, sans-serif">     load_procedure, load_static_link, comment,</font></div><div><font face="Calibri, sans-serif">     store_ordered, load_ordered, exchange, compare_exchange, fence,</font></div><div><font face="Calibri, sans-serif">-    fetch_and_add, fetch_and_sub, fetch_and_or, fetch_and_and, fetch_and_xor</font></div><div><font face="Calibri, sans-serif">+    fetch_and_add, fetch_and_sub, fetch_and_or, fetch_and_and, fetch_and_xor,</font></div><div><font face="Calibri, sans-serif">+</font></div><div><font face="Calibri, sans-serif">+    (* These only occur in memory, not in files.</font></div><div><font face="Calibri, sans-serif">+       Conversely, what they are converted to only occur in files,</font></div><div><font face="Calibri, sans-serif">+       not in memory. *)</font></div><div><font face="Calibri, sans-serif">+    set_error_handler,  (* disk: contains a pointer, silently skipped *)</font></div><div><font face="Calibri, sans-serif">+    compare             (* converted to eq/ne/etc. *)</font></div><div><font face="Calibri, sans-serif">+    cvt_int,            (* converted to trunc/ceiling/etc. *)</font></div><div><font face="Calibri, sans-serif">+    fetch_and_op,       (* converted to fetch_and_add/fetch_and_sub/etc. *)</font></div><div><font face="Calibri, sans-serif">+    if_compare,         (* converted to if_eq/if_ne/etc. *)</font></div><div><font face="Calibri, sans-serif">+    set_compare,        (* converted to set_eq/set_ne/etc. *)</font></div><div><font face="Calibri, sans-serif">   };</font></div><div style="font-family: Calibri, sans-serif; font-size: 12pt; "><br></div><br>                                    </div></body>
</html>