Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .include "runtime.s"
- main:
- addi $sp,-32
- sw $ra, 28($sp)
- sw $fp, 24($sp)
- sw $s2, 20($sp)
- sw $s1, 16($sp)
- sw $s0, 12($sp)
- move $fp, $sp
- println "Running test.."
- println "Ensuring cache control register.."
- li $s0, 0x0001e988
- li $s1, 0xfffe0130
- sw $s0, 0x0($s1)
- println "Enabling ISC, filling the data cache with incrementing values.."
- li $s0, 0x10000
- mtc0 $s0, $12
- nop
- li $s0, 0x3fc
- fill:
- sw $s0, 0x0($s0)
- bnez $s0, fill
- addi $s0,-0x4
- li $s0, 0x0
- mtc0 $s0, $12
- nop
- println "ISC disabled, verifying that incrementing values have appeared at 0x1f800000.."
- li $s1, 0x1f8003fc
- li $s0, 0x3fc
- verify:
- lw $s2, 0x0($s1)
- la $a0, test_helper
- move $a1, $s1
- move $a2, $s2
- jal printf
- nop
- bne $s0, $s2, failed
- nop
- addi $s1,-0x4
- bnez $s0, verify
- addi $s0,-0x4
- passed:
- println "Test passed."
- li $v0, 0x0
- b finish
- nop
- failed:
- println "Test failed."
- li $v0, 0x1
- finish:
- move $sp, $fp
- lw $ra, 28($sp)
- lw $fp, 24($sp)
- lw $s2, 20($sp)
- lw $s1, 16($sp)
- lw $s0, 12($sp)
- jr $ra
- addi $sp, 32
- .data
- test_helper:
- .asciz "[%08x] = %08x\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement