Skip to content

Commit af5ccf9

Browse files
critical bug fixed
1 parent a7cec63 commit af5ccf9

25 files changed

Lines changed: 4299 additions & 129 deletions

InstTest.cpp

Lines changed: 741 additions & 0 deletions
Large diffs are not rendered by default.

InstTest.log

Lines changed: 308 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,308 @@
1+
Ori: lui a0, 409600
2+
Idf: lui a0, 409600
3+
Exp Res: 409600
4+
Exe Res: 409600
5+
Exp PC: 0x10104
6+
Exe PC: 0x10104
7+
8+
Ori: auipc a0, 409600
9+
Idf: auipc a0, 409600
10+
Exp Res: 475392
11+
Exe Res: 475392
12+
Exp PC: 0x10104
13+
Exe PC: 0x10104
14+
15+
Ori: jal a0, 0x10128
16+
Idf: jal a0, 0x10128
17+
Exp Res: 0x10104
18+
Exe Res: 0x10104
19+
Exp PC: 0x10128
20+
Exe PC: 0x10128
21+
22+
Ori: jalr a0, a1, 40
23+
Idf: jalr a0, a1, 40
24+
Exp Res: 0x10104
25+
Exe Res: 0x10104
26+
Exp PC: 0x10528
27+
Exe PC: 0x10528
28+
29+
Ori: jalr a0, a1, 40
30+
Idf: jalr a0, a1, 40
31+
Exp Res: 0x10104
32+
Exe Res: 0x10104
33+
Exp PC: 0x10528
34+
Exe PC: 0x10528
35+
36+
Ori: beq a0, a1, 0x10124
37+
Idf: beq a0, a1, 0x10124
38+
Exp PC: 0x10104
39+
Exe PC: 0x10104
40+
Exp PC: 0x10124
41+
Exe PC: 0x10124
42+
43+
Ori: bne a0, a1, 0x10120
44+
Idf: bne a0, a1, 0x10120
45+
Exp PC: 0x10104
46+
Exe PC: 0x10104
47+
Exp PC: 0x10120
48+
Exe PC: 0x10120
49+
50+
Ori: blt a0, a1, 0x1011c
51+
Idf: blt a0, a1, 0x1011c
52+
Exp PC: 0x10104
53+
Exe PC: 0x10104
54+
Exp PC: 0x1011c
55+
Exe PC: 0x1011c
56+
57+
Ori: bge a0, a1, 0x10118
58+
Idf: bge a0, a1, 0x10118
59+
Exp PC: 0x10104
60+
Exe PC: 0x10104
61+
Exp PC: 0x10118
62+
Exe PC: 0x10118
63+
64+
Ori: bltu a0, a1, 0x10114
65+
Idf: bltu a0, a1, 0x10114
66+
Exp PC: 0x10104
67+
Exe PC: 0x10104
68+
Exp PC: 0x10114
69+
Exe PC: 0x10114
70+
71+
Ori: bgeu a0, a1, 0x10110
72+
Idf: bgeu a0, a1, 0x10110
73+
Exp PC: 0x10104
74+
Exe PC: 0x10104
75+
Exp PC: 0x10110
76+
Exe PC: 0x10110
77+
78+
Ori: sb a1, 40(a0)
79+
Idf: sb a1, 40(a0)
80+
Exp Res: 255
81+
Exe Res: 255
82+
Exp PC: 0x10104
83+
Exe PC: 0x10104
84+
85+
Ori: sh a1, 40(a0)
86+
Idf: sh a1, 40(a0)
87+
Exp Res: 65535
88+
Exe Res: 65535
89+
Exp PC: 0x10104
90+
Exe PC: 0x10104
91+
92+
Ori: sw a1, 40(a0)
93+
Idf: sw a1, 40(a0)
94+
Exp Res: -1
95+
Exe Res: -1
96+
Exp PC: 0x10104
97+
Exe PC: 0x10104
98+
99+
Ori: lb a1, 40(a0)
100+
Idf: lb a1, 40(a0)
101+
Exp Res: -1
102+
Exe Res: -1
103+
Exp PC: 0x10104
104+
Exe PC: 0x10104
105+
106+
Ori: lh a1, 40(a0)
107+
Idf: lh a1, 40(a0)
108+
Exp Res: -1
109+
Exe Res: -1
110+
Exp PC: 0x10104
111+
Exe PC: 0x10104
112+
113+
Ori: lw a1, 40(a0)
114+
Idf: lw a1, 40(a0)
115+
Exp Res: -1
116+
Exe Res: -1
117+
Exp PC: 0x10104
118+
Exe PC: 0x10104
119+
120+
Ori: lbu a1, 40(a0)
121+
Idf: lbu a1, 40(a0)
122+
Exp Res: 255
123+
Exe Res: 255
124+
Exp PC: 0x10104
125+
Exe PC: 0x10104
126+
127+
Ori: lhu a1, 40(a0)
128+
Idf: lhu a1, 40(a0)
129+
Exp Res: 65535
130+
Exe Res: 65535
131+
Exp PC: 0x10104
132+
Exe PC: 0x10104
133+
134+
Ori: addi a0, a1, 40
135+
Idf: addi a0, a1, 40
136+
Exp Res: 65575
137+
Exe Res: 65575
138+
Exp PC: 0x10104
139+
Exe PC: 0x10104
140+
141+
Ori: slti a0, a1, 40
142+
Idf: slti a0, a1, 40
143+
Exp Res: 0
144+
Exe Res: 0
145+
Exp Res: 1
146+
Exe Res: 1
147+
Exp PC: 0x10104
148+
Exe PC: 0x10104
149+
150+
Ori: sltiu a0, a1, 40
151+
Idf: sltiu a0, a1, 40
152+
Exp Res: 0
153+
Exe Res: 0
154+
Exp Res: 1
155+
Exe Res: 1
156+
Exp PC: 0x10104
157+
Exe PC: 0x10104
158+
159+
Ori: xori a0, a1, 119
160+
Idf: xori a0, a1, 119
161+
Exp Res: 120
162+
Exe Res: 120
163+
Exp PC: 0x10104
164+
Exe PC: 0x10104
165+
166+
Ori: ori a0, a1, 119
167+
Idf: ori a0, a1, 119
168+
Exp Res: 127
169+
Exe Res: 127
170+
Exp PC: 0x10104
171+
Exe PC: 0x10104
172+
173+
Ori: andi a0, a1, 119
174+
Idf: andi a0, a1, 119
175+
Exp Res: 7
176+
Exe Res: 7
177+
Exp PC: 0x10104
178+
Exe PC: 0x10104
179+
180+
Ori: add a0, a1, a2
181+
Idf: add a0, a1, a2
182+
Exp Res: 134
183+
Exe Res: 134
184+
Exp PC: 0x10104
185+
Exe PC: 0x10104
186+
187+
Ori: sub a0, a1, a2
188+
Idf: sub a0, a1, a2
189+
Exp Res: -104
190+
Exe Res: -104
191+
Exp PC: 0x10104
192+
Exe PC: 0x10104
193+
194+
Ori: sll a0, a1, a2
195+
Idf: sll a0, a1, a2
196+
Exp Res: 15232
197+
Exe Res: 15232
198+
Exp PC: 0x10104
199+
Exe PC: 0x10104
200+
201+
Ori: slt a0, a1, a2
202+
Idf: slt a0, a1, a2
203+
Exp Res: 0
204+
Exe Res: 0
205+
Exp Res: 1
206+
Exe Res: 1
207+
Exp PC: 0x10104
208+
Exe PC: 0x10104
209+
210+
Ori: sltu a0, a1, a2
211+
Idf: sltu a0, a1, a2
212+
Exp Res: 0
213+
Exe Res: 0
214+
Exp Res: 1
215+
Exe Res: 1
216+
Exp PC: 0x10104
217+
Exe PC: 0x10104
218+
219+
Ori: xor a0, a1, a2
220+
Idf: xor a0, a1, a2
221+
Exp Res: 120
222+
Exe Res: 120
223+
Exp PC: 0x10104
224+
Exe PC: 0x10104
225+
226+
Ori: srl a0, a1, a2
227+
Idf: srl a0, a1, a2
228+
Exp Res: 144115188075855871
229+
Exe Res: 144115188075855871
230+
Exp PC: 0x10104
231+
Exe PC: 0x10104
232+
233+
Ori: sra a0, a1, a2
234+
Idf: sra a0, a1, a2
235+
Exp Res: -1
236+
Exe Res: -1
237+
Exp PC: 0x10104
238+
Exe PC: 0x10104
239+
240+
Ori: or a0, a1, a2
241+
Idf: or a0, a1, a2
242+
Exp Res: 127
243+
Exe Res: 127
244+
Exp PC: 0x10104
245+
Exe PC: 0x10104
246+
247+
Ori: and a0, a1, a2
248+
Idf: and a0, a1, a2
249+
Exp Res: 7
250+
Exe Res: 7
251+
Exp PC: 0x10104
252+
Exe PC: 0x10104
253+
254+
Ori: mul a0, a1, a2
255+
Idf: mul a0, a1, a2
256+
Exp Res: 1785
257+
Exe Res: 1785
258+
Exp Res: 20
259+
Exe Res: 20
260+
Exp Res: -200
261+
Exe Res: -200
262+
Exp PC: 0x10104
263+
Exe PC: 0x10104
264+
265+
Ori: div a0, a1, a2
266+
Idf: div a0, a1, a2
267+
Exp Res: 7
268+
Exe Res: 7
269+
Exp Res: 582
270+
Exe Res: 582
271+
Exp Res: -25
272+
Exe Res: -25
273+
Exp PC: 0x10104
274+
Exe PC: 0x10104
275+
276+
Ori: divu a0, a1, a2
277+
Idf: divu a0, a1, a2
278+
Exp Res: 7
279+
Exe Res: 7
280+
Exp Res: 0
281+
Exe Res: 0
282+
Exp Res: 2635249153387078776
283+
Exe Res: 2635249153387078776
284+
Exp PC: 0x10104
285+
Exe PC: 0x10104
286+
287+
Ori: rem a0, a1, a2
288+
Idf: rem a0, a1, a2
289+
Exp Res: 14
290+
Exe Res: 14
291+
Exp Res: -7
292+
Exe Res: -7
293+
Exp Res: -5
294+
Exe Res: -5
295+
Exp PC: 0x10104
296+
Exe PC: 0x10104
297+
298+
Ori: remu a0, a1, a2
299+
Idf: remu a0, a1, a2
300+
Exp Res: 14
301+
Exe Res: 14
302+
Exp Res: -5245
303+
Exe Res: -5245
304+
Exp Res: 4
305+
Exe Res: 4
306+
Exp PC: 0x10104
307+
Exe PC: 0x10104
308+

Makefile

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ CXX = g++
22
MAKE = make
33
EXE = riscv-simulator
44
OBJS = UI.o Simulate.o Read_Elf.o
5+
DEBUG_OBJS = debug.o Simulate.o Read_Elf.o
6+
INSTTEST_OBJS = InstTest.o Simulate.o Read_Elf.o
57
IMGUI = UI_LIB/imgui_impl_glfw.o UI_LIB/imgui.o UI_LIB/imgui_demo.o UI_LIB/imgui_draw.o
68
UNAME_S := $(shell uname -s)
79

@@ -14,23 +16,25 @@ all:$(EXE)
1416
rm $(OBJS)
1517
@echo Build complete for $(ECHO_MESSAGE)
1618

19+
.cpp.o:
20+
$(CXX) $(CXXFLAGS) $(LIBS) -c -o $@ $<
21+
22+
imgui:
23+
@echo making imgui
24+
cd UI_LIB;$(MAKE)
25+
1726
$(EXE): imgui $(OBJS)
1827
$(CXX) -o $(EXE) $(OBJS) $(IMGUI) $(CXXFLAGS) $(LIBS)
1928

2029
ui_test: imgui ui_test.o
2130
$(CXX) -o ui_test ui_test.o $(IMGUI) $(CXXFLAGS) $(LIBS)
2231
rm ui_test.o
2332

24-
inst: ./Test/inst.o Simulate.o Read_Elf.o
25-
$(CXX) -o ./Test/inst ./Test/inst.o Simulate.o Read_Elf.o $(CXXFLAGS) $(LIBS)
26-
rm ./Test/inst.o Simulate.o Read_Elf.o
33+
debug: $(DEBUG_OBJS)
34+
$(CXX) -o debug $(DEBUG_OBJS) $(CXXFLAGS) $(LIBS)
2735

28-
imgui:
29-
@echo Making IMGUI
30-
cd UI_LIB;$(MAKE)
31-
32-
.cpp.o:
33-
$(CXX) $(CXXFLAGS) $(LIBS) -c -o $@ $<
36+
InstTest: $(INSTTEST_OBJS)
37+
$(CXX) -o InstTest $(INSTTEST_OBJS) $(CXXFLAGS) $(LIBS)
3438

3539
clean:
36-
rm $(EXE) $(OBJS) $(IMGUI)
40+
rm *.o UI_LIB/*.o $(EXE) ui_test debug InstTest

0 commit comments

Comments
 (0)