Advertisement
Guest User

Untitled

a guest
Jul 18th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .file   1 "sepehr_knapsack.cpp"
  2. gcc2_compiled.:
  3.     .text
  4.     .globl  knapsack__Fv
  5. .LFB1:
  6.     .set    nomips16
  7.     .ent    knapsack__Fv
  8.  
  9. knapsack__Fv:
  10.     .frame  $sp,24,$ra      # vars= 0, regs= 6/0, args= 0, extra= 0
  11.     .mask   0x003f0000,-4
  12.     .fmask  0x00000000,0
  13.     subu    $sp,$sp,24
  14. .LCFI0:
  15.     sw  $s0,0($sp)
  16. .LCFI1:
  17.     lw  $s0,n
  18.     sw  $s5,20($sp)
  19. .LCFI2:
  20.     sw  $s4,16($sp)
  21. .LCFI3:
  22.     sw  $s3,12($sp)
  23. .LCFI4:
  24.     sw  $s2,8($sp)
  25. .LCFI5:
  26.     sw  $s1,4($sp)
  27. .LCFI6:
  28.     .set    noreorder
  29.     .set    nomacro
  30.     blez    $s0,.L19
  31.     li  $t8,1           # 0x1   t8 =1
  32.     .set    macro
  33.     .set    reorder
  34.  
  35.     lw  $t9,c           #t9 --> c
  36.     #lui    $v0,%hi(w) # high
  37.     #lui    $v1,%hi(v) # high
  38.     #addiu  $s5,$v0,%lo(w) # low
  39.     #addiu  $s4,$v1,%lo(v) # low
  40.     la  $s5,w           #s5 --> address of w
  41.     la  $s4,v           #s4 --> address of v
  42.     slti    $s2,$t9,0       #w<0
  43.     li  $t7,4           # 0x4       t7 =4
  44.     #lui    $s3,%hi(arr) # high
  45.     #la $s3,arr
  46.     move    $s1,$s0         #s1 <--s0
  47.     li  $t6,144         # 0x90  144
  48. .L6:
  49.     .set    noreorder
  50.     .set    nomacro
  51.     bne $s2,$zero,.L18      #s2 != zero  goto l18
  52.     move    $t2,$zero       #t2 = zero
  53.     .set    macro
  54.     .set    reorder
  55.  
  56.     addu    $v0,$t7,$s5     #v0 = t7 + s5
  57.     lw  $t5,0($v0)      #t5 = w[1]
  58.     sll $a2,$t8,8       #a2 = 256*t8
  59.     #addiu  $a1,$s3,%lo(arr) # low 
  60.     la  $a1,arr         #a1 = array
  61.     sll $v1,$t5,2       #v1 = 4*w[i]
  62.     addu    $a0,$a2,$t6     #a0 = a2 + t6 = 256*i + 144
  63.     subu    $v1,$a1,$v1     #v1 = array[-4*w[i]]
  64.     addu    $v0,$t6,-400        #v0 = t6 - 400
  65.     addu    $v1,$v1,$v0     #v1 = v0 + v1 = t6[i-1][j] + array[-4*w[i]]
  66.     addu    $a3,$a0,$a1     #a3 = array + a1
  67.     addu    $t0,$v1,$a2     #t0 = v1 + a2 --> d[j-4*w[i]]
  68.     addu    $t4,$t7,$s4     #t4 = t7 + s4
  69.     move    $t3,$t9         #t3 =t9
  70.     move    $a2,$a3         #a2 = a3
  71. .L10:
  72.     slt $v0,$t2,$t5     # t2 < t5 --> v0
  73.     addu    $t2,$t2,1       # t2 ++
  74.     .set    noreorder  
  75.     .set    nomacro
  76.     bne $v0,$zero,.L11      # v0 != zero goto L11
  77.     slt $t1,$t3,$t2     # t3 < t2 --> t1
  78.     .set    macro
  79.     .set    reorder
  80.  
  81.     lw  $a0,0($t0)      #a0 =  0(d[i][j-wi]
  82.     lw  $v1,0($t4)      #v1 =
  83.     lw  $a1,-400($a2)       #a1 =
  84.     addu    $a0,$a0,$v1
  85.     slt $v0,$a0,$a1
  86.     beq $v0,$zero,.L12
  87.     move    $a0,$a1
  88. .L12:
  89.     .set    noreorder
  90.     .set    nomacro
  91.     #b  .L9
  92.     sw  $a0,0($a2)
  93.     .set    macro
  94.     .set    reorder
  95.  
  96. .L11:
  97.     lw  $v0,-400($a3)       #v0 = api-1][j]
  98.     sw  $v0,0($a3)      # a[i][j] = a[i-1][j]
  99. .L9:
  100.     addu    $a3,$a3,4       # a3 ++ 4
  101.     addu    $t0,$t0,4       # t0 ++ 4
  102.     .set    noreorder
  103.     .set    nomacro
  104.     beq $t1,$zero,.L10      # t1 == zero L10
  105.     addu    $a2,$a2,4       # a2 ++ 4
  106.     .set    macro
  107.     .set    reorder
  108.  
  109. .L18:
  110.     addu    $t8,$t8,1       #t8 ++
  111.     slt $v0,$s1,$t8     #s1<t8 v0
  112.     addu    $t7,$t7,4       #t7 ++ 4
  113.     .set    noreorder
  114.     .set    nomacro
  115.     beq $v0,$zero,.L6       #v0 == zero L6
  116.     addu    $t6,$t6,144     #t6=t6+144
  117.     .set    macro
  118.     .set    reorder
  119.  
  120.     .set    noreorder
  121.     .set    nomacro
  122. #   b   .L20
  123.     sll $v1,$s0,2       #s0
  124.     .set    macro
  125.     .set    reorder
  126.  
  127. .L19:
  128.     lw  $t9,c
  129.     sll $v1,$s0,2
  130. .L20:
  131.     addu    $v1,$v1,$s0
  132.     sll $v1,$v1,3
  133.     addu    $v1,$v1,$s0
  134.     sll $v1,$v1,2
  135.     addu    $v1,$v1,$t9
  136.     #lui    $v0,%hi(arr) # high
  137.     #addiu  $v0,$v0,%lo(arr) # low
  138.     la  $v0,arr
  139.     sll $v1,$v1,2
  140.     addu    $v1,$v1,$v0
  141. #   lw  $v0,0($v1)
  142.     lw  $s5,20($sp)
  143.     lw  $s4,16($sp)
  144.     lw  $s3,12($sp)
  145.     lw  $s2,8($sp)
  146.     lw  $s1,4($sp)
  147.     lw  $s0,0($sp)
  148.     .set    noreorder
  149.     .set    nomacro
  150. #   jr  $ra
  151.     addu    $sp,$sp,24
  152.     .set    macro
  153.     .set    reorder
  154.  
  155. .data
  156. n:  .word 3
  157. c:  .word 50
  158. w:  .word 0,20,30,10
  159. v:  .word 0,160,180,200
  160. arr: .space 40000
  161. ans: .space 4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement