passes quick tests for: lui, addi, add, sub, and, or, xor, andi. jump works but does not link
This commit is contained in:
123
test/test.S
123
test/test.S
@ -1,88 +1,105 @@
|
||||
.global _start
|
||||
.text
|
||||
_start:
|
||||
add x1, x0, x0
|
||||
add x2, x0, x0
|
||||
add x3, x0, x0
|
||||
add x4, x0, x0
|
||||
add x5, x0, x0
|
||||
add x6, x0, x0
|
||||
add x7, x0, x0
|
||||
add x8, x0, x0
|
||||
add x9, x0, x0
|
||||
add x10, x0, x0
|
||||
add x11, x0, x0
|
||||
add x12, x0, x0
|
||||
add x13, x0, x0
|
||||
add x14, x0, x0
|
||||
add x15, x0, x0
|
||||
add x16, x0, x0
|
||||
add x17, x0, x0
|
||||
add x18, x0, x0
|
||||
add x19, x0, x0
|
||||
add x20, x0, x0
|
||||
add x21, x0, x0
|
||||
add x22, x0, x0
|
||||
add x23, x0, x0
|
||||
add x24, x0, x0
|
||||
add x25, x0, x0
|
||||
add x26, x0, x0
|
||||
add x27, x0, x0
|
||||
add x28, x0, x0
|
||||
add x29, x0, x0
|
||||
add x30, x0, x0
|
||||
add x31, x0, x0
|
||||
|
||||
# NOTE: nop required because cpu currently does not detect when something is needed from a later stage of the pipeline.
|
||||
# 4 clocks allows one instruction to finish before the next starts
|
||||
# 4 clocks allows one instruction to finish before the next reads the regfile
|
||||
|
||||
# AUIPC
|
||||
# JAL
|
||||
# JALR
|
||||
|
||||
# XORI
|
||||
# ORI
|
||||
# SLLI
|
||||
# SRLI
|
||||
# SRAI
|
||||
# SLTI
|
||||
# SLTUI
|
||||
|
||||
# SLL
|
||||
# SRL
|
||||
# SRA
|
||||
# SLT
|
||||
# SLTU
|
||||
|
||||
# lui
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
lui x1, 0xfedcb # x1 = 0xfedcb000
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
# addi
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
addi x1, x1, 0x789 # x1 = 0xfedcb789
|
||||
addi x2, x0, -1 # x2 = 0xffffffff
|
||||
nop
|
||||
nop
|
||||
addi x3, x1, -0x777 # x3 = 0xfedcb012
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
# add
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
add x4, x1, x2 # x4 = 0xfedcb788
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
# sub
|
||||
sub x5, x1, x3 # x5 = 0x00000777
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
add x5, x1, x3 # x5 = 0x00000777 incorrect
|
||||
|
||||
# and
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
and x6, x1, x2 # x6 = 0xfedcb789
|
||||
and x7, x1, x0 # x7 = 0x00000000
|
||||
and x8, x4, x3 # x8 = 0xfedcb002 incorrect
|
||||
and x8, x4, x3 # x8 = 0xfedcb000
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
# or
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
or x9, x1, x2 # x9 = 0xffffffff
|
||||
or x10, x1, x0 # x10 = 0xfedcb789
|
||||
or x11, x4, x3 # x11 = 0x0xfedcb798 incorrect
|
||||
|
||||
|
||||
or x11, x4, x3 # x11 = 0x0xfedcb79a
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
# xor
|
||||
xor x12, x1, x2 # x12 = 0x01234876
|
||||
xor x13, x1, x1 # x13 = 0x00000000
|
||||
xor x14, x0, x2 # x14 = 0xffffffff
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
# andi
|
||||
andi x15, x2, -1348 # x15 = 0xfffffabc -1348 = 0xfffffabc
|
||||
andi x16, x2, 0x123 # x16 = 0x00000123
|
||||
andi x17, x1, -1645 # x17 = 0xfedcb181 -1645 = 0xfffff993
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
# # ori
|
||||
# ori x9, x1, x2 # x9 = 0xffffffff
|
||||
# ori x10, x1, x0 # x10 = 0xfedcb789
|
||||
# ori x11, x4, x3 # x11 = 0x0xfedcb79a
|
||||
# nop
|
||||
# nop
|
||||
# nop
|
||||
|
||||
# # xori
|
||||
# xori x12, x1, x2 # x12 = 0x01234876
|
||||
# xori x13, x1, x1 # x13 = 0x00000000
|
||||
# xori x14, x0, x2 # x14 = 0xffffffff
|
||||
# nop
|
||||
# nop
|
||||
# nop
|
||||
|
||||
|
||||
# counter and infinite loop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
Reference in New Issue
Block a user