Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .file 1 "sepehr_knapsack.cpp"
- gcc2_compiled.:
- .text
- .globl knapsack__Fv
- .LFB1:
- .set nomips16
- .ent knapsack__Fv
- knapsack__Fv:
- .frame $sp,24,$ra # vars= 0, regs= 6/0, args= 0, extra= 0
- .mask 0x003f0000,-4
- .fmask 0x00000000,0
- subu $sp,$sp,24
- .LCFI0:
- sw $s0,0($sp)
- .LCFI1:
- lw $s0,n
- sw $s5,20($sp)
- .LCFI2:
- sw $s4,16($sp)
- .LCFI3:
- sw $s3,12($sp)
- .LCFI4:
- sw $s2,8($sp)
- .LCFI5:
- sw $s1,4($sp)
- .LCFI6:
- .set noreorder
- .set nomacro
- blez $s0,.L19
- li $t8,1 # 0x1 t8 =1
- .set macro
- .set reorder
- lw $t9,c #t9 --> c
- #lui $v0,%hi(w) # high
- #lui $v1,%hi(v) # high
- #addiu $s5,$v0,%lo(w) # low
- #addiu $s4,$v1,%lo(v) # low
- la $s5,w #s5 --> address of w
- la $s4,v #s4 --> address of v
- slti $s2,$t9,0 #w<0
- li $t7,4 # 0x4 t7 =4
- #lui $s3,%hi(arr) # high
- #la $s3,arr
- move $s1,$s0 #s1 <--s0
- li $t6,144 # 0x90 144
- .L6:
- .set noreorder
- .set nomacro
- bne $s2,$zero,.L18 #s2 != zero goto l18
- move $t2,$zero #t2 = zero
- .set macro
- .set reorder
- addu $v0,$t7,$s5 #v0 = t7 + s5
- lw $t5,0($v0) #t5 = w[1]
- sll $a2,$t8,8 #a2 = 256*t8
- #addiu $a1,$s3,%lo(arr) # low
- la $a1,arr #a1 = array
- sll $v1,$t5,2 #v1 = 4*w[i]
- addu $a0,$a2,$t6 #a0 = a2 + t6 = 256*i + 144
- subu $v1,$a1,$v1 #v1 = array[-4*w[i]]
- addu $v0,$t6,-400 #v0 = t6 - 400
- addu $v1,$v1,$v0 #v1 = v0 + v1 = t6[i-1][j] + array[-4*w[i]]
- addu $a3,$a0,$a1 #a3 = array + a1
- addu $t0,$v1,$a2 #t0 = v1 + a2 --> d[j-4*w[i]]
- addu $t4,$t7,$s4 #t4 = t7 + s4
- move $t3,$t9 #t3 =t9
- move $a2,$a3 #a2 = a3
- .L10:
- slt $v0,$t2,$t5 # t2 < t5 --> v0
- addu $t2,$t2,1 # t2 ++
- .set noreorder
- .set nomacro
- bne $v0,$zero,.L11 # v0 != zero goto L11
- slt $t1,$t3,$t2 # t3 < t2 --> t1
- .set macro
- .set reorder
- lw $a0,0($t0) #a0 = 0(d[i][j-wi]
- lw $v1,0($t4) #v1 =
- lw $a1,-400($a2) #a1 =
- addu $a0,$a0,$v1
- slt $v0,$a0,$a1
- beq $v0,$zero,.L12
- move $a0,$a1
- .L12:
- .set noreorder
- .set nomacro
- #b .L9
- sw $a0,0($a2)
- .set macro
- .set reorder
- .L11:
- lw $v0,-400($a3) #v0 = api-1][j]
- sw $v0,0($a3) # a[i][j] = a[i-1][j]
- .L9:
- addu $a3,$a3,4 # a3 ++ 4
- addu $t0,$t0,4 # t0 ++ 4
- .set noreorder
- .set nomacro
- beq $t1,$zero,.L10 # t1 == zero L10
- addu $a2,$a2,4 # a2 ++ 4
- .set macro
- .set reorder
- .L18:
- addu $t8,$t8,1 #t8 ++
- slt $v0,$s1,$t8 #s1<t8 v0
- addu $t7,$t7,4 #t7 ++ 4
- .set noreorder
- .set nomacro
- beq $v0,$zero,.L6 #v0 == zero L6
- addu $t6,$t6,144 #t6=t6+144
- .set macro
- .set reorder
- .set noreorder
- .set nomacro
- # b .L20
- sll $v1,$s0,2 #s0
- .set macro
- .set reorder
- .L19:
- lw $t9,c
- sll $v1,$s0,2
- .L20:
- addu $v1,$v1,$s0
- sll $v1,$v1,3
- addu $v1,$v1,$s0
- sll $v1,$v1,2
- addu $v1,$v1,$t9
- #lui $v0,%hi(arr) # high
- #addiu $v0,$v0,%lo(arr) # low
- la $v0,arr
- sll $v1,$v1,2
- addu $v1,$v1,$v0
- # lw $v0,0($v1)
- lw $s5,20($sp)
- lw $s4,16($sp)
- lw $s3,12($sp)
- lw $s2,8($sp)
- lw $s1,4($sp)
- lw $s0,0($sp)
- .set noreorder
- .set nomacro
- # jr $ra
- addu $sp,$sp,24
- .set macro
- .set reorder
- .data
- n: .word 3
- c: .word 50
- w: .word 0,20,30,10
- v: .word 0,160,180,200
- arr: .space 40000
- ans: .space 4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement