diff options
| author | = | 2015-04-14 13:14:57 +0100 |
|---|---|---|
| committer | Damien George | 2015-04-19 15:47:05 +0100 |
| commit | 5008972fefdd0d8cad214d4c0a2fb3daea0ac3c8 (patch) | |
| tree | 3fb510017d83a6862fd6b16834ac96653ef3d8aa /tests/inlineasm/asmfpsqrt.py | |
| parent | d8cbbcaa9d057f210b192bde68fde551972e426c (diff) | |
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 000000000..f2c2d3a95 --- /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)) + |
