@ -5,15 +5,24 @@
.include " macros. i n c "
# 0 xA0 0 0 0 0 0 0 - 0 x B F F F F F F F : K S E G 1 d i r e c t m a p n o n - c a c h e m i r r o r o f 0 x00 0 0 0 0 0 0
# 0 xA4 0 0 0 0 0 0 - 0 x A 4 0 0 0 F F F : R S P D M E M
# 0 xA4 0 0 0 0 0 0 - 0 x A 4 0 0 0 0 3 F : R O M h e a d e r
.section .text , " ax"
# 0 xA4 0 0 0 0 4 0 - 0 x A 4 0 0 0 B 6 F : I P L 3
# IPL3 e n t r y p o i n t j u m p e d t o f r o m I P L 2
glabel i p l 3 _ e n t r y # 0xA4000040
mtc0 $ z e r o , $ 1 3
mtc0 $ z e r o , $ 9
mtc0 $ z e r o , $ 1 1
lui $ t 0 , % h i ( D _ A 4 7 0 0 0 0 0 )
addiu $ t 0 , % l o ( D _ A 4 7 0 0 0 0 0 )
lui $ t 0 , % h i ( R I _ M O D E _ R E G )
addiu $ t 0 , % l o ( R I _ M O D E _ R E G )
lw $ t 1 , 0 x c ( $ t 0 )
bnez $ t 1 , . L 0 0 0 0 0 3 D 0
bnez $ t 1 , . L A 4 0 0 0 4 1 0
nop
addiu $ s p , $ s p , - 0 x18
sw $ s3 , ( $ s p )
@ -21,47 +30,47 @@
sw $ s5 , 8 ( $ s p )
sw $ s6 , 0 x c ( $ s p )
sw $ s7 , 0 x10 ( $ s p )
lui $ t 0 , % h i ( D _ A 4 7 0 0 0 0 0 )
addiu $ t 0 , % l o ( D _ A 4 7 0 0 0 0 0 )
lui $ t 2 , ( 0 x a3 f80 0 0 0 > > 1 6 ) # $ t 2 , 0 x a3 f8
lui $ t 3 , ( 0 x a3 f00 0 0 0 > > 1 6 ) # $ t 3 , 0 x a3 f0
lui $ t 4 , % h i ( D _ A 4 3 0 0 0 0 0 )
addiu $ t 4 , % l o ( D _ A 4 3 0 0 0 0 0 )
lui $ t 0 , % h i ( R I _ M O D E _ R E G )
addiu $ t 0 , % l o ( R I _ M O D E _ R E G )
lui $ t 2 , ( 0 x a3 f80 0 0 0 > > 1 6 )
lui $ t 3 , ( 0 x a3 f00 0 0 0 > > 1 6 )
lui $ t 4 , % h i ( M I _ M O D E _ R E G )
addiu $ t 4 , % l o ( M I _ M O D E _ R E G )
ori $ t 1 , $ z e r o , 6 4
sw $ t 1 , 4 ( $ t 0 )
li $ s1 , 8 0 0 0
.L0000005 C :
.LA400009 C :
nop
addi $ s1 , $ s1 , - 1
bnez $ s1 , . L 0 0 0 0 0 0 5 C
bnez $ s1 , . L A 4 0 0 0 0 9 C
nop
sw $ z e r o , 8 ( $ t 0 )
ori $ t 1 , $ z e r o , 2 0
sw $ t 1 , 0 x c ( $ t 0 )
sw $ z e r o , ( $ t 0 )
li $ s1 , 4
.L0000008 0 :
.LA40000C 0 :
nop
addi $ s1 , $ s1 , - 1
bnez $ s1 , . L 0 0 0 0 0 0 8 0
bnez $ s1 , . L A 4 0 0 0 0 C 0
nop
ori $ t 1 , $ z e r o , 1 4
sw $ t 1 , ( $ t 0 )
li $ s1 , 3 2
.L0000009 C :
.LA40000D C :
addi $ s1 , $ s1 , - 1
bnez $ s1 , . L 0 0 0 0 0 0 9 C
bnez $ s1 , . L A 4 0 0 0 0 D C
ori $ t 1 , $ z e r o , 2 7 1
sw $ t 1 , ( $ t 4 )
lui $ t 1 , ( 0 x18 0 8 2 8 3 8 > > 1 6 ) # l u i $ t 1 , 0 x18 0 8
ori $ t 1 , ( 0 x18 0 8 2 8 3 8 & 0 x F F F F ) # o r i $ t 1 , $ t 1 , 0 x28 3 8
lui $ t 1 , ( 0 x18 0 8 2 8 3 8 > > 1 6 )
ori $ t 1 , ( 0 x18 0 8 2 8 3 8 & 0 x F F F F )
sw $ t 1 , 0 x8 ( $ t 2 )
sw $ z e r o , 0 x14 ( $ t 2 )
lui $ t 1 , 0 x80 0 0
sw $ t 1 , 0 x4 ( $ t 2 )
move $ t 5 , $ z e r o
move $ t 6 , $ z e r o
lui $ t 7 , ( 0 x A 3 F 0 0 0 0 0 > > 1 6 ) # $ t 7 , 0 x a3 f0
lui $ t 7 , ( 0 x A 3 F 0 0 0 0 0 > > 1 6 )
move $ t 8 , $ z e r o
lui $ t 9 , ( 0 x A 3 F 0 0 0 0 0 > > 1 6 )
lui $ s6 , ( 0 x A 0 0 0 0 0 0 0 > > 1 6 )
@ -72,25 +81,25 @@
lui $ s4 , ( 0 x A 0 0 0 0 0 0 0 > > 1 6 )
addiu $ s p , $ s p , - 0 x48
move $ f p , $ s p
lui $ s0 , % h i ( D _ A 4 3 0 0 0 0 4 ) # $ s 0 , 0 x a43 0
lw $ s0 , % l o ( D _ A 4 3 0 0 0 0 4 ) ( $ s0 )
lui $ s1 , 0 x01 0 1 # $ s 1 , 0 x10 1
addiu $ s1 , 0 x01 0 1 # a d d i u $ s 1 , $ s1 , 0 x10 1
bne $ s0 , $ s1 , . L 0 0 0 0 0 1 2 0
lui $ s0 , % h i ( M I _ V E R S I O N _ R E G )
lw $ s0 , % l o ( M I _ V E R S I O N _ R E G ) ( $ s0 )
lui $ s1 , ( 0 x01 0 1 0 1 0 1 > > 1 6 )
addiu $ s1 , ( 0 x01 0 1 0 1 0 1 & 0 x F F F F )
bne $ s0 , $ s1 , . L A 4 0 0 0 1 6 0
nop
li $ s0 , 5 1 2
ori $ s1 , $ t 3 , 0 x40 0 0
b . L 0 0 0 0 0 1 2 8
b . L A 4 0 0 0 1 6 8
nop
.L0000012 0 :
.LA400016 0 :
li $ s0 , 1 0 2 4
ori $ s1 , $ t 3 , 0 x80 0 0
.L0000012 8 :
.LA400016 8 :
sw $ t 6 , 4 ( $ s1 )
addiu $ s5 , $ t 7 , 0 x c
jal f u n c _ 0 4 0 0 0 7 7 8
jal f u n c _ A 4 0 0 0 7 7 8
nop
beqz $ v0 , . L 0 0 0 0 0 2 1 C
beqz $ v0 , . L A 4 0 0 0 2 5 C
nop
sw $ v0 , ( $ s p )
li $ t 1 , 8 1 9 2
@ -103,7 +112,7 @@
li $ t 1 , 4 0 9 6
sw $ t 1 , ( $ t 4 )
lui $ t 0 , 0 x b01 9
bne $ t 3 , $ t 0 , . L 0 0 0 0 0 1 A 0
bne $ t 3 , $ t 0 , . L A 4 0 0 0 1 E 0
nop
lui $ t 0 , 0 x80 0
add $ t 8 , $ t 8 , $ t 0
@ -114,12 +123,12 @@
add $ s4 , $ s4 , $ t 0
sll $ s2 , $ s2 , 1
addi $ s2 , $ s2 , 1
b . L 0 0 0 0 0 1 A 8
b . L A 4 0 0 0 1 E 8
nop
.L000001A 0 :
.LA40001E 0 :
lui $ t 0 , 0 x10
add $ s4 , $ s4 , $ t 0
.L000001A 8 :
.LA40001E 8 :
li $ t 0 , 8 1 9 2
sw $ t 0 , ( $ t 4 )
lw $ t 1 , 0 x24 ( $ t 7 )
@ -128,47 +137,47 @@
sw $ t 0 , ( $ t 4 )
andi $ t 1 , $ t 1 , 0 x f f f f
li $ t 0 , 1 2 8 0
bne $ t 1 , $ t 0 , . L 0 0 0 0 0 1 F 0
bne $ t 1 , $ t 0 , . L A 4 0 0 0 2 3 0
nop
lui $ k 1 , 0 x10 0
and $ k 0 , $ k 0 , $ k 1
bnez $ k 0 , . L 0 0 0 0 0 1 F 0
bnez $ k 0 , . L A 4 0 0 0 2 3 0
nop
lui $ t 0 , ( 0 x10 1 C 0 A 0 4 > > 1 6 ) # l u i $ t 0 , 0 x10 1 c
ori $ t 0 , ( 0 x10 1 C 0 A 0 4 & 0 x F F F F ) # o r i $ t 0 , $ t 0 , 0 x a04
lui $ t 0 , ( 0 x10 1 C 0 A 0 4 > > 1 6 )
ori $ t 0 , ( 0 x10 1 C 0 A 0 4 & 0 x F F F F )
sw $ t 0 , 0 x18 ( $ t 7 )
b . L 0 0 0 0 0 1 F C
.L000001F 0 :
lui $ t 0 , ( 0 x08 0 C 1 2 0 4 > > 1 6 ) # l u i $ t 0 , 0 x80 c
ori $ t 0 , ( 0 x08 0 C 1 2 0 4 & 0 x F F F F ) # o r i $ t 0 , $ t 0 , 0 x12 0 4
b . L A 4 0 0 0 2 3 C
.LA400023 0 :
lui $ t 0 , ( 0 x08 0 C 1 2 0 4 > > 1 6 )
ori $ t 0 , ( 0 x08 0 C 1 2 0 4 & 0 x F F F F )
sw $ t 0 , 0 x18 ( $ t 7 )
.L000001F C :
.LA400023 C :
lui $ t 0 , 0 x80 0
add $ t 6 , $ t 6 , $ t 0
add $ t 7 , $ t 7 , $ s0
add $ t 7 , $ t 7 , $ s0
addiu $ t 5 , $ t 5 , 1
sltiu $ t 0 , $ t 5 , 8
bnez $ t 0 , . L 0 0 0 0 0 1 2 8
bnez $ t 0 , . L A 4 0 0 0 1 6 8
nop
.L0000021 C :
.LA400025 C :
li $ t 0 , 0 x c40 0 0 0 0 0
sw $ t 0 , 0 x c ( $ t 2 )
li $ t 0 , 0 x80 0 0 0 0 0 0
sw $ t 0 , 0 x4 ( $ t 2 )
move $ s p , $ f p
move $ v1 , $ z e r o
.L0000023 4 :
.LA400027 4 :
lw $ t 1 , 4 ( $ s p )
lui $ t 0 , 0 x b00 9
bne $ t 1 , $ t 0 , . L 0 0 0 0 0 2 9 8
bne $ t 1 , $ t 0 , . L A 4 0 0 0 2 D 8
nop
sw $ t 8 , 4 ( $ s1 )
addiu $ s5 , $ t 9 , 0 x c
lw $ a0 , ( $ s p )
addi $ s p , $ s p , 8
li $ a1 , 1
jal f u n c _ 0 4 0 0 0 A 4 0
jal f u n c _ A 4 0 0 0 A 4 0
nop
lw $ t 0 , ( $ s6 )
lui $ t 0 , 8
@ -183,14 +192,14 @@
add $ t 9 , $ t 9 , $ s0
lui $ t 0 , 0 x10
add $ s6 , $ s6 , $ t 0
b . L 0 0 0 0 0 3 1 C
.L0000029 8 :
b . L A 4 0 0 0 3 5 C
.LA40002D 8 :
sw $ s7 , 4 ( $ s1 )
addiu $ s5 , $ a2 , 0 x c
lw $ a0 , ( $ s p )
addi $ s p , $ s p , 8
li $ a1 , 1
jal f u n c _ 0 4 0 0 0 A 4 0
jal f u n c _ A 4 0 0 0 A 4 0
nop
lw $ t 0 , ( $ a3 )
lui $ t 0 , 8
@ -218,22 +227,22 @@
add $ a2 , $ a2 , $ s0
lui $ t 0 , 0 x20
add $ a3 , $ a3 , $ t 0
.L0000031 C :
.LA400035 C :
addiu $ v1 , $ v1 , 1
slt $ t 0 , $ v1 , $ t 5
bnez $ t 0 , . L 0 0 0 0 0 2 3 4
bnez $ t 0 , . L A 4 0 0 0 2 7 4
nop
lui $ t 2 , % h i ( D _ A 4 7 0 0 0 1 0 ) # $ t 2 , 0 x a47 0
lui $ t 2 , % h i ( R I _ R E F R E S H _ R E G )
sll $ s2 , $ s2 , 0 x13
lui $ t 1 , ( 0 x00 0 6 3 6 3 4 > > 1 6 ) # l u i $ t 1 , 6
ori $ t 1 , ( 0 x00 0 6 3 6 3 4 & 0 x F F F F ) # o r i $ t 1 , $ t 1 , 0 x36 3 4
lui $ t 1 , ( 0 x00 0 6 3 6 3 4 > > 1 6 )
ori $ t 1 , ( 0 x00 0 6 3 6 3 4 & 0 x F F F F )
or $ t 1 , $ t 1 , $ s2
sw $ t 1 , % l o ( D _ A 4 7 0 0 0 1 0 ) ( $ t 2 )
lw $ t 1 , % l o ( D _ A 4 7 0 0 0 1 0 ) ( $ t 2 )
lui $ t 0 , ( 0 x A 0 0 0 0 3 0 0 > > 1 6 ) # $ t 0 , 0 x a00 0
ori $ t 0 , ( 0 x A 0 0 0 0 3 0 0 & 0 x F F F F ) # o r i $ t 0 , $ t 0 , 0 x30 0
lui $ t 1 , ( 0 x0 F F F F F F F > > 1 6 ) # l u i $ t 1 , 0 x f f f
ori $ t 1 , ( 0 x0 F F F F F F F & 0 x F F F F ) # o r i $ t 1 , $ t 1 , 0 x f f f f
sw $ t 1 , % l o ( R I _ R E F R E S H _ R E G ) ( $ t 2 )
lw $ t 1 , % l o ( R I _ R E F R E S H _ R E G ) ( $ t 2 )
lui $ t 0 , ( 0 x A 0 0 0 0 3 0 0 > > 1 6 )
ori $ t 0 , ( 0 x A 0 0 0 0 3 0 0 & 0 x F F F F )
lui $ t 1 , ( 0 x0 F F F F F F F > > 1 6 )
ori $ t 1 , ( 0 x0 F F F F F F F & 0 x F F F F )
and $ s6 , $ s6 , $ t 1
sw $ s6 , 0 x18 ( $ t 0 )
move $ s p , $ f p
@ -244,101 +253,101 @@
lw $ s6 , 0 x c ( $ s p )
lw $ s7 , 0 x10 ( $ s p )
addiu $ s p , $ s p , 0 x18
lui $ t 0 , % h i ( D _ 8 0 0 0 0 0 0 0 )
addiu $ t 0 , $ t 0 , % l o ( D _ 8 0 0 0 0 0 0 0 )
lui $ t 0 , % h i ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 0 , $ t 0 , % l o ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 1 , $ t 0 , 0 x40 0 0
addiu $ t 1 , $ t 1 , - 0 x20
mtc0 $ z e r o , $ 2 8
mtc0 $ z e r o , $ 2 9
.L0000039 8 :
.LA40003D 8 :
cache 8 , ( $ t 0 )
sltu $ a t , $ t 0 , $ t 1
bnez $ a t , . L 0 0 0 0 0 3 9 8
bnez $ a t , . L A 4 0 0 0 3 D 8
addiu $ t 0 , $ t 0 , 0 x20
lui $ t 0 , % h i ( D _ 8 0 0 0 0 0 0 0 )
addiu $ t 0 , % l o ( D _ 8 0 0 0 0 0 0 0 )
lui $ t 0 , % h i ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 0 , % l o ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 1 , $ t 0 , 0 x20 0 0
addiu $ t 1 , $ t 1 , - 0 x10
.L000003B 8 :
.LA40003F 8 :
cache 9 , ( $ t 0 )
sltu $ a t , $ t 0 , $ t 1
bnez $ a t , . L 0 0 0 0 0 3 B 8
bnez $ a t , . L A 4 0 0 0 3 F 8
addiu $ t 0 , $ t 0 , 0 x10
b . L 0 0 0 0 0 4 1 8
b . L A 4 0 0 0 4 5 8
nop
.L000003D 0 :
lui $ t 0 , % h i ( D _ 8 0 0 0 0 0 0 0 )
addiu $ t 0 , % l o ( D _ 8 0 0 0 0 0 0 0 )
.LA400041 0 :
lui $ t 0 , % h i ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 0 , % l o ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 1 , $ t 0 , 0 x40 0 0
addiu $ t 1 , $ t 1 , - 0 x20
mtc0 $ z e r o , $ 2 8
mtc0 $ z e r o , $ 2 9
.L000003E 8 :
.LA400042 8 :
cache 8 , ( $ t 0 )
sltu $ a t , $ t 0 , $ t 1
bnez $ a t , . L 0 0 0 0 0 3 E 8
bnez $ a t , . L A 4 0 0 0 4 2 8
addiu $ t 0 , $ t 0 , 0 x20
lui $ t 0 , % h i ( D _ 8 0 0 0 0 0 0 0 )
addiu $ t 0 , % l o ( D _ 8 0 0 0 0 0 0 0 )
lui $ t 0 , % h i ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 0 , % l o ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 1 , $ t 0 , 0 x20 0 0
addiu $ t 1 , $ t 1 , - 0 x10
.L0000040 8 :
.LA400044 8 :
cache 1 , ( $ t 0 )
sltu $ a t , $ t 0 , $ t 1
bnez $ a t , . L 0 0 0 0 0 4 0 8
bnez $ a t , . L A 4 0 0 0 4 4 8
addiu $ t 0 , $ t 0 , 0 x10
.L0000041 8 :
lui $ t 2 , % h i ( D _ A 4 0 0 0 0 0 0 )
addiu $ t 2 , $ t 2 , % l o ( D _ A 4 0 0 0 0 0 0 )
.LA400045 8 :
lui $ t 2 , % h i ( S P _ D M E M )
addiu $ t 2 , $ t 2 , % l o ( S P _ D M E M )
lui $ t 3 , 0 x f f f0
lui $ t 1 , 0 x00 1 0 # $ t 1 , 0 x10
lui $ t 1 , 0 x00 1 0
and $ t 2 , $ t 2 , $ t 3
lui $ t 0 , % h i ( D _ A 4 0 0 0 4 C 0 ) # $ t 0 , 0 x a40 0
addiu $ t 1 , - 1 # a d d i u $ t 1 , $ t 1 , - 1
lui $ t 3 , % h i ( D _ A 4 0 0 0 7 7 4 ) # $ t 3 , 0 x a40 0
addiu $ t 0 , % l o ( D _ A 4 0 0 0 4 C 0 ) # a d d i u $ t 0 , $ t 0 , 0 x4 c0
addiu $ t 3 , % l o ( D _ A 4 0 0 0 7 7 4 ) # a d d i u $ t 3 , $ t 3 , 0 x77 4
lui $ t 0 , % h i ( S P _ D M E M _ U N K 0 )
addiu $ t 1 , - 1
lui $ t 3 , % h i ( S P _ D M E M _ U N K 1 )
addiu $ t 0 , % l o ( S P _ D M E M _ U N K 0 )
addiu $ t 3 , % l o ( S P _ D M E M _ U N K 1 )
and $ t 0 , $ t 0 , $ t 1
and $ t 3 , $ t 3 , $ t 1
lui $ t 1 , 0 x a00 0
or $ t 0 , $ t 0 , $ t 2
or $ t 3 , $ t 3 , $ t 2
addiu $ t 1 , $ t 1 , 0
.L0000045 8 :
.LA400049 8 :
lw $ t 5 , ( $ t 0 )
addiu $ t 0 , $ t 0 , 4
sltu $ a t , $ t 0 , $ t 3
addiu $ t 1 , $ t 1 , 4
bnez $ a t , . L 0 0 0 0 0 4 5 8
bnez $ a t , . L A 4 0 0 0 4 9 8
sw $ t 5 , - 4 ( $ t 1 )
lui $ t 4 , % h i ( D _ 8 0 0 0 0 0 0 0 )
addiu $ t 4 , % l o ( D _ 8 0 0 0 0 0 0 0 )
lui $ t 4 , % h i ( E X C E P T I O N _ T L B _ M I S S )
addiu $ t 4 , % l o ( E X C E P T I O N _ T L B _ M I S S )
jr $ t 4
nop
lui $ t 3 , % h i ( D _ B 0 0 0 0 0 0 8 ) # $ t 3 , 0 x b00 0
lui $ t 3 , % h i ( D _ B 0 0 0 0 0 0 8 )
lw $ t 1 , % l o ( D _ B 0 0 0 0 0 0 8 ) ( $ t 3 )
lui $ t 2 , ( 0 x1 F F F F F F F > > 1 6 ) # l u i $ t 2 , 0 x1 f f f
ori $ t 2 , ( 0 x1 F F F F F F F & 0 x F F F F ) # o r i $ t 2 , $ t 2 , 0 x f f f f
lui $ a t , % h i ( D _ A 4 6 0 0 0 0 0 )
lui $ t 2 , ( 0 x1 F F F F F F F > > 1 6 )
ori $ t 2 , ( 0 x1 F F F F F F F & 0 x F F F F )
lui $ a t , % h i ( P I _ D R A M _ A D D R _ R E G )
and $ t 1 , $ t 1 , $ t 2
sw $ t 1 , % l o ( D _ A 4 6 0 0 0 0 0 ) ( $ a t )
lui $ t 0 , % h i ( D _ A 4 6 0 0 0 1 0 ) # $ t 0 , 0 x a46 0
.L000004A 0 :
lw $ t 0 , % l o ( D _ A 4 6 0 0 0 1 0 ) ( $ t 0 )
sw $ t 1 , % l o ( P I _ D R A M _ A D D R _ R E G ) ( $ a t )
lui $ t 0 , % h i ( P I _ S T A T U S _ R E G )
.LA40004D 0 :
lw $ t 0 , % l o ( P I _ S T A T U S _ R E G ) ( $ t 0 )
andi $ t 0 , $ t 0 , 2
bnezl $ t 0 , . L 0 0 0 0 0 4 A 0
lui $ t 0 , % h i ( D _ A 4 6 0 0 0 1 0 )
bnezl $ t 0 , . L A 4 0 0 0 4 D 0
lui $ t 0 , % h i ( P I _ S T A T U S _ R E G )
li $ t 0 , 0 x10 0 0
add $ t 0 , $ t 0 , $ t 3
and $ t 0 , $ t 0 , $ t 2
lui $ a t , % h i ( D _ A 4 6 0 0 0 0 4 ) # $ a t , 0xa460
sw $ t 0 , % l o ( D _ A 4 6 0 0 0 0 4 ) ( $ a t )
lui $ t 2 , 0 x00 1 0 # $ t 2 , 0 x10
addiu $ t 2 , 0 x F F F F # a d d i u $ t 2 , $ t 2 , - 1
lui $ a t , % h i ( D _ A 4 6 0 0 0 0 C ) # $ a t , 0xa460
sw $ t 2 , % l o ( D _ A 4 6 0 0 0 0 C ) ( $ a t )
lui $ a t , % h i ( P I _ C A R T _ A D D R _ R E G )
sw $ t 0 , % l o ( P I _ C A R T _ A D D R _ R E G ) ( $ a t )
lui $ t 2 , 0 x00 1 0
addiu $ t 2 , 0 x F F F F
lui $ a t , % h i ( P I _ W R _ L E N _ R E G )
sw $ t 2 , % l o ( P I _ W R _ L E N _ R E G ) ( $ a t )
.L000004D 4 :
.LA400051 4 :
nop
nop
nop
@ -367,16 +376,16 @@
nop
nop
nop
lui $ t 3 , % h i ( D _ A 4 6 0 0 0 1 0 ) # $ t 3 , 0 x a46 0
lw $ t 3 , % l o ( D _ A 4 6 0 0 0 1 0 ) ( $ t 3 )
andi $ t 3 , $ t 3 , 1
bnez $ t 3 , . L 0 0 0 0 0 4 D 4
lui $ t 3 , % h i ( P I _ S T A T U S _ R E G )
lw $ t 3 , % l o ( P I _ S T A T U S _ R E G ) ( $ t 3 )
andi $ t 3 , $ t 3 , 0 x 1
bnez $ t 3 , . L A 4 0 0 0 5 1 4
nop
lui $ t 3 , % h i ( D _ B 0 0 0 0 0 0 8 ) # $ t 3 , 0 x b00 0
lui $ t 3 , % h i ( D _ B 0 0 0 0 0 0 8 )
lw $ a0 , % l o ( D _ B 0 0 0 0 0 0 8 ) ( $ t 3 )
move $ a1 , $ s6
lui $ a t , ( 0 x5 D 5 8 8 B 6 5 > > 1 6 ) # l u i $ a t , 0x5d58
ori $ a t , ( 0 x5 D 5 8 8 B 6 5 & 0 x F F F F ) # o r i $ a t , $ a t , 0x8b65
lui $ a t , ( 0 x5 D 5 8 8 B 6 5 > > 1 6 )
ori $ a t , ( 0 x5 D 5 8 8 B 6 5 & 0 x F F F F )
multu $ a1 , $ a t
addiu $ s p , $ s p , - 0 x20
sw $ r a , 0 x1 c ( $ s p )
@ -394,14 +403,14 @@
move $ s0 , $ v0
move $ a2 , $ v0
move $ t 4 , $ v0
.L000005B 0 :
.LA40005F 0 :
lw $ v0 , ( $ t 1 )
addu $ v1 , $ a3 , $ v0
sltu $ a t , $ v1 , $ a3
beqz $ a t , . L 0 0 0 0 0 5 C 8
beqz $ a t , . L A 4 0 0 0 6 0 8
move $ a1 , $ v1
addiu $ t 2 , $ t 2 , 1
.L000005C 8 :
.LA400060 8 :
andi $ v1 , $ v0 , 0 x1 f
subu $ t 7 , $ t 5 , $ v1
srlv $ t 8 , $ v0 , $ t 7
@ -410,104 +419,103 @@
sltu $ a t , $ a2 , $ v0
move $ a3 , $ a1
xor $ t 3 , $ t 3 , $ v0
beqz $ a t , . L 0 0 0 0 0 5 F C
beqz $ a t , . L A 4 0 0 0 6 3 C
addu $ s0 , $ s0 , $ a0
xor $ t 9 , $ a3 , $ v0
b . L 0 0 0 0 0 6 0 0
b . L A 4 0 0 0 6 4 0
xor $ a2 , $ t 9 , $ a2
.L000005F C :
.LA400063 C :
xor $ a2 , $ a2 , $ a0
.L0000060 0 :
.LA400064 0 :
addiu $ t 0 , $ t 0 , 4
xor $ t 7 , $ v0 , $ s0
addiu $ t 1 , $ t 1 , 4
bne $ t 0 , $ r a , . L 0 0 0 0 0 5 B 0
bne $ t 0 , $ r a , . L A 4 0 0 0 5 F 0
addu $ t 4 , $ t 7 , $ t 4
xor $ t 6 , $ a3 , $ t 2
xor $ a3 , $ t 6 , $ t 3
xor $ t 8 , $ s0 , $ a2
xor $ s0 , $ t 8 , $ t 4
lui $ t 3 , % h i ( D _ B 0 0 0 0 0 1 0 ) # $ t 3 , 0 x b00 0
lui $ t 3 , % h i ( D _ B 0 0 0 0 0 1 0 )
lw $ t 0 , % l o ( D _ B 0 0 0 0 0 1 0 ) ( $ t 3 )
bne $ a3 , $ t 0 , . L 0 0 0 0 0 6 4 8
bne $ a3 , $ t 0 , h a l t
nop
lw $ t 0 , % l o ( D _ B 0 0 0 0 0 1 4 ) ( $ t 3 )
bne $ s0 , $ t 0 , . L 0 0 0 0 0 6 4 8
bne $ s0 , $ t 0 , h a l t
nop
bal f u n c _ 0 0 0 0 0 6 5 0
bal f u n c _ A 4 0 0 0 6 9 0
nop
func_00000648 :
.L00000648 :
bal f u n c _ 0 0 0 0 0 6 4 8
halt :
bal h a l t
nop
func_0000065 0 :
lui $ t 1 , % h i ( D _ A 4 0 8 0 0 0 0 )
lw $ t 1 , % l o ( D _ A 4 0 8 0 0 0 0 ) ( $ t 1 )
func_A400069 0 :
lui $ t 1 , % h i ( S P _ P C )
lw $ t 1 , % l o ( S P _ P C ) ( $ t 1 )
lw $ s0 , 0 x14 ( $ s p )
lw $ r a , 0 x1 c ( $ s p )
beqz $ t 1 , . L 0 0 0 0 0 6 7 C
beqz $ t 1 , . L A 4 0 0 0 6 B C
addiu $ s p , $ s p , 0 x20
li $ t 2 , 6 5
lui $ a t , % h i ( D _ A 4 0 4 0 0 1 0 ) # $ a t , 0xa404
sw $ t 2 , % l o ( D _ A 4 0 4 0 0 1 0 ) ( $ a t )
lui $ a t , % h i ( D _ A 4 0 8 0 0 0 0 )
sw $ z e r o , % l o ( D _ A 4 0 8 0 0 0 0 ) ( $ a t )
.L0000067 C :
lui $ t 3 , ( 0 x00 A A A A A E > > 1 6 ) # l u i $ t 3 , 0 x a a
ori $ t 3 , ( 0 x00 A A A A A E & 0 x F F F F ) # o r i $ t 3 , $ t 3 , 0 x a a a e
lui $ a t , % h i ( D _ A 4 0 4 0 0 1 0 ) # $ a t , 0xa404
sw $ t 3 , % l o ( D _ A 4 0 4 0 0 1 0 ) ( $ a t )
lui $ a t , % h i ( D _ A 4 3 0 0 0 0 C ) # $ a t , 0xa430
lui $ a t , % h i ( S P _ S T A T U S _ R E G )
sw $ t 2 , % l o ( S P _ S T A T U S _ R E G ) ( $ a t )
lui $ a t , % h i ( S P _ P C )
sw $ z e r o , % l o ( S P _ P C ) ( $ a t )
.LA40006B C :
lui $ t 3 , ( 0 x00 A A A A A E > > 1 6 )
ori $ t 3 , ( 0 x00 A A A A A E & 0 x F F F F )
lui $ a t , % h i ( S P _ S T A T U S _ R E G )
sw $ t 3 , % l o ( S P _ S T A T U S _ R E G ) ( $ a t )
lui $ a t , % h i ( M I _ I N T R _ M A S K _ R E G )
li $ t 0 , 1 3 6 5
sw $ t 0 , % l o ( D _ A 4 3 0 0 0 0 C ) ( $ a t )
lui $ a t , % h i ( D _ A 4 8 0 0 0 1 8 ) # $ a t , 0xa480
sw $ z e r o , % l o ( D _ A 4 8 0 0 0 1 8 ) ( $ a t )
lui $ a t , % h i ( D _ A 4 5 0 0 0 0 C ) # $ a t , 0xa450
sw $ z e r o , % l o ( D _ A 4 5 0 0 0 0 C ) ( $ a t )
lui $ a t , % h i ( D _ A 4 3 0 0 0 0 0 )
sw $ t 0 , % l o ( M I _ I N T R _ M A S K _ R E G ) ( $ a t )
lui $ a t , % h i ( S I _ S T A T U S _ R E G )
sw $ z e r o , % l o ( S I _ S T A T U S _ R E G ) ( $ a t )
lui $ a t , % h i ( A I _ S T A T U S _ R E G )
sw $ z e r o , % l o ( A I _ S T A T U S _ R E G ) ( $ a t )
lui $ a t , % h i ( M I _ M O D E _ R E G )
li $ t 1 , 2 0 4 8
sw $ t 1 , % l o ( D _ A 4 3 0 0 0 0 0 ) ( $ a t )
sw $ t 1 , % l o ( M I _ M O D E _ R E G ) ( $ a t )
li $ t 1 , 2
lui $ a t , % h i ( D _ A 4 6 0 0 0 1 0 ) # $ a t , 0xa460
lui $ t 0 , ( 0 x A 0 0 0 0 3 0 0 > > 1 6 ) # $ t 0 , 0 x a00 0
ori $ t 0 , ( 0 x A 0 0 0 0 3 0 0 & 0 x F F F F ) # o r i $ t 0 , $ t 0 , 0 x30 0
sw $ t 1 , % l o ( D _ A 4 6 0 0 0 1 0 ) ( $ a t )
lui $ a t , % h i ( P I _ S T A T U S _ R E G )
lui $ t 0 , ( 0 x A 0 0 0 0 3 0 0 > > 1 6 )
ori $ t 0 , ( 0 x A 0 0 0 0 3 0 0 & 0 x F F F F )
sw $ t 1 , % l o ( P I _ S T A T U S _ R E G ) ( $ a t )
sw $ s7 , 0 x14 ( $ t 0 )
sw $ s5 , 0 x c ( $ t 0 )
sw $ s3 , 0 x4 ( $ t 0 )
beqz $ s3 , . L 0 0 0 0 0 6 E 8
beqz $ s3 , . L A 4 0 0 0 7 2 8
sw $ s4 , ( $ t 0 )
lui $ t 1 , 0 x a60 0
b . L 0 0 0 0 0 6 F 0
b . L A 4 0 0 0 7 3 0
addiu $ t 1 , $ t 1 , 0
.L000006E 8 :
.LA400072 8 :
lui $ t 1 , 0 x b00 0
addiu $ t 1 , $ t 1 , 0
.L000006F 0 :
.LA400073 0 :
sw $ t 1 , 0 x8 ( $ t 0 )
lui $ t 0 , % h i ( D _ A 4 0 0 0 0 0 0 )
addiu $ t 0 , % l o ( D _ A 4 0 0 0 0 0 0 )
lui $ t 0 , % h i ( S P _ D M E M )
addiu $ t 0 , % l o ( S P _ D M E M )
addi $ t 1 , $ t 0 , 0 x10 0 0
.L0000070 0 :
.LA400074 0 :
addiu $ t 0 , $ t 0 , 4
bne $ t 0 , $ t 1 , . L 0 0 0 0 0 7 0 0
bne $ t 0 , $ t 1 , . L A 4 0 0 0 7 4 0
sw $ z e r o , - 4 ( $ t 0 )
lui $ t 0 , % h i ( D _ A 4 0 0 1 0 0 0 ) # $ t 0 , 0 x a40 0
addiu $ t 0 , % l o ( D _ A 4 0 0 1 0 0 0 ) # a d d i u $ t 0 , $ t 0 , 0 x10 0 0
lui $ t 0 , % h i ( S P _ I M E M )
addiu $ t 0 , % l o ( S P _ I M E M )
addi $ t 1 , $ t 0 , 0 x10 0 0
.L0000071 8 :
.LA400075 8 :
addiu $ t 0 , $ t 0 , 4
bne $ t 0 , $ t 1 , . L 0 0 0 0 0 7 1 8
bne $ t 0 , $ t 1 , . L A 4 0 0 0 7 5 8
sw $ z e r o , - 4 ( $ t 0 )
lui $ t 3 , % h i ( D _ B 0 0 0 0 0 0 8 ) # $ t 3 , 0 x b00 0
lui $ t 3 , % h i ( D _ B 0 0 0 0 0 0 8 )
lw $ t 1 , % l o ( D _ B 0 0 0 0 0 0 8 ) ( $ t 3 )
jr $ t 1
nop
nop
func_0 4000778 :
func_A 4000778 :
addiu $ s p , $ s p , - 0 x a0
sw $ s0 , 0 x40 ( $ s p )
sw $ s1 , 0 x44 ( $ s p )
@ -537,15 +545,15 @@ func_04000778:
sw $ s7 , 0 x5 c ( $ s p )
sw $ f p , 0 x60 ( $ s p )
sw $ r a , 0 x64 ( $ s p )
.L000007A C :
jal f u n c _ 0 4 0 0 0 8 8 0
.LA40007E C :
jal f u n c _ A 4 0 0 0 8 8 0
nop
addiu $ s0 , $ s0 , 1
slti $ t 1 , $ s0 , 4
bnez $ t 1 , . L 0 0 0 0 0 7 A C
bnez $ t 1 , . L A 4 0 0 0 7 E C
addu $ s1 , $ s1 , $ v0
srl $ a0 , $ s1 , 2
jal f u n c _ 0 4 0 0 0 A 4 0
jal f u n c _ A 4 0 0 0 A 4 0
li $ a1 , 1
lw $ r a , 0 x64 ( $ s p )
srl $ v0 , $ s1 , 2
@ -576,19 +584,19 @@ func_04000778:
jr $ r a
addiu $ s p , $ s p , 0 x a0
func_0 4000880 :
func_A 4000880 :
addiu $ s p , $ s p , - 0 x20
sw $ r a , 0 x1 c ( $ s p )
move $ t 1 , $ z e r o
move $ t 3 , $ z e r o
move $ t 4 , $ z e r o
.L0000085 4 :
.LA400089 4 :
slti $ k 0 , $ t 4 , 0 x40
beql $ k 0 , $ z e r o , . L 0 0 0 0 0 8 B C
beql $ k 0 , $ z e r o , . L A 4 0 0 0 8 F C
move $ v0 , $ z e r o
jal f u n c _ 0 4 0 0 0 9 0 C
jal f u n c _ A 4 0 0 0 9 0 C
move $ a0 , $ t 4
blezl $ v0 , . L 0 0 0 0 0 8 8 C
blezl $ v0 , . L A 4 0 0 0 8 C C
slti $ k 0 , $ t 1 , 0 x50
subu $ k 0 , $ v0 , $ t 1
multu $ k 0 , $ t 4
@ -597,61 +605,61 @@ func_04000880:
addu $ t 3 , $ t 3 , $ k 0
nop
slti $ k 0 , $ t 1 , 0 x50
.L0000088 C :
bnez $ k 0 , . L 0 0 0 0 0 8 5 4
.LA40008C C :
bnez $ k 0 , . L A 4 0 0 0 8 9 4
addiu $ t 4 , $ t 4 , 1
sll $ a0 , $ t 3 , 2
subu $ a0 , $ a0 , $ t 3
sll $ a0 , $ a0 , 2
subu $ a0 , $ a0 , $ t 3
sll $ a0 , $ a0 , 1
jal f u n c _ 0 4 0 0 0 9 8 0
addiu $ a0 , $ a0 , - 0 x37 0 # c o m p u t e ( t 3 - 4 0 ) * 2 2
b . L 0 0 0 0 0 8 C 0
jal f u n c _ A 4 0 0 0 9 8 0
addiu $ a0 , $ a0 , - 0 x37 0
b . L A 4 0 0 0 9 0 0
lw $ r a , 0 x1 c ( $ s p )
move $ v0 , $ z e r o
.L000008B C :
.LA40008F C :
lw $ r a , 0 x1 c ( $ s p )
.L000008C 0 :
.LA400090 0 :
addiu $ s p , $ s p , 0 x20
jr $ r a
nop
func_0 400090C :
func_A 400090C :
addiu $ s p , $ s p , - 0 x28
sw $ r a , 0 x1 c ( $ s p )
move $ v0 , $ z e r o
jal f u n c _ 0 4 0 0 0 A 4 0
jal f u n c _ A 4 0 0 0 A 4 0
li $ a1 , 2
move $ f p , $ z e r o
li $ k 0 , - 1
.L000008E 8 :
.LA400092 8 :
sw $ k 0 , 4 ( $ s4 )
lw $ v1 , 4 ( $ s4 )
sw $ k 0 , ( $ s4 )
sw $ k 0 , ( $ s4 )
move $ g p , $ z e r o
srl $ v1 , $ v1 , 0 x10
.L0000090 0 :
.LA400094 0 :
andi $ k 0 , $ v1 , 1
beql $ k 0 , $ z e r o , . L 0 0 0 0 0 9 1 4
beql $ k 0 , $ z e r o , . L A 4 0 0 0 9 5 4
addiu $ g p , $ g p , 1
addiu $ v0 , $ v0 , 1
addiu $ g p , $ g p , 1
.L0000091 4 :
.LA400095 4 :
slti $ k 0 , $ g p , 8
bnez $ k 0 , . L 0 0 0 0 0 9 0 0
bnez $ k 0 , . L A 4 0 0 0 9 4 0
srl $ v1 , $ v1 , 1
addiu $ f p , $ f p , 1
slti $ k 0 , $ f p , 0 x a
bnezl $ k 0 , . L 0 0 0 0 0 8 E 8
bnezl $ k 0 , . L A 4 0 0 0 9 2 8
li $ k 0 , - 1
lw $ r a , 0 x1 c ( $ s p )
addiu $ s p , $ s p , 0 x28
jr $ r a
nop
func_0 4000980 :
func_A 4000980 :
addiu $ s p , $ s p , - 0 x28
sw $ r a , 0 x1 c ( $ s p )
sw $ a0 , 0 x20 ( $ s p )
@ -661,18 +669,18 @@ func_04000980:
li $ t 5 , 5 1 2 0 0
move $ t 6 , $ z e r o
slti $ k 0 , $ t 6 , 0 x40
.L0000096 4 :
bnezl $ k 0 , . L 0 0 0 0 0 9 7 8
.LA40009A 4 :
bnezl $ k 0 , . L A 4 0 0 0 9 B 8
move $ a0 , $ t 6
b . L 0 0 0 0 0 9 F 0
b . L A 4 0 0 0 A 3 0
move $ v0 , $ z e r o
move $ a0 , $ t 6
.L0000097 8 :
jal f u n c _ 0 4 0 0 0 A 4 0
.LA40009B 8 :
jal f u n c _ A 4 0 0 0 A 4 0
li $ a1 , 1
jal f u n c _ 0 4 0 0 0 A D 0
jal f u n c _ A 4 0 0 0 A D 0
addiu $ a0 , $ s p , 0 x27
jal f u n c _ 0 4 0 0 0 A D 0
jal f u n c _ A 4 0 0 0 A D 0
addiu $ a0 , $ s p , 0 x27
lbu $ k 0 , 0 x27 ( $ s p )
li $ k 1 , 8 0 0
@ -680,44 +688,44 @@ func_04000980:
multu $ k 0 , $ k 1
mflo $ t 0
subu $ k 0 , $ t 0 , $ a0
bgezl $ k 0 , . L 0 0 0 0 0 9 B 8
bgezl $ k 0 , . L A 4 0 0 0 9 F 8
slt $ k 1 , $ k 0 , $ t 5
subu $ k 0 , $ a0 , $ t 0
slt $ k 1 , $ k 0 , $ t 5
.L000009B 8 :
beql $ k 1 , $ z e r o , . L 0 0 0 0 0 9 C C
.LA40009F 8 :
beql $ k 1 , $ z e r o , . L A 4 0 0 0 A 0 C
lw $ a0 , 0 x20 ( $ s p )
move $ t 5 , $ k 0
move $ t 2 , $ t 6
lw $ a0 , 0 x20 ( $ s p )
.L000009C C :
.LA4000A0 C :
slt $ k 1 , $ t 0 , $ a0
beql $ k 1 , $ z e r o , . L 0 0 0 0 0 9 E C
beql $ k 1 , $ z e r o , . L A 4 0 0 0 A 2 C
addu $ v0 , $ t 2 , $ t 6
addiu $ t 6 , $ t 6 , 1
slti $ k 1 , $ t 6 , 0 x41
bnezl $ k 1 , . L 0 0 0 0 0 9 6 4
bnezl $ k 1 , . L A 4 0 0 0 9 A 4
slti $ k 0 , $ t 6 , 0 x40
addu $ v0 , $ t 2 , $ t 6
.L000009E C :
.LA4000A2 C :
srl $ v0 , $ v0 , 1
.L000009F 0 :
.LA4000A3 0 :
lw $ r a , 0 x1 c ( $ s p )
addiu $ s p , $ s p , 0 x28
jr $ r a
nop
func_0 4000A40 :
func_A 4000A40 :
addiu $ s p , $ s p , - 0 x28
andi $ a0 , $ a0 , 0 x f f
li $ k 1 , 1
xori $ a0 , $ a0 , 0 x3 f
sw $ r a , 0 x1 c ( $ s p )
bne $ a1 , $ k 1 , . L 0 0 0 0 0 A 2 4
bne $ a1 , $ k 1 , . L A 4 0 0 0 A 6 4
lui $ t 7 , 0 x46 0 0
lui $ k 0 , 0 x80 0 0
or $ t 7 , $ t 7 , $ k 0
.L00000A2 4 :
.LA4000A6 4 :
andi $ k 0 , $ a0 , 1
sll $ k 0 , $ k 0 , 6
or $ t 7 , $ t 7 , $ k 0
@ -737,26 +745,26 @@ func_04000A40:
sll $ k 0 , $ k 0 , 0 x12
or $ t 7 , $ t 7 , $ k 0
li $ k 1 , 1
bne $ a1 , $ k 1 , . L 0 0 0 0 0 A 8 0
bne $ a1 , $ k 1 , . L A 4 0 0 0 A C 0
sw $ t 7 , ( $ s5 )
lui $ k 0 , % h i ( D _ A 4 3 0 0 0 0 0 )
sw $ z e r o , % l o ( D _ A 4 3 0 0 0 0 0 ) ( $ k 0 )
.L00000A8 0 :
lui $ k 0 , % h i ( M I _ M O D E _ R E G )
sw $ z e r o , % l o ( M I _ M O D E _ R E G ) ( $ k 0 )
.LA4000AC 0 :
lw $ r a , 0 x1 c ( $ s p )
addiu $ s p , $ s p , 0 x28
jr $ r a
nop
func_0 4000AD0 :
func_A 4000AD0 :
addiu $ s p , $ s p , - 0 x28
sw $ r a , 0 x1 c ( $ s p )
li $ k 0 , 0 x20 0 0
lui $ k 1 , % h i ( D _ A 4 3 0 0 0 0 0 )
sw $ k 0 , % l o ( D _ A 4 3 0 0 0 0 0 ) ( $ k 1 )
lui $ k 1 , % h i ( M I _ M O D E _ R E G )
sw $ k 0 , % l o ( M I _ M O D E _ R E G ) ( $ k 1 )
move $ f p , $ z e r o
lw $ f p , ( $ s5 )
li $ k 0 , 0 x10 0 0
sw $ k 0 , % l o ( D _ A 4 3 0 0 0 0 0 ) ( $ k 1 )
sw $ k 0 , % l o ( M I _ M O D E _ R E G ) ( $ k 1 )
li $ k 1 , 0 x40
and $ k 1 , $ k 1 , $ f p
srl $ k 1 , $ k 1 , 6
@ -789,4 +797,6 @@ func_04000AD0:
nop
nop
# 0 xA4 0 0 0 B 7 0 - 0 x A 4 0 0 0 F F F : I P L 3 F o n t
glabel i p l 3 _ f o n t
.incbin " lib/ b i n / i p l 3 _ f o n t . b i n "