summaryrefslogtreecommitdiff
path: root/tests/micropython/viper_ptr16_load.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-10-12 16:59:29 +0100
committerDamien George <damien.p.george@gmail.com>2014-10-12 16:59:29 +0100
commit91cfd414c052179ad41755cc7e5085be1a365c2d (patch)
tree6ca19f158f2df040955b077c801be03e604644fe /tests/micropython/viper_ptr16_load.py
parent1ef2348df0c15f9924d3b5be798fd20805ccd5aa (diff)
py: Implement native load for viper.
Viper can now do: ptr8(buf)[0], which loads a byte from a buffer using machine instructions.
Diffstat (limited to 'tests/micropython/viper_ptr16_load.py')
-rw-r--r--tests/micropython/viper_ptr16_load.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/micropython/viper_ptr16_load.py b/tests/micropython/viper_ptr16_load.py
new file mode 100644
index 000000000..06ce7db15
--- /dev/null
+++ b/tests/micropython/viper_ptr16_load.py
@@ -0,0 +1,18 @@
+# test loading from ptr16 type
+# only works on little endian machines
+
+@micropython.viper
+def get(src:ptr16) -> int:
+ return src[0]
+
+@micropython.viper
+def memadd(src:ptr16, n:int) -> int:
+ sum = 0
+ for i in range(n):
+ sum += src[i]
+ return sum
+
+b = bytearray(b'1234')
+print(b)
+print(get(b))
+print(memadd(b, 2))