9
EXCEPTION AND INTERUPT PROCESSING
53
8801CDCC: 00 68 02 40 mfc0 $v0, $13 ; get c0.13 (Cause)
8801CDD0:
00 F0 03 40 mfc0 $v1, $30 ; get c0.30 (ErrorEPC) get Error Exception Program Counter
8801CDD4:
00 A0 C2 40 ctc0 $v0, $20 ; save v0 (Cause) in cc0.20
8801CDD8:
00 08 C3 40 ctc0 $v1, $1 ; save v1 (ErrorEPC) in cc0.1
8801CDDC: 00 60 03 40 mfc0 $v1, $12 ; get c0.12 (Status) get Status register
8801CDE0:
00 98 C3 40 ctc0 $v1, $19 ; save v1 (Status) in cc0.19
8801CDE4:
7C 00 02 24 li $v0, 0x7C
8801CDE8:
E1 FF 00 10 b loc_8801CD70 ; v0=0x007c default offset in table
8801CDEC: 00 00 00 00 nop
8801CD70 (exceptionman:0x0670)
8801CD70:
00 C8 43 40 cfc0 $v1,$25 ; get cc0.25 (Profiler HW Base)
8801CD74:
0F 00 60 10 beqz $v1, 8801CDB4 ; if zero, skip
8801CD78:
00 00 00 00 nop
; profiler stuff
8801CD7C: 0C 00 62 AC sw $v0, 0xC($v1) ; save v0 to P0x0c (stall total)
8801CD80:
00 00 63 8C lw $v1, 0($v1) ; get v1 from P0x00 (enable)
8801CD84:
00 00 62 8C lw $v0, 0($v1) ; get v0
8801CD88:
00 00 60 AC sw $0, 0($v1)
8801CD8C: 0F 00 00 00 sync
8801CD90:
00 C8 43 40 cfc0 $v1,$25 ; get cc0.25 (Profiler HW Base)
8801CD94:
08 00 63 8C lw $v1, 8($v1) get v1 from P0x08 (cpu ck)
8801CD98:
02 00 60 14 bnez $v1, 8801CDA4 ; if not zero, skip
8801CD9C: 00 C8 43 40 cfc0 $v1,$25 ; get cc0.25 (Profiler HW Base)
8801CDA0:
04 00 62 AC sw $v0, 4($v1) ; store v0 to P0x04 (system ck)
; count cpu ticks
8801CDA4:
08 00 62 8C lw $v0, 8($v1) ; get v0 from P0x08 (cpu ck)
8801CDA8:
01 00 42 24 addiu $v0, 1 ; increment
8801CDAC: 08 00 62 AC sw $v0, 8($v1) ; store v0 to P0x08 (cpu ck)
8801CDB0:
0C 00 62 8C lw $v0, 0xC($v1) ; get v0 from P0x0c (stall total)
; jumpt to exception handler from table
8801CDB4:
00 40 43 40 cfc0 $v1, $08 (8801ea00) ; get cc0.8 (Exception Vector Table)
8801CDB8:
20 18 62 00 add $v1, $v0 ; add offset in v0
8801CDBC: 00 00 63 8C lw $v1, 0($v1) ; get address
8801CDC0:
08 00 60 00 jr $v1 ; jump to address
8801CDC4:
00 00 00 00 nop
8801ea00 (exceptionman) Exception Vector Table (32 Entries)
88020F74 (interruptman:0x2274)
8801D130 (hang)while(1);
8801D130 (hang)while(1);
8801D130 (hang)while(1);
8801D130 (hang)while(1);
8801D130 (hang)while(1);
8801D130 (hang)while(1);
8801D130 (hang)while(1);
Summary of Contents for PlayStationPortable
Page 114: ...12 AUDIO PROCESSING 114 12 Audio Processing 12 1 Overview 44100 Hz Sample Frequency ...
Page 116: ...14 WLAN 116 14 WLAN ...
Page 117: ...15 USB PORT 117 15 USB Port ...
Page 118: ...16 UMD 118 16 UMD ...
Page 119: ...17 MEMORY STICK 119 17 Memory Stick ...
Page 128: ...21 FLASH MEMORY STRUCTURE FLASH1 128 21 Flash Memory Structure flash1 DIC REGISTRY VSH THEME ...
Page 141: ...28 IPL 141 28 IPL ...