projects
/
IRC.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
fix some bugs in multi-core version codes generation and runtime
[IRC.git]
/
Robust
/
src
/
Runtime
/
raw_interrupt.s
1
#include <raw_asm.h>
2
3
.text
4
.align 2
5
.globl setup_ints
6
.ent setup_ints
7
setup_ints:
8
# set up dynamic network
9
uintoff
10
intoff
11
12
# set gdn_cfg
13
xor $8,$8,$8
14
aui $8,$8,(3<<11)|(0 <<6)|(0 <<1)
15
ori $8, (0 <<12)|(2<<9)
16
mtsr GDN_CFG,$8
17
# mtsr PASS,$8
18
19
# set exception vector
20
la $3, interrupt_table
21
# mtsri PASS, 0xaaa
22
# mtsr PASS, $3
23
mtsr EX_BASE_ADDR, $3
24
25
# set EX_MASK
26
mfsr $8,EX_MASK
27
ori $8,$8,0x20 # 1 << kVEC_GDN_AVAIL
28
mtsr EX_MASK,$8
29
30
inton
31
uinton
32
jr $31
33
.end setup_ints
34
35
.macro empty_vec fail_code
36
mtsri FAIL, \fail_code
37
1: b 1b
38
nop
39
nop
40
.endm
41
42
interrupt_table:
43
44
vec_gdn_refill:
45
empty_vec 0x2300
46
vec_gdn_complete:
47
empty_vec 0x2301
48
vec_trace:
49
empty_vec 0x2302
50
vec_extern:
51
empty_vec 0x2303
52
vec_timer:
53
empty_vec 0x2304
54
vec_gdn_avail:
55
# mtsri PASS, 0xef00
56
uintoff
57
58
addiu $sp,$sp,-104
59
sw $31,0x64($sp)
60
sw $30,0x60($sp)
61
sw $23,0x5c($sp)
62
sw $22,0x58($sp)
63
sw $21,0x54($sp)
64
sw $20,0x50($sp)
65
sw $19,0x4c($sp)
66
sw $18,0x48($sp)
67
sw $17,0x44($sp)
68
sw $16,0x40($sp)
69
sw $15,0x3c($sp)
70
sw $14,0x38($sp)
71
sw $13,0x34($sp)
72
sw $12,0x30($sp)
73
sw $11,0x2c($sp)
74
sw $10,0x28($sp)
75
sw $9,0x24($sp)
76
sw $8,0x20($sp)
77
sw $7,0x1c($sp)
78
sw $6,0x18($sp)
79
sw $5,0x14($sp)
80
sw $4,0x10($sp)
81
sw $3,0xc($sp)
82
sw $2,0x8($sp)
83
.set noat
84
sw $1,0x4($sp)
85
.set at
86
87
jal receiveObject
88
89
lw $31,0x64($sp)
90
lw $30,0x60($sp)
91
lw $23,0x5c($sp)
92
lw $22,0x58($sp)
93
lw $21,0x54($sp)
94
lw $20,0x50($sp)
95
lw $19,0x4c($sp)
96
lw $18,0x48($sp)
97
lw $17,0x44($sp)
98
lw $16,0x40($sp)
99
lw $15,0x3c($sp)
100
lw $14,0x38($sp)
101
lw $13,0x34($sp)
102
lw $12,0x30($sp)
103
lw $11,0x2c($sp)
104
lw $10,0x28($sp)
105
lw $9,0x24($sp)
106
lw $8,0x20($sp)
107
lw $7,0x1c($sp)
108
lw $6,0x18($sp)
109
lw $5,0x14($sp)
110
lw $4,0x10($sp)
111
lw $3,0xc($sp)
112
lw $2,0x8($sp)
113
.set noat
114
lw $1,0x4($sp)
115
.set at
116
addiu $sp,$sp,104
117
118
# mtsri PASS, 0xefff
119
dret
120
vec_event_counters:
121
empty_vec 0x2306