<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi, <br>
<br>
I successfully compiled and installed Mono (2.6.1+patch for Sparc
from <a class="moz-txt-link-freetext"
 href="https://bugzilla.novell.com/show_bug.cgi?id=566298">https://bugzilla.novell.com/show_bug.cgi?id=566298</a>
configured with --disable-parallel-mark) on my SPARC/Linux
box, but I am in trouble with ilasm. When trying to assemble the
following simple file:<br>
<blockquote><font color="#660000"><tt>.method private static void 'foo'
() cil managed</tt><br>
  <tt>{</tt><br>
  <tt>    ldc.r8  float64(0x41dfffffffc00000)    /* 2.147483647e+9 */</tt><br>
  <tt>    pop</tt><br>
  <tt>    ret</tt><br>
  <tt>}</tt></font><br>
</blockquote>
it says:<br>
<blockquote><font color="#660000"><tt>$ ilasm /dll /output:foo.o foo.s<br>
Assembling 'foo.s' , no listing file, to dll --&gt; 'foo.o'<br>
  <br>
foo.s (3, 37):<br>
Unhandled Exception: System.ArgumentException: Destination array is not
long enough to copy all the items in the collection. Check array index
and length.<br>
  at System.BitConverter.PutBytes (System.Byte* dst, System.Byte[] src,
Int32 start_index, Int32 count) [0x00000] in &lt;filename unknown&gt;:0<br>
  at System.BitConverter.ToDouble (System.Byte[] value, Int32
startIndex) [0x00000] in &lt;filename unknown&gt;:0<br>
  at Mono.ILASM.ILParser.yyparse (yyInput yyLex) [0x00000] in
&lt;filename unknown&gt;:0<br>
  at Mono.ILASM.ILParser.yyparse (yyInput yyLex, System.Object yyd)
[0x00000] in &lt;filename unknown&gt;:0<br>
  at Mono.ILASM.Driver+DriverMain.ProcessFile (System.String file_path)
[0x00000] in &lt;filename unknown&gt;:0</tt></font><br>
</blockquote>
It seems that SystemToDouble() does not manage to convert the constant
because its byte[] parameter is not long enough (should be 8, but ...?).<br>
I suspect something's wrong in ilasm build (perhaps jay?), but I don't
know
what.<br>
Note that I need a 32-bit build, even if the SPARC processor is 64 bit;
but I think it is the default behavior...<br>
Also, ilasm accepts "ldc.r8 2147483647", but my CIL assembly code is
generated (from C code by gcc4cli) and I would prefer not modifying it
(I don't know if I would be authorized to do so).<br>
<br>
Thanks in advance for any help,<br>
<pre class="moz-signature" cols="72">Thierry Lafage.
</pre>
<br>
</body>
</html>