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 <chris@arachsys.com>
This commit is contained in:
committed by
Damien George
parent
f39434e9fb
commit
953da2080e
@@ -3,7 +3,9 @@
|
||||
SET_TEMPLATE = """
|
||||
@micropython.viper
|
||||
def set{off}(dest: ptr16):
|
||||
saved = dest
|
||||
dest[{off}] = {val}
|
||||
assert int(saved) == int(dest)
|
||||
set{off}(buffer)
|
||||
print(hex(get_index(buffer, {off})))
|
||||
"""
|
||||
@@ -15,7 +17,9 @@ MASK = (1 << (8 * SIZE)) - 1
|
||||
|
||||
@micropython.viper
|
||||
def set_index(dest: ptr16, i: int, val: uint):
|
||||
saved = dest
|
||||
dest[i] = val
|
||||
assert int(saved) == int(dest)
|
||||
|
||||
|
||||
def get_index(src, i):
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
SET_TEMPLATE = """
|
||||
@micropython.viper
|
||||
def set{off}(dest: ptr32):
|
||||
saved = dest
|
||||
dest[{off}] = {val}
|
||||
assert int(saved) == int(dest)
|
||||
set{off}(buffer)
|
||||
print(hex(get_index(buffer, {off})))
|
||||
"""
|
||||
@@ -15,7 +17,9 @@ MASK = (1 << (8 * SIZE)) - 1
|
||||
|
||||
@micropython.viper
|
||||
def set_index(dest: ptr32, i: int, val: uint):
|
||||
saved = dest
|
||||
dest[i] = val
|
||||
assert int(saved) == int(dest)
|
||||
|
||||
|
||||
def get_index(src, i):
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
SET_TEMPLATE = """
|
||||
@micropython.viper
|
||||
def set{off}(dest: ptr8):
|
||||
saved = dest
|
||||
dest[{off}] = {val}
|
||||
assert int(saved) == int(dest)
|
||||
set{off}(buffer)
|
||||
print(hex(get_index(buffer, {off})))
|
||||
"""
|
||||
@@ -15,7 +17,9 @@ MASK = (1 << (8 * SIZE)) - 1
|
||||
|
||||
@micropython.viper
|
||||
def set_index(dest: ptr8, i: int, val: uint):
|
||||
saved = dest
|
||||
dest[i] = val
|
||||
assert int(dest) == int(saved)
|
||||
|
||||
|
||||
def get_index(src: ptr8, i: int):
|
||||
|
||||
Reference in New Issue
Block a user