56 lines
743 B
ArmAsm
56 lines
743 B
ArmAsm
# sh testcase for mac.w
|
|
# mach: all
|
|
# as(sh): -defsym sim_cpu=0
|
|
# as(shdsp): -defsym sim_cpu=1 -dsp
|
|
|
|
.include "testutils.inc"
|
|
|
|
start
|
|
set_grs_a5a5
|
|
|
|
# Prime {MACL, MACH} to #1.
|
|
mov #1, r0
|
|
dmulu.l r0, r0
|
|
|
|
# Set up addresses.
|
|
mov.l pfour00, r0 ! 85
|
|
mov.l pfour12, r1 ! 17
|
|
|
|
test:
|
|
mac.w @r0+, @r1+ ! MAC = 85 * 17 + 1
|
|
|
|
check:
|
|
# Check result.
|
|
assert_sreg 0, mach
|
|
assert_sreg 85*17+1, macl
|
|
|
|
# Ensure post-increment occurred.
|
|
assertreg0 four00+2
|
|
assertreg four12+2, r1
|
|
|
|
doubleinc:
|
|
mov.l pfour00, r0
|
|
mac.w @r0+, @r0+
|
|
assertreg0 four00+4
|
|
|
|
set_greg 0xa5a5a5a5, r0
|
|
set_greg 0xa5a5a5a5, r1
|
|
|
|
test_grs_a5a5
|
|
|
|
pass
|
|
exit 0
|
|
|
|
.align 2
|
|
four00:
|
|
.word 85
|
|
.word 2
|
|
four12:
|
|
.word 17
|
|
.word 3
|
|
|
|
|
|
pfour00:
|
|
.long four00
|
|
pfour12:
|
|
.long four12
|