forked from chipsalliance/Cores-VeeR-EH1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdual_div.cpp.s
78 lines (64 loc) · 1.43 KB
/
dual_div.cpp.s
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
# 0 "/data2/open-riscv/acemicro/acemicro_m1/m1-v0/testbench/tests/dual_div/dual_div.s"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/data2/open-riscv/acemicro/acemicro_m1/m1-v0/testbench/tests/dual_div/dual_div.s"
# 21 "/data2/open-riscv/acemicro/acemicro_m1/m1-v0/testbench/tests/dual_div/dual_div.s"
# 1 "snapshots/default/defines.h" 1
# 22 "/data2/open-riscv/acemicro/acemicro_m1/m1-v0/testbench/tests/dual_div/dual_div.s" 2
# 31 "/data2/open-riscv/acemicro/acemicro_m1/m1-v0/testbench/tests/dual_div/dual_div.s"
.section .text
.global _start
_start:
csrw minstret, zero
csrw minstreth, zero
li x1, 0xee000000
csrw mtvec, x1
li x1, 0x5f555555
csrw 0x7c0, x1
li x3, 0xd0580000
la x4, hw_data
li x9, (0x4488*0x4488)
li x10, (0x4488*0x11)
TC_ds:
li x6, 0x4488
mv x7,x6
li x8, 0x11
mul x7,x7,x6
mul x9,x8,x6
div x12,x7,x6
div x13,x9,x6
li x1,0
bne x12,x6,_failed
addi x1,x1,1
bne x13,x8,_failed
loop:
lb x5, 0(x4)
sb x5, 0(x3)
addi x4, x4, 1
bnez x5, loop
_finish:
li x3, 0xd0580000
addi x5, x0, 0xff
sb x5, 0(x3)
beq x0, x0, _finish
_failed:
la x4,err
_print:
mv x5,x1
addi x5,x5,48
sb x5,0(x3)
j loop
.rept 100
nop
.endr
.global hw_data
.global err
.data
err:
.ascii " test failded\n"
.byte 0
hw_data:
.ascii "-------------------------\n"
.ascii "Dual Div Testcases passed\n"
.ascii "-------------------------\n"
.byte 0