# sh testcase for mac.l @${rm}+, @${rn}+ # mach: all # as: -isa=shcompact # ld: -m shelf32 .include "compact/testutils.inc" start # force S-bit clear clrs # Store some magic numbers in memory. mov #40, r1 shll8 r1 mov #85, r0 mov.l r0, @r1 # Keep for later. mov r1, r10 store2: mov #40, r1 shll8 r1 add #12, r1 mov #17, r0 mov.l r0, @r1 # Keep for later. mov r1, r11 init: # Set up addresses. mov #40, r1 shll8 r1 mov #40, r2 shll8 r2 add #12, r2 # Prime {MACL, MACH} to #1. mov #1, r3 dmulu.l r3, r3 test: mac.l @r1+, @r2+ check: # Check result. sts mach, r5 assert r5, #0 mov #5, r0 shll8 r0 or #166, r0 sts macl, r6 cmp/eq r6, r0 bf wrong # Ensure post-increment occurred. add #4, r10 cmp/eq r10, r1 bf wrong add #4, r11 cmp/eq r11, r2 bf wrong doubleinc: mov #40, r0 shll8 r0 mov r0, r1 mac.l @r0+, @r0+ add #16, r1 cmp/eq r0, r1 bf wrong okay: pass wrong: fail