diff options
author | = <peter@hinch.me.uk> | 2015-04-14 13:14:57 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-04-19 15:47:05 +0100 |
commit | 5008972fefdd0d8cad214d4c0a2fb3daea0ac3c8 (patch) | |
tree | 3fb510017d83a6862fd6b16834ac96653ef3d8aa /tests/inlineasm/asmfpsqrt.py | |
parent | d8cbbcaa9d057f210b192bde68fde551972e426c (diff) | |
download | micropython-5008972fefdd0d8cad214d4c0a2fb3daea0ac3c8.tar.gz micropython-5008972fefdd0d8cad214d4c0a2fb3daea0ac3c8.zip |
py/inlinethumb: Support for core floating point instructions.
Adds support for the following Thumb2 VFP instructions, via the option
MICROPY_EMIT_INLINE_THUMB_FLOAT:
vcmp
vsqrt
vneg
vcvt_f32_to_s32
vcvt_s32_to_f32
vmrs
vmov
vldr
vstr
vadd
vsub
vmul
vdiv
Diffstat (limited to 'tests/inlineasm/asmfpsqrt.py')
-rw-r--r-- | tests/inlineasm/asmfpsqrt.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/inlineasm/asmfpsqrt.py b/tests/inlineasm/asmfpsqrt.py new file mode 100644 index 0000000000..f2c2d3a954 --- /dev/null +++ b/tests/inlineasm/asmfpsqrt.py @@ -0,0 +1,15 @@ +# test vsqrt, vneg +@micropython.asm_thumb # r0 = -(int)(sqrt(r0)*r1) +def sqrt_test(r0, r1): + vmov(s1, r0) + vcvt_f32_s32(s1, s1) + vsqrt(s1, s1) + vmov(s2, r1) + vcvt_f32_s32(s2, s2) + vmul(s0, s1, s2) + vneg(s7, s0) + vcvt_s32_f32(s31, s7) + vmov(r0, s31) + +print(sqrt_test(256, 10)) + |