mirror of
https://github.com/Noratrieb/rustv32i.git
synced 2026-01-14 13:25:01 +01:00
test mem
This commit is contained in:
parent
f88ec3c7eb
commit
1d20052465
2 changed files with 78 additions and 1 deletions
77
tests/check/mem.S
Normal file
77
tests/check/mem.S
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# Load and Store Instructions
|
||||
|
||||
#include "../helper.S"
|
||||
|
||||
|
||||
.macro CASE_NO_OFFSET_DIFF_RESULT s l value result
|
||||
li t1, \value
|
||||
\s t1, 0(t0)
|
||||
\l t2, 0(t0)
|
||||
ASSERT_EQ t2, \result
|
||||
.endm
|
||||
|
||||
.macro CASE_NO_OFFSET s l value
|
||||
CASE_NO_OFFSET_DIFF_RESULT \s, \l, \value, \value
|
||||
.endm
|
||||
|
||||
.macro CASE_SAME_OFFSET s l value offset
|
||||
li t1, \value
|
||||
\s t1, \offset(t0)
|
||||
\l t2, \offset(t0)
|
||||
ASSERT_EQ t2, \value
|
||||
.endm
|
||||
|
||||
.macro CASE_ADDED_OFFSET s l value offset
|
||||
addi t3, t0, \offset
|
||||
li t1, \value
|
||||
\s t1, \offset(t0)
|
||||
\l t2, 0(t3)
|
||||
ASSERT_EQ t2, \value
|
||||
.endm
|
||||
|
||||
START_TEST
|
||||
li t0, 0
|
||||
|
||||
##### word
|
||||
|
||||
CASE_NO_OFFSET sw, lw, -4
|
||||
CASE_SAME_OFFSET sw, lw, -5, 4
|
||||
CASE_SAME_OFFSET sw, lw, -6, 1000
|
||||
CASE_ADDED_OFFSET sw, lw, -7, 4
|
||||
CASE_ADDED_OFFSET sw, lw, -8, 1000
|
||||
|
||||
##### half
|
||||
|
||||
CASE_NO_OFFSET_DIFF_RESULT sh, lh, 65535, -1
|
||||
CASE_NO_OFFSET sh, lhu, 65535
|
||||
|
||||
CASE_NO_OFFSET sh, lh, 21450
|
||||
CASE_SAME_OFFSET sh, lh, 21451, 4
|
||||
CASE_SAME_OFFSET sh, lh, 21452, 1000
|
||||
CASE_ADDED_OFFSET sh, lh, 21453, 4
|
||||
CASE_ADDED_OFFSET sh, lh, 21454, 1000
|
||||
|
||||
CASE_NO_OFFSET sh, lhu, 20420
|
||||
CASE_SAME_OFFSET sh, lhu, 20421, 4
|
||||
CASE_SAME_OFFSET sh, lhu, 20422, 1000
|
||||
CASE_ADDED_OFFSET sh, lhu, 20423, 4
|
||||
CASE_ADDED_OFFSET sh, lhu, 20424, 1000
|
||||
|
||||
##### byte
|
||||
|
||||
CASE_NO_OFFSET_DIFF_RESULT sb, lb, 255, -1
|
||||
CASE_NO_OFFSET sb, lbu, 255
|
||||
|
||||
CASE_NO_OFFSET sb, lb, 90
|
||||
CASE_SAME_OFFSET sb, lb, 90, 4
|
||||
CASE_SAME_OFFSET sb, lb, 91, 1000
|
||||
CASE_ADDED_OFFSET sb, lb, 92, 4
|
||||
CASE_ADDED_OFFSET sb, lb, 93, 1000
|
||||
|
||||
CASE_NO_OFFSET sb, lbu, 110
|
||||
CASE_SAME_OFFSET sb, lbu, 110, 4
|
||||
CASE_SAME_OFFSET sb, lbu, 111, 1000
|
||||
CASE_ADDED_OFFSET sb, lbu, 112, 4
|
||||
CASE_ADDED_OFFSET sb, lbu, 113, 1000
|
||||
|
||||
PASS
|
||||
Loading…
Add table
Add a link
Reference in a new issue