# sh testcase for muls.w $rm, $rn -*- Asm -*- # mach: all # as: -isa=shcompact # ld: -m shelf32 .include "compact/testutils.inc" start sts mach, r7 .global mulsw zero: mov #0, r0 mov #1, r1 muls.w r0, r1 # Check the result. sts macl, r3 mov #0, r4 cmp/eq r3, r4 bf wrong sxs: # Small * small. mov #1, r0 mov #2, r1 muls.w r0, r1 # Check the result. sts macl, r3 mov #2, r4 cmp/eq r3, r4 bf wrong sxl: # Small * large. mov #1, r0 mov #255, r1 shll8 r1 muls.w r0, r1 # Check the result. sts macl, r3 mov #0, r4 not r4, r4 shll8 r4 cmp/eq r3, r4 bf wrong lxs: # Large * small. mov #255, r0 shll8 r0 mov #1, r1 muls.w r0, r1 # Check the result. sts macl, r3 mov #0, r4 not r4, r4 shll8 r4 cmp/eq r3, r4 bf wrong lxl: # Large * large. mov #255, r0 shll8 r0 mov #255, r1 shll8 r1 muls.w r0, r1 # Check the result. sts macl, r3 mov #1, r4 shll16 r4 cmp/eq r3, r4 bf wrong invariant: # Ensure MACH is invariant. sts mach, r8 cmp/eq r7, r8 bf wrong okay: pass wrong: fail