# 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
