[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: a CVTST/s of +INF doesn't work :-{



No, I compiled the 2.2.13 kernel with egcs-1.1.2 (the compiler that came with
RH 6.0, and the one recommended in the 2.2.13 release notes).

See http://gcc.gnu.org to download 2.95.1.

Brad Lucier

Here is the output of gcc:

popov-139% gcc -mieee -S floatcompare.c
popov-140% cat floatcompare.s
        .file   1 "floatcompare.c"
        .set noat
        .set noreorder
        .arch ev6
.section        .rodata
$LC0:
        .ascii "l = %g, r = %g, d = (%lx, %g)\12\0"
$LC1:
        .ascii "i = %d\12\0"
.text
        .align 5
        .globl main
        .ent main
main:
        .eflag 48
        .frame $15,64,$26,0
        .mask 0x4008000,-64
        ldgp $29,0($27)
$main..ng:
        lda $30,-64($30)
        stq $26,0($30)
        stq $15,8($30)
        mov $30,$15
        .prologue 1
        stl $31,16($15)
        ldah $1,32640
        stl $1,24($15)
        lds $f11,24($15)
        cvtsts $f11,$f10
        stt $f10,56($15)
        ldt $f10,56($15)
        stt $f10,32($15)
        lds $f11,16($15)
        cvtsts $f11,$f10
        lds $f12,24($15)
        cvtsts $f12,$f11
        lda $16,$LC0
        fmov $f10,$f17
        fmov $f11,$f18
        ldq $19,32($15)
        ldt $f20,32($15)
        jsr $26,printf
        ldgp $29,0($26)
        lds $f16,16($15)
        lds $f17,24($15)
        jsr $26,compare
        ldgp $29,0($26)
        mov $0,$1
        stl $1,48($15)
        ldl $1,48($15)
        lda $16,$LC1
        mov $1,$17
        jsr $26,printf
        ldgp $29,0($26)
$L2:
        mov $15,$30
        ldq $26,0($30)
        ldq $15,8($30)
        lda $30,64($30)
        ret $31,($26),1
        .end main
        .align 5
        .globl compare
        .ent compare
compare:
        .eflag 48
        .frame $15,32,$26,0
        .mask 0x4008000,-32
$compare..ng:
        lda $30,-32($30)
        stq $26,0($30)
        stq $15,8($30)
        mov $30,$15
        .prologue 0
        sts $f16,16($15)
        sts $f17,20($15)
        lds $f11,16($15)
        cvtsts $f11,$f10
        lds $f12,20($15)
        cvtsts $f12,$f11
        cmptltsu $f10,$f11,$f12
        fmov $f12,$f10
        fbeq $f10,$L4
        lda $0,1
        br $31,$L3
        br $31,$L5
$L4:
        lds $f11,16($15)
        cvtsts $f11,$f10
        lds $f12,20($15)
        cvtsts $f12,$f11
        cmptltsu $f11,$f10,$f12
        fmov $f12,$f10
        fbeq $f10,$L6
        lda $0,-1
        br $31,$L3
        br $31,$L5
$L6:
        mov $31,$0
        br $31,$L3
$L7:
$L5:
$L3:
        mov $15,$30
        ldq $26,0($30)
        ldq $15,8($30)
        lda $30,32($30)
        ret $31,($26),1
        .end compare
        .ident  "GCC: (GNU) 2.95.1 19990816 (release)"



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []