pi.s 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. .file 1 "pi.c"
  2. # GNU C 2.7.2.3 [AL 1.1, MM 40, tma 0.1] SimpleScalar running sstrix compiled by GNU C
  3. # Cc1 defaults:
  4. # -mgas -mgpOPT
  5. # Cc1 arguments (-G value = 8, Cpu = default, ISA = 1):
  6. # -quiet -dumpbase -o
  7. gcc2_compiled.:
  8. __gnu_compiled_c:
  9. .rdata
  10. .align 2
  11. $LC0:
  12. .ascii "Usage: %s <iterations>\n\000"
  13. .sdata
  14. .align 2
  15. $LC3:
  16. .ascii "%.10f\n\000"
  17. .align 3
  18. $LC1:
  19. .word 0xffc00000 # 2147483647
  20. .word 0x41dfffff
  21. .align 3
  22. $LC2:
  23. .word 0x00000000 # 1
  24. .word 0x3ff00000
  25. .align 3
  26. $LC4:
  27. .word 0x00000000 # 4
  28. .word 0x40100000
  29. .text
  30. .align 2
  31. .globl main
  32. .extern stderr, 4
  33. .text
  34. .loc 1 5
  35. .ent main
  36. main:
  37. .frame $fp,56,$31 # vars= 32, regs= 2/0, args= 16, extra= 0
  38. .mask 0xc0000000,-4
  39. .fmask 0x00000000,0
  40. subu $sp,$sp,56
  41. sw $31,52($sp)
  42. sw $fp,48($sp)
  43. move $fp,$sp
  44. sw $4,56($fp)
  45. sw $5,60($fp)
  46. jal __main
  47. sw $0,24($fp)
  48. lw $2,56($fp)
  49. li $3,0x00000002 # 2
  50. beq $2,$3,$L2
  51. lw $2,60($fp)
  52. lw $4,stderr
  53. la $5,$LC0
  54. lw $6,0($2)
  55. jal fprintf
  56. move $4,$0
  57. jal exit
  58. $L2:
  59. lw $3,60($fp)
  60. addu $2,$3,4
  61. lw $4,0($2)
  62. jal atoi
  63. sw $2,20($fp)
  64. li $4,0x00000001 # 1
  65. jal srandom
  66. sw $0,16($fp)
  67. $L3:
  68. lw $2,16($fp)
  69. lw $3,20($fp)
  70. slt $2,$2,$3
  71. bne $2,$0,$L6
  72. j $L4
  73. $L6:
  74. jal random
  75. mtc1 $2,$f0
  76. #nop
  77. cvt.d.w $f0,$f0
  78. l.d $f2,$LC1
  79. div.d $f0,$f0,$f2
  80. s.d $f0,32($fp)
  81. jal random
  82. mtc1 $2,$f0
  83. #nop
  84. cvt.d.w $f0,$f0
  85. l.d $f2,$LC1
  86. div.d $f0,$f0,$f2
  87. s.d $f0,40($fp)
  88. l.d $f0,32($fp)
  89. l.d $f2,32($fp)
  90. mul.d $f0,$f0,$f2
  91. l.d $f2,40($fp)
  92. l.d $f4,40($fp)
  93. mul.d $f2,$f2,$f4
  94. add.d $f0,$f0,$f2
  95. l.d $f2,$LC2
  96. c.le.d $f0,$f2
  97. bc1f $L7
  98. lw $3,24($fp)
  99. addu $2,$3,1
  100. move $3,$2
  101. sw $3,24($fp)
  102. $L7:
  103. $L5:
  104. lw $3,16($fp)
  105. addu $2,$3,1
  106. move $3,$2
  107. sw $3,16($fp)
  108. j $L3
  109. $L4:
  110. l.s $f0,24($fp)
  111. #nop
  112. cvt.d.w $f0,$f0
  113. l.s $f2,20($fp)
  114. #nop
  115. cvt.d.w $f2,$f2
  116. div.d $f0,$f0,$f2
  117. l.d $f2,$LC4
  118. mul.d $f0,$f0,$f2
  119. la $4,$LC3
  120. dmfc1 $6,$f0
  121. jal printf
  122. li $2,0x00000001 # 1
  123. j $L1
  124. $L1:
  125. move $sp,$fp # sp not trusted here
  126. lw $31,52($sp)
  127. lw $fp,48($sp)
  128. addu $sp,$sp,56
  129. j $31
  130. .end main