Hi,
 I am now passing all but two of the regression tests using my JIT port. One is 
strange that I haven't fully diagnosed with appdomain-unload (the page containing one 
of the compiled methods seems to get freed); the other is relates to single floating 
point numbers.

The way I handle single floats is:
1. When loaded from storage I immediately convert them to double so that all 
operations work correctly
2. Before storing back to memory I convert them from double to single and then store
3. When passing in a call I convert from double to single
4. When coming back from a function call I convert from single to double

This appears to work most of the time, but sometimes I get sequences like:

(stind.r4 (add (ldind.ref regoffset[0xd0(s390_r11)]) iconst[8]) (float_conv_to_r4 
(ldind.r8 regoffset[0xc8(s390_r11)])))

In this instance float_conv_to_r4 will convert from double to single and then stind.4 
will try to convert from double to single as well: resulting in junk. How do other 
architectures handle single floats? 

BTW, on 2.4 systems the thread-related tests sometimes work and sometimes don't. On 
2.6 things work all the time.

Neale Ferguson 

P.S. My notes to the list appear to go via a moderator and are not being posted 
directly.
_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to