ats.s
1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/************************************************************************
This RSP program implements the Algorithmic Test Sequence (ATS) memory
test procedure for DMEM.
************************************************************************/
#define G0_START 0x0FFC
#define G1_START 0x0FF4
#define G2_START 0x0FF8
.base 0x04001000
nor $31, $0, $0
ori $30, $0, 1
ori $1, $0, G1_START
Step1a: sw $0, 0 ($1)
addi $1, $1, 0xFFF4
bgez $1, Step1a
nop
ori $1, $0, G2_START
Step1b: sw $0, 0 ($1)
addi $1, $1, 0xFFF4
bgez $1, Step1b
nop
ori $30, $0, 2
ori $1, $0, G0_START
Step2: sw $31, 0 ($1)
addi $1, $1, 0xFFF4
bgez $1, Step2
nop
ori $30, $0, 3
ori $1, $0, G1_START
Step3: lw $2, 0 ($1)
bne $2, $0, Fail
addi $1, $1, 0xFFF4
bgez $1, Step3
nop
ori $30, $0, 4
ori $1, $0, G1_START
Step4: sw $31, 0 ($1)
addi $1, $1, 0xFFF4
bgez $1, Step4
nop
ori $30, $0, 5
ori $1, $0, G2_START
Step5: lw $2, 0 ($1)
bne $2, $0, Fail
addi $1, $1, 0xFFF4
bgez $1, Step5
nop
ori $30, $0, 6
ori $1, $0, G0_START
Step6a: lw $3, 0 ($1)
bne $3, $31, Fail
addi $1, $1, 0xFFF4
bgez $1, Step6a
nop
ori $1, $0, G1_START
Step6b: lw $3, 0 ($1)
bne $3, $31, Fail
addi $1, $1, 0xFFF4
bgez $1, Step6b
nop
ori $30, $0, 7
ori $1, $0, G0_START
Step7: sw $0, 0 ($1)
lw $2, 0 ($1)
bne $2, $0, Fail
addi $1, $1, 0xFFF4
bgez $1, Step7
nop
ori $30, $0, 8
ori $1, $0, G2_START
Step8: sw $31, 0 ($1)
lw $3, 0 ($1)
bne $3, $31, Fail
addi $1, $1, 0xFFF4
bgez $1, Step8
nop
ori $1, $0, 0xFEED
Fail: break