Repository navigation
Expand file tree
/
Copy pathlarge_sparse_test.asm
More file actions
125 lines (121 loc) · 2.44 KB
/
Copy pathlarge_sparse_test.asm
File metadata and controls
125 lines (121 loc) · 2.44 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Large Sparse Matrix Test (512x512)
# Size: 262144 elements
# Strategy: Initialize random non-zeros, then scan with LNZ
INIT:
MOV t0, 0 ; Base Address
# Initializing 50 random non-zero elements
MOV t3, 48
SW t3, 13563(t0)
MOV t3, 69
SW t3, 30185(t0)
MOV t3, 9
SW t3, 34867(t0)
MOV t3, 18
SW t3, 34904(t0)
MOV t3, 64
SW t3, 38060(t0)
MOV t3, 99
SW t3, 41902(t0)
MOV t3, 63
SW t3, 61350(t0)
MOV t3, 66
SW t3, 72167(t0)
MOV t3, 8
SW t3, 78115(t0)
MOV t3, 16
SW t3, 78342(t0)
MOV t3, 37
SW t3, 84419(t0)
MOV t3, 85
SW t3, 92841(t0)
MOV t3, 33
SW t3, 103246(t0)
MOV t3, 91
SW t3, 113426(t0)
MOV t3, 21
SW t3, 113559(t0)
MOV t3, 63
SW t3, 115578(t0)
MOV t3, 42
SW t3, 120513(t0)
MOV t3, 17
SW t3, 121720(t0)
MOV t3, 38
SW t3, 127956(t0)
MOV t3, 19
SW t3, 137103(t0)
MOV t3, 87
SW t3, 137631(t0)
MOV t3, 9
SW t3, 137699(t0)
MOV t3, 65
SW t3, 147339(t0)
MOV t3, 14
SW t3, 152247(t0)
MOV t3, 53
SW t3, 158594(t0)
MOV t3, 53
SW t3, 160596(t0)
MOV t3, 12
SW t3, 161232(t0)
MOV t3, 29
SW t3, 163684(t0)
MOV t3, 61
SW t3, 175140(t0)
MOV t3, 16
SW t3, 187303(t0)
MOV t3, 70
SW t3, 188876(t0)
MOV t3, 88
SW t3, 193896(t0)
MOV t3, 54
SW t3, 204606(t0)
MOV t3, 68
SW t3, 205036(t0)
MOV t3, 78
SW t3, 205194(t0)
MOV t3, 10
SW t3, 207782(t0)
MOV t3, 68
SW t3, 211654(t0)
MOV t3, 45
SW t3, 216689(t0)
MOV t3, 72
SW t3, 219203(t0)
MOV t3, 61
SW t3, 222335(t0)
MOV t3, 63
SW t3, 224097(t0)
MOV t3, 90
SW t3, 226488(t0)
MOV t3, 1
SW t3, 230886(t0)
MOV t3, 95
SW t3, 240078(t0)
MOV t3, 27
SW t3, 242920(t0)
MOV t3, 78
SW t3, 244554(t0)
MOV t3, 48
SW t3, 248663(t0)
MOV t3, 32
SW t3, 253040(t0)
MOV t3, 19
SW t3, 255014(t0)
MOV t3, 87
SW t3, 255955(t0)
# Sentinel at end
MOV t3, -1
SW t3, 262144(t0)
PROCESS:
MOV t0, 0 ; Reset Pointer
MOV t1, 262144 ; End Index (approx)
MOV t6, 0 ; Accumulator
MOV s1, -1 ; Sentinel Value
LOOP:
LNZ t3, 0(t0) ; Load Non-Zero
BEQ t3, s1, DONE ; If Sentinel, Exit
ADD t6, t6, t3 ; Sum += Val
JMP LOOP
DONE:
HALT