Hi,

compiling the ghc-3.00 source for irix 6.2 fails with the following error:

in ghc/runtime:

../../ghc/driver/ghc -I../includes -optc-DGCap   -O -optc-DIN_GHC_RTS=1
-I../runtime/storage   -optc-DIN_GHC_RTS=1  -c main/StgStartup.hc -o
main/StgStartup.o -osuf o
main/StgStartup.hc:232: warning: assignment makes integer from pointer
without a cast
Prologue junk?:         .ent    ArrayOfData_entry
ArrayOfData_entry:
        #.file  1 "main/StgStartup.hc"
        .frame  $sp,2168,$31
        .mask   0x90000000,-4
        .fmask  0x00000000,0
        .mask   0x80000000,-16
        sd      $31,0($sp)


I assume this is based on the new gcc version i have installed here.
gcc-2.8.0 does not support the old irix binary format (o32) but produces
the new 32 Bit (n32) and the 64Bit (64) output (and the assembler format
has changed)
I have started to rebuild most of the libs on my machine in 64 Bit and of
course would like to build a 64 Bit version of ghc. I have appended the
output of gcc -mabi=64 -S test-arch.c (from ghc/misc) and would be pleased
if someone could have a look at the irix port (the gcc call in the ghc
driver would have to be changed to 'gcc -mabi=64' to produce 64 bit
output). 

If it helps i could setup an account here (if have been reading you have
no irix 6. box around).  

regards,
Fuad




        #.file  1 "test-arch.c"
        .option pic2
        .section        .text
        .text
        .align  2
        .globl  foo
        .ent    foo
foo:
        .frame  $fp,112,$31             # vars= 64, regs= 3/0, args= 0, extra= 16
        .mask   0xd0000000,-16
        .fmask  0x00000000,0
        dsubu   $sp,$sp,112
        sd      $31,96($sp)
        sd      $fp,88($sp)
        sd      $28,80($sp)
        move    $fp,$sp
        .set    noat
        lui     $1,%hi(%neg(%gp_rel(foo)))
        addiu   $1,$1,%lo(%neg(%gp_rel(foo)))
        daddu   $gp,$1,$25
        .set    at
        sd      $4,16($fp)
        s.d     $f13,24($fp)
        sd      $6,32($fp)
        sd      $7,40($fp)
        s.d     $f16,48($fp)
        sd      $9,56($fp)
        move    $2,$10
        sd      $11,72($fp)
        sb      $2,64($fp)
 #APP
        --- BEGIN ---
 #NO_APP
        ld      $3,40($fp)
        lbu     $2,0($3)
        l.d     $f1,24($fp)
        cvt.s.d $f0,$f1
        move    $4,$2
        mov.s   $f13,$f0
        ld      $6,16($fp)
        ld      $7,56($fp)
        ld      $8,40($fp)
        ld      $9,40($fp)
        dla     $25,bar
        jal     $31,$25
 #APP
        --- END ---
 #NO_APP
.L1:
        move    $sp,$fp
        ld      $31,96($sp)
        ld      $fp,88($sp)
        ld      $28,80($sp)
        daddu   $sp,$sp,112
        j       $31
        .end    foo
        .align  2
        .globl  bar
        .ent    bar
bar:
        .frame  $fp,96,$31              # vars= 48, regs= 3/0, args= 0, extra= 16
        .mask   0xd0000000,-16
        .fmask  0x00000000,0
        dsubu   $sp,$sp,96
        sd      $31,80($sp)
        sd      $fp,72($sp)
        sd      $28,64($sp)
        move    $fp,$sp
        .set    noat
        lui     $1,%hi(%neg(%gp_rel(bar)))
        addiu   $1,$1,%lo(%neg(%gp_rel(bar)))
        daddu   $gp,$1,$25
        .set    at
        move    $2,$4
        s.s     $f13,20($fp)
        sd      $6,24($fp)
        sd      $7,32($fp)
        sd      $8,40($fp)
        sd      $9,48($fp)
        sb      $2,16($fp)
 #APP
        --- BEGIN ---
 #NO_APP
        l.s     $f1,20($fp)
        cvt.d.s $f0,$f1
        lbu     $2,16($fp)
        ld      $4,24($fp)
        mov.d   $f13,$f0
        move    $6,$0
        ld      $7,40($fp)
        dmtc1   $0,$f16
        ld      $9,32($fp)
        move    $10,$2
        ld      $11,32($fp)
        dla     $25,foo
        jal     $31,$25
 #APP
        --- END ---
 #NO_APP
.L2:
        move    $sp,$fp
        ld      $31,80($sp)
        ld      $fp,72($sp)
        ld      $28,64($sp)
        daddu   $sp,$sp,96
        j       $31
        .end    bar
        .align  2
        .globl  baz
        .ent    baz
baz:
        .frame  $fp,4048,$31            # vars= 4016, regs= 2/0, args= 0, extra= 16
        .mask   0x50000000,-8
        .fmask  0x00000000,0
        dsubu   $sp,$sp,4048
        sd      $fp,4040($sp)
        sd      $28,4032($sp)
        move    $fp,$sp
        .set    noat
        lui     $1,%hi(%neg(%gp_rel(baz)))
        addiu   $1,$1,%lo(%neg(%gp_rel(baz)))
        daddu   $gp,$1,$25
        .set    at
        sw      $4,16($fp)
        sw      $0,4024($fp)
.L4:
        lw      $2,4024($fp)
        slt     $3,$2,1000
        bne     $3,$0,.L7
        b       .L5
.L7:
        lw      $2,4024($fp)
        li      $3,4                    # 0x00000004
        mult    $2,$3
        daddu   $2,$fp,24
        mflo    $6
        dsll    $6,$6,32
        dsrl    $6,$6,32
        mfhi    $7
        dsll    $7,$7,32
        or      $7,$7,$6
        daddu   $3,$2,$7
        lw      $2,16($fp)
        lw      $3,0($3)
        addu    $2,$2,$3
        sw      $2,16($fp)
.L6:
        lw      $2,4024($fp)
        addu    $3,$2,1
        sw      $3,4024($fp)
        b       .L4
.L5:
        l.s     $f1,16($fp)
        cvt.d.w $f1,$f1
        mov.d   $f0,$f1
        b       .L3
.L3:
        move    $sp,$fp
        ld      $fp,4040($sp)
        ld      $28,4032($sp)
        daddu   $sp,$sp,4048
        j       $31
        .end    baz


Reply via email to