blob: ef2dfa6e929a2d5680ec2022b2fb3e7f31d3f666 [file] [log] [blame]
# 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