www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Floating point failures on x64

reply "Daniel Murphy" <yebblies nospamgmail.com> writes:
I've been trying to fix issue 4155, but it's a little difficult without the 
ability to test on x64 (I'm on win32).  Could anybody compile the following 
code for me with 'dmd -m64' with this patch 
https://github.com/D-Programming-Language/dmd/pull/760 and send me the 
disassembly?

Thanks.


template TT4155(T...) { alias T TT4155; }

void test4155()
{
    static int test4155a()
    {
        T getnan(T)() { return T.nan; } // OPcall
        static T getnanu(T)() { return T.nan; } // OPucall

        foreach(T; TT4155!(float, double, real, ifloat, idouble, ireal, 
cfloat, cdouble, creal))
        {
            auto f = getnan!T();
            if (!__ctfe) // force f into memory
                asm { nop; };

            assert(!(T.nan == 0), T.stringof);
            assert(!(f == 0), T.stringof);
            assert(!(getnan!T == 0), T.stringof);
            assert(!(getnanu!T == 0), T.stringof);

            assert((T.nan != 0), T.stringof);
            assert((f != 0), T.stringof);
            assert((getnan!T != 0), T.stringof);
            assert((getnanu!T != 0), T.stringof);
        }
        return 1;
    }
    auto a = test4155a();
    enum b = test4155a();
}

void main()
{
    test4155();
} 
Feb 23 2012
next sibling parent reply "Martin Nowak" <dawg dawgfoto.de> writes:
On Fri, 24 Feb 2012 06:57:22 +0100, Daniel Murphy  
<yebblies nospamgmail.com> wrote:

 I've been trying to fix issue 4155, but it's a little difficult without  
 the
 ability to test on x64 (I'm on win32).  Could anybody compile the  
 following
 code for me with 'dmd -m64' with this patch
 https://github.com/D-Programming-Language/dmd/pull/760 and send me the
 disassembly?

http://codepad.org/pOCsPsMi - objdump (doesn't know sahf)
Feb 23 2012
parent reply "Daniel Murphy" <yebblies nospamgmail.com> writes:
Thanks heaps!  Only failing for cfloat+ now!
I've updated the pull, do you mind doing it again?

"Martin Nowak" <dawg dawgfoto.de> wrote in message 
news:op.v958yuyvsqugbd dawg-freebsd.lan...
 On Fri, 24 Feb 2012 06:57:22 +0100, Daniel Murphy 
 <yebblies nospamgmail.com> wrote:

 I've been trying to fix issue 4155, but it's a little difficult without 
 the
 ability to test on x64 (I'm on win32).  Could anybody compile the 
 following
 code for me with 'dmd -m64' with this patch
 https://github.com/D-Programming-Language/dmd/pull/760 and send me the
 disassembly?

http://codepad.org/pOCsPsMi - objdump (doesn't know sahf)

Feb 24 2012
next sibling parent "Daniel Murphy" <yebblies nospamgmail.com> writes:
Intel, thanks.

(*shudder*, AT&T)

"Martin Nowak" <dawg dawgfoto.de> wrote in message 
news:op.v96domsnsqugbd dawg-freebsd.lan...
 On Fri, 24 Feb 2012 09:02:05 +0100, Daniel Murphy 
 <yebblies nospamgmail.com> wrote:

 Thanks heaps!  Only failing for cfloat+ now!
 I've updated the pull, do you mind doing it again?

 "Martin Nowak" <dawg dawgfoto.de> wrote in message
 news:op.v958yuyvsqugbd dawg-freebsd.lan...
 On Fri, 24 Feb 2012 06:57:22 +0100, Daniel Murphy
 <yebblies nospamgmail.com> wrote:

 I've been trying to fix issue 4155, but it's a little difficult without
 the
 ability to test on x64 (I'm on win32).  Could anybody compile the
 following
 code for me with 'dmd -m64' with this patch
 https://github.com/D-Programming-Language/dmd/pull/760 and send me the
 disassembly?

http://codepad.org/pOCsPsMi - objdump (doesn't know sahf)


http://codepad.org/4Gr237NH - dmd -c bug2.d && objconv -fasm bug2.o http://codepad.org/MhqFv8ik - dmd -c bug2.d && objdump -d bug2.o

Feb 24 2012
prev sibling parent "Daniel Murphy" <yebblies nospamgmail.com> writes:
Do you know what happened to the rest of the intel disassembly?  It ends 
rather abruptly...
I'd use the other listing but the callq instructions seem to be displaying 
the return address instead of the target address.

"Martin Nowak" <dawg dawgfoto.de> wrote in message 
news:op.v96domsnsqugbd dawg-freebsd.lan...
 On Fri, 24 Feb 2012 09:02:05 +0100, Daniel Murphy 
 <yebblies nospamgmail.com> wrote:

 Thanks heaps!  Only failing for cfloat+ now!
 I've updated the pull, do you mind doing it again?

 "Martin Nowak" <dawg dawgfoto.de> wrote in message
 news:op.v958yuyvsqugbd dawg-freebsd.lan...
 On Fri, 24 Feb 2012 06:57:22 +0100, Daniel Murphy
 <yebblies nospamgmail.com> wrote:

 I've been trying to fix issue 4155, but it's a little difficult without
 the
 ability to test on x64 (I'm on win32).  Could anybody compile the
 following
 code for me with 'dmd -m64' with this patch
 https://github.com/D-Programming-Language/dmd/pull/760 and send me the
 disassembly?

http://codepad.org/pOCsPsMi - objdump (doesn't know sahf)


http://codepad.org/4Gr237NH - dmd -c bug2.d && objconv -fasm bug2.o http://codepad.org/MhqFv8ik - dmd -c bug2.d && objdump -d bug2.o

Feb 24 2012
prev sibling next sibling parent "Martin Nowak" <dawg dawgfoto.de> writes:
On Fri, 24 Feb 2012 09:02:05 +0100, Daniel Murphy  
<yebblies nospamgmail.com> wrote:

 Thanks heaps!  Only failing for cfloat+ now!
 I've updated the pull, do you mind doing it again?

 "Martin Nowak" <dawg dawgfoto.de> wrote in message
 news:op.v958yuyvsqugbd dawg-freebsd.lan...
 On Fri, 24 Feb 2012 06:57:22 +0100, Daniel Murphy
 <yebblies nospamgmail.com> wrote:

 I've been trying to fix issue 4155, but it's a little difficult without
 the
 ability to test on x64 (I'm on win32).  Could anybody compile the
 following
 code for me with 'dmd -m64' with this patch
 https://github.com/D-Programming-Language/dmd/pull/760 and send me the
 disassembly?

http://codepad.org/pOCsPsMi - objdump (doesn't know sahf)


http://codepad.org/4Gr237NH - dmd -c bug2.d && objconv -fasm bug2.o http://codepad.org/MhqFv8ik - dmd -c bug2.d && objdump -d bug2.o
Feb 24 2012
prev sibling parent "Martin Nowak" <dawg dawgfoto.de> writes:
On Fri, 24 Feb 2012 12:20:42 +0100, Daniel Murphy  
<yebblies nospamgmail.com> wrote:

 Do you know what happened to the rest of the intel disassembly?  It ends
 rather abruptly...

https://gist.github.com/1903445
 I'd use the other listing but the callq instructions seem to be  
 displaying
 the return address instead of the target address.

Feb 24 2012