Skip to content

Commit 953da20

Browse files
arachsysdpgeorge
authored andcommitted
tests/micropython: Test that viper offset stores don't clobber base reg.
When running the viper boundary tests, assert that the offset stores don't clobber the base register, which is saved and temporarily modified on some architectures. Signed-off-by: Chris Webb <[email protected]>
1 parent f39434e commit 953da20

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

tests/micropython/viper_ptr16_store_boundary_intbig.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
SET_TEMPLATE = """
44
@micropython.viper
55
def set{off}(dest: ptr16):
6+
saved = dest
67
dest[{off}] = {val}
8+
assert int(saved) == int(dest)
79
set{off}(buffer)
810
print(hex(get_index(buffer, {off})))
911
"""
@@ -15,7 +17,9 @@ def set{off}(dest: ptr16):
1517

1618
@micropython.viper
1719
def set_index(dest: ptr16, i: int, val: uint):
20+
saved = dest
1821
dest[i] = val
22+
assert int(saved) == int(dest)
1923

2024

2125
def get_index(src, i):

tests/micropython/viper_ptr32_store_boundary_intbig.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
SET_TEMPLATE = """
44
@micropython.viper
55
def set{off}(dest: ptr32):
6+
saved = dest
67
dest[{off}] = {val}
8+
assert int(saved) == int(dest)
79
set{off}(buffer)
810
print(hex(get_index(buffer, {off})))
911
"""
@@ -15,7 +17,9 @@ def set{off}(dest: ptr32):
1517

1618
@micropython.viper
1719
def set_index(dest: ptr32, i: int, val: uint):
20+
saved = dest
1821
dest[i] = val
22+
assert int(saved) == int(dest)
1923

2024

2125
def get_index(src, i):

tests/micropython/viper_ptr8_store_boundary_intbig.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
SET_TEMPLATE = """
44
@micropython.viper
55
def set{off}(dest: ptr8):
6+
saved = dest
67
dest[{off}] = {val}
8+
assert int(saved) == int(dest)
79
set{off}(buffer)
810
print(hex(get_index(buffer, {off})))
911
"""
@@ -15,7 +17,9 @@ def set{off}(dest: ptr8):
1517

1618
@micropython.viper
1719
def set_index(dest: ptr8, i: int, val: uint):
20+
saved = dest
1821
dest[i] = val
22+
assert int(dest) == int(saved)
1923

2024

2125
def get_index(src: ptr8, i: int):

0 commit comments

Comments
 (0)