[M3devel] scan_float

Jay jay.krell at cornell.edu
Thu Feb 26 01:07:24 CET 2009


Yes.

 


From: hosking at cs.purdue.edu
To: jay.krell at cornell.edu
Date: Thu, 26 Feb 2009 10:07:35 +1100
CC: m3devel at elegosoft.com
Subject: Re: [M3devel] scan_float




I think you wrote the most recent version of that code.  Can you take a look?


On 26 Feb 2009, at 04:30, Jay wrote:

Hm, scan_float is probably wrong, when crossing that changes endianness.
PA is big endian.
Crossing from little endian Cygwin, in TimePosix.ms I have:
 
L$C0003:
 .word 0
 .word 1093567616

TimePosix__FromUtime
 .PROC
 .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
 .ENTRY
 copy %r3,%r1
 copy %r30,%r3
 stwm %r1,64(%r30)
 stw %r3,-4(%r30)
 stw %r19,-32(%r30)
 stw %r26,-36(%r3)
L$M0009:
 ldw -36(%r3),%r28
 fldws 0(%r28),%fr22L
 fcnvxf,sgl,dbl %fr22L,%fr24
 ldw -36(%r3),%r28
 ldo 4(%r28),%r28
 fldws 0(%r28),%fr22L
 fcnvxf,sgl,dbl %fr22L,%fr23
 addil LT'L$C0003,%r19
 ldw RT'L$C0003(%r1),%r28
 fldds 0(%r28),%fr22
 fdiv,dbl %fr23,%fr22,%fr22
 fadd,dbl %fr24,%fr22,%fr22

 
and Utime_M3 hangs.
 
 
Yet it I write the equivalent C code on the target system I get:
 
 
L$C0000:
        .word   1093567616
        .word   0
        .SPACE $TEXT$
        .NSUBSPA $CODE$
        .align 4
        .EXPORT FromUtime,ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=FU
FromUtime:
        .PROC
        .CALLINFO FRAME=0,NO_CALLS
        .ENTRY
        fldws 4(%r26),%fr22L
        fcnvxf,sgl,dbl %fr22L,%fr4
        ldil LR'L$C0000,%r28
        fldws 0(%r26),%fr23L
        ldo RR'L$C0000(%r28),%r28
        fldds 0(%r28),%fr22
        fdiv,dbl %fr4,%fr22,%fr4
        fcnvxf,sgl,dbl %fr23L,%fr24
        bv %r0(%r2)
        fadd,dbl %fr24,%fr4,%fr4
 
 
I'll dig into it more later..
 
 
 - Jay

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20090226/279eab80/attachment-0002.html>


More information about the M3devel mailing list