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:
parent
f39434e9fb
commit
953da2080e
3 changed files with 12 additions and 0 deletions
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in a new issue