OpenCores
URL https://opencores.org/ocsvn/yacc/yacc/trunk

Subversion Repositories yacc

[/] [yacc/] [trunk/] [bench/] [c_src/] [pi/] [pi2.s] - Diff between revs 2 and 4

Only display areas with differences | Details | Blame | View Log

Rev 2 Rev 4
        .file   1 "pi2.c"
        .file   1 "pi2.c"
 
 
 # -G value = 8, Cpu = 3000, ISA = 1
 # -G value = 8, Cpu = 3000, ISA = 1
 # GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release) (sde) [AL 1.1, MM 40] Algorithmics SDE-MIPS v4.0.5 compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
 # GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release) (sde) [AL 1.1, MM 40] Algorithmics SDE-MIPS v4.0.5 compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
 # options passed:  -O2 -O -Wall
 # options passed:  -O2 -O -Wall
 # options enabled:  -fdefer-pop -fomit-frame-pointer -fthread-jumps
 # options enabled:  -fdefer-pop -fomit-frame-pointer -fthread-jumps
 # -fpeephole -finline -fkeep-static-consts -fpcc-struct-return
 # -fpeephole -finline -fkeep-static-consts -fpcc-struct-return
 # -fdelayed-branch -fcommon -fverbose-asm -fgnu-linker -falias-check
 # -fdelayed-branch -fcommon -fverbose-asm -fgnu-linker -falias-check
 # -fargument-alias -msplit-addresses -mgas -mrnames -mgpOPT -mgpopt
 # -fargument-alias -msplit-addresses -mgas -mrnames -mgpOPT -mgpopt
 # -membedded-data -meb -mmad -marg32 -mdebugh -mdebugi -mmadd -mno-gpconst
 # -membedded-data -meb -mmad -marg32 -mdebugh -mdebugi -mmadd -mno-gpconst
 # -mcpu=3000
 # -mcpu=3000
 
 
gcc2_compiled.:
gcc2_compiled.:
        .globl  a
        .globl  a
        .sdata
        .sdata
        .align  0
        .align  0
        .align  2
        .align  2
a:
a:
        .size   a,4
        .size   a,4
        .word   10000
        .word   10000
        .globl  c
        .globl  c
        .align  2
        .align  2
c:
c:
        .size   c,4
        .size   c,4
        .word   56
        .word   56
        .rdata
        .rdata
        .align  0
        .align  0
        .align  2
        .align  2
.LC0:
.LC0:
        .ascii  "Calculating pi, it may take some minutes.\n\000"
        .ascii  "Calculating pi, it may take some minutes.\n\000"
        .align  2
        .align  2
.LC1:
.LC1:
        .ascii  "\000"
        .ascii  "\000"
        .align  2
        .align  2
.LC2:
.LC2:
        .ascii  "$finish\000"
        .ascii  "$finish\000"
 
 
        .comm   b,4
        .comm   b,4
 
 
        .comm   d,4
        .comm   d,4
 
 
        .comm   e,4
        .comm   e,4
 
 
        .comm   f,228
        .comm   f,228
 
 
        .comm   g,4
        .comm   g,4
 
 
        .text
        .text
        .text
        .text
        .align  2
        .align  2
        .globl  print_uart
        .globl  print_uart
        .ent    print_uart
        .ent    print_uart
print_uart:
print_uart:
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
        .mask   0x00000000,0
        .mask   0x00000000,0
        .fmask  0x00000000,0
        .fmask  0x00000000,0
        lbu     $v0,0($a0)
        lbu     $v0,0($a0)
        beq     $v0,$zero,.L3
        beq     $v0,$zero,.L3
        li      $v1,16380                       # 0x00003ffc
        li      $v1,16380                       # 0x00003ffc
.L5:
.L5:
        #.set   volatile
        #.set   volatile
        lw      $v0,0($v1)
        lw      $v0,0($v1)
        #.set   novolatile
        #.set   novolatile
        andi    $v0,$v0,0x0100
        andi    $v0,$v0,0x0100
        bne     $v0,$zero,.L5
        bne     $v0,$zero,.L5
        lbu     $v0,0($a0)
        lbu     $v0,0($a0)
        #.set   volatile
        #.set   volatile
        sb      $v0,0($v1)
        sb      $v0,0($v1)
        #.set   novolatile
        #.set   novolatile
        addu    $a0,$a0,1
        addu    $a0,$a0,1
        lbu     $v0,0($a0)
        lbu     $v0,0($a0)
        bne     $v0,$zero,.L5
        bne     $v0,$zero,.L5
.L3:
.L3:
        j       $ra
        j       $ra
        .end    print_uart
        .end    print_uart
        .size   print_uart,.-print_uart
        .size   print_uart,.-print_uart
        .align  2
        .align  2
        .globl  putc_uart
        .globl  putc_uart
        .ent    putc_uart
        .ent    putc_uart
putc_uart:
putc_uart:
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
        .mask   0x00000000,0
        .mask   0x00000000,0
        .fmask  0x00000000,0
        .fmask  0x00000000,0
        andi    $a0,$a0,0x00ff
        andi    $a0,$a0,0x00ff
        li      $v1,16380                       # 0x00003ffc
        li      $v1,16380                       # 0x00003ffc
.L11:
.L11:
        #.set   volatile
        #.set   volatile
        lw      $v0,0($v1)
        lw      $v0,0($v1)
        #.set   novolatile
        #.set   novolatile
        andi    $v0,$v0,0x0100
        andi    $v0,$v0,0x0100
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        bne     $v0,$zero,.L11
        bne     $v0,$zero,.L11
        li      $v0,16380                       # 0x00003ffc
        li      $v0,16380                       # 0x00003ffc
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        #.set   volatile
        #.set   volatile
        sb      $a0,0($v0)
        sb      $a0,0($v0)
        #.set   novolatile
        #.set   novolatile
        j       $ra
        j       $ra
        .end    putc_uart
        .end    putc_uart
        .size   putc_uart,.-putc_uart
        .size   putc_uart,.-putc_uart
        .align  2
        .align  2
        .globl  print
        .globl  print
        .ent    print
        .ent    print
print:
print:
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
        .mask   0x00000000,0
        .mask   0x00000000,0
        .fmask  0x00000000,0
        .fmask  0x00000000,0
        lbu     $v0,0($a0)
        lbu     $v0,0($a0)
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        beq     $v0,$zero,.L17
        beq     $v0,$zero,.L17
        move    $v1,$v0
        move    $v1,$v0
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        li      $a1,16368                       # 0x00003ff0
        li      $a1,16368                       # 0x00003ff0
        move    $v0,$v1
        move    $v0,$v1
.L20:
.L20:
        #.set   volatile
        #.set   volatile
        sb      $v0,0($a1)
        sb      $v0,0($a1)
        #.set   novolatile
        #.set   novolatile
        addu    $a0,$a0,1
        addu    $a0,$a0,1
        lbu     $v1,0($a0)
        lbu     $v1,0($a0)
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        bne     $v1,$zero,.L20
        bne     $v1,$zero,.L20
        move    $v0,$v1
        move    $v0,$v1
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
.L17:
.L17:
        li      $v0,16368                       # 0x00003ff0
        li      $v0,16368                       # 0x00003ff0
        #.set   volatile
        #.set   volatile
        sb      $zero,0($v0)
        sb      $zero,0($v0)
        #.set   novolatile
        #.set   novolatile
        j       $ra
        j       $ra
        .end    print
        .end    print
        .size   print,.-print
        .size   print,.-print
        .align  2
        .align  2
        .globl  print_char
        .globl  print_char
        .ent    print_char
        .ent    print_char
print_char:
print_char:
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
        .frame  $sp,0,$ra                # vars= 0, regs= 0/0, args= 0, extra= 0
        .mask   0x00000000,0
        .mask   0x00000000,0
        .fmask  0x00000000,0
        .fmask  0x00000000,0
        andi    $a0,$a0,0x00ff
        andi    $a0,$a0,0x00ff
        li      $v0,16368                       # 0x00003ff0
        li      $v0,16368                       # 0x00003ff0
        #.set   volatile
        #.set   volatile
        sb      $a0,0($v0)
        sb      $a0,0($v0)
        #.set   novolatile
        #.set   novolatile
        j       $ra
        j       $ra
        .end    print_char
        .end    print_char
        .size   print_char,.-print_char
        .size   print_char,.-print_char
        .align  2
        .align  2
        .globl  print_num
        .globl  print_num
        .ent    print_num
        .ent    print_num
print_num:
print_num:
        .frame  $sp,40,$ra              # vars= 0, regs= 5/0, args= 16, extra= 0
        .frame  $sp,40,$ra              # vars= 0, regs= 5/0, args= 16, extra= 0
        .mask   0x800f0000,-8
        .mask   0x800f0000,-8
        .fmask  0x00000000,0
        .fmask  0x00000000,0
        subu    $sp,$sp,40
        subu    $sp,$sp,40
        sw      $ra,32($sp)
        sw      $ra,32($sp)
        sw      $s3,28($sp)
        sw      $s3,28($sp)
        sw      $s2,24($sp)
        sw      $s2,24($sp)
        sw      $s1,20($sp)
        sw      $s1,20($sp)
        sw      $s0,16($sp)
        sw      $s0,16($sp)
        move    $s2,$a0
        move    $s2,$a0
        li      $s1,1000                        # 0x000003e8
        li      $s1,1000                        # 0x000003e8
        li      $s3,-858993459                  # 0xcccccccd
        li      $s3,-858993459                  # 0xcccccccd
.L26:
.L26:
        divu    $s0,$s2,$s1
        divu    $s0,$s2,$s1
        addu    $a0,$s0,48
        addu    $a0,$s0,48
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        jal     print_char
        jal     print_char
        andi    $a0,$a0,0x00ff
        andi    $a0,$a0,0x00ff
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        mult    $s0,$s1
        mult    $s0,$s1
        mflo    $v0
        mflo    $v0
        subu    $s2,$s2,$v0
        subu    $s2,$s2,$v0
        multu   $s1,$s3
        multu   $s1,$s3
        mfhi    $v0
        mfhi    $v0
        srl     $s1,$v0,3
        srl     $s1,$v0,3
        bne     $s1,$zero,.L26
        bne     $s1,$zero,.L26
        lw      $ra,32($sp)
        lw      $ra,32($sp)
        lw      $s3,28($sp)
        lw      $s3,28($sp)
        lw      $s2,24($sp)
        lw      $s2,24($sp)
        lw      $s1,20($sp)
        lw      $s1,20($sp)
        lw      $s0,16($sp)
        lw      $s0,16($sp)
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        j       $ra
        j       $ra
        addu    $sp,$sp,40
        addu    $sp,$sp,40
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        .end    print_num
        .end    print_num
        .size   print_num,.-print_num
        .size   print_num,.-print_num
        .text
        .text
        .align  2
        .align  2
        .globl  main2
        .globl  main2
        .ent    main2
        .ent    main2
main2:
main2:
        .frame  $sp,24,$ra              # vars= 0, regs= 2/0, args= 16, extra= 0
        .frame  $sp,24,$ra              # vars= 0, regs= 2/0, args= 16, extra= 0
        .mask   0x80010000,-4
        .mask   0x80010000,-4
        .fmask  0x00000000,0
        .fmask  0x00000000,0
        subu    $sp,$sp,24
        subu    $sp,$sp,24
        sw      $ra,20($sp)
        sw      $ra,20($sp)
        sw      $s0,16($sp)
        sw      $s0,16($sp)
        lui     $a0,%hi(.LC0) # high
        lui     $a0,%hi(.LC0) # high
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        jal     print
        jal     print
        addiu   $a0,$a0,%lo(.LC0) # low
        addiu   $a0,$a0,%lo(.LC0) # low
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        lw      $v1,b
        lw      $v1,b
        lw      $v0,c
        lw      $v0,c
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        beq     $v1,$v0,.L30
        beq     $v1,$v0,.L30
        lui     $v0,%hi(f) # high
        lui     $v0,%hi(f) # high
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        addiu   $a2,$v0,%lo(f) # low
        addiu   $a2,$v0,%lo(f) # low
        lw      $v0,a
        lw      $v0,a
        li      $v1,1717960704                  # 0x66660000
        li      $v1,1717960704                  # 0x66660000
        ori     $v1,$v1,0x6667
        ori     $v1,$v1,0x6667
        mult    $v0,$v1
        mult    $v0,$v1
        mfhi    $t0
        mfhi    $t0
        sra     $v1,$t0,1
        sra     $v1,$t0,1
        sra     $v0,$v0,31
        sra     $v0,$v0,31
        subu    $a1,$v1,$v0
        subu    $a1,$v1,$v0
        lw      $a0,c
        lw      $a0,c
.L32:
.L32:
        lw      $v1,b
        lw      $v1,b
        sll     $v0,$v1,2
        sll     $v0,$v1,2
        addu    $v0,$v0,$a2
        addu    $v0,$v0,$a2
        sw      $a1,0($v0)
        sw      $a1,0($v0)
        addu    $v1,$v1,1
        addu    $v1,$v1,1
        sw      $v1,b
        sw      $v1,b
        bne     $v1,$a0,.L32
        bne     $v1,$a0,.L32
.L30:
.L30:
        sw      $zero,d
        sw      $zero,d
        lw      $v0,c
        lw      $v0,c
        sll     $v0,$v0,1
        sll     $v0,$v0,1
        sw      $v0,g
        sw      $v0,g
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        beq     $v0,$zero,.L44
        beq     $v0,$zero,.L44
        lui     $v0,%hi(f) # high
        lui     $v0,%hi(f) # high
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        addiu   $s0,$v0,%lo(f) # low
        addiu   $s0,$v0,%lo(f) # low
.L37:
.L37:
        lw      $v0,c
        lw      $v0,c
        sw      $v0,b
        sw      $v0,b
        lw      $a3,a
        lw      $a3,a
        b       .L38
        b       .L38
.L40:
.L40:
        lw      $v1,d
        lw      $v1,d
        lw      $v0,b
        lw      $v0,b
        mult    $v1,$v0
        mult    $v1,$v0
        mflo    $t0
        mflo    $t0
        sw      $t0,d
        sw      $t0,d
.L38:
.L38:
        lw      $a2,b
        lw      $a2,b
        sll     $a1,$a2,2
        sll     $a1,$a2,2
        addu    $a1,$a1,$s0
        addu    $a1,$a1,$s0
        lw      $v0,0($a1)
        lw      $v0,0($a1)
        mult    $v0,$a3
        mult    $v0,$a3
        mflo    $v0
        mflo    $v0
        lw      $v1,d
        lw      $v1,d
        addu    $v1,$v0,$v1
        addu    $v1,$v0,$v1
        sw      $v1,d
        sw      $v1,d
        lw      $a0,g
        lw      $a0,g
        addu    $v0,$a0,-1
        addu    $v0,$a0,-1
        sw      $v0,g
        sw      $v0,g
        div     $v1,$v1,$v0
        div     $v1,$v1,$v0
        mfhi    $v0
        mfhi    $v0
        sw      $v0,0($a1)
        sw      $v0,0($a1)
        sw      $v1,d
        sw      $v1,d
        addu    $a0,$a0,-2
        addu    $a0,$a0,-2
        sw      $a0,g
        sw      $a0,g
        addu    $a2,$a2,-1
        addu    $a2,$a2,-1
        sw      $a2,b
        sw      $a2,b
        bne     $a2,$zero,.L40
        bne     $a2,$zero,.L40
        lw      $v0,c
        lw      $v0,c
        addu    $v0,$v0,-14
        addu    $v0,$v0,-14
        sw      $v0,c
        sw      $v0,c
        lw      $v0,a
        lw      $v0,a
        div     $v1,$v1,$v0
        div     $v1,$v1,$v0
        lw      $a0,e
        lw      $a0,e
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        jal     print_num
        jal     print_num
        addu    $a0,$v1,$a0
        addu    $a0,$v1,$a0
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        lw      $v1,d
        lw      $v1,d
        lw      $v0,a
        lw      $v0,a
        rem     $v0,$v1,$v0
        rem     $v0,$v1,$v0
        sw      $v0,e
        sw      $v0,e
        sw      $zero,d
        sw      $zero,d
        lw      $v0,c
        lw      $v0,c
        sll     $v0,$v0,1
        sll     $v0,$v0,1
        sw      $v0,g
        sw      $v0,g
        bne     $v0,$zero,.L37
        bne     $v0,$zero,.L37
.L44:
.L44:
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        jal     print_char
        jal     print_char
        li      $a0,10                  # 0x0000000a
        li      $a0,10                  # 0x0000000a
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        lui     $a0,%hi(.LC1) # high
        lui     $a0,%hi(.LC1) # high
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        jal     print
        jal     print
        addiu   $a0,$a0,%lo(.LC1) # low
        addiu   $a0,$a0,%lo(.LC1) # low
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        lui     $a0,%hi(.LC2) # high
        lui     $a0,%hi(.LC2) # high
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        jal     print
        jal     print
        addiu   $a0,$a0,%lo(.LC2) # low
        addiu   $a0,$a0,%lo(.LC2) # low
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        lw      $ra,20($sp)
        lw      $ra,20($sp)
        lw      $s0,16($sp)
        lw      $s0,16($sp)
        .set    noreorder
        .set    noreorder
        .set    nomacro
        .set    nomacro
        j       $ra
        j       $ra
        addu    $sp,$sp,24
        addu    $sp,$sp,24
        .set    macro
        .set    macro
        .set    reorder
        .set    reorder
 
 
        .end    main2
        .end    main2
        .size   main2,.-main2
        .size   main2,.-main2
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.