xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/sh/macl.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1*4b169a6bSchristos# sh testcase for mac.l
2*4b169a6bSchristos# mach: all
3*4b169a6bSchristos# as(sh):	-defsym sim_cpu=0
4*4b169a6bSchristos# as(shdsp):	-defsym sim_cpu=1 -dsp
5*4b169a6bSchristos
6*4b169a6bSchristos	.include "testutils.inc"
7*4b169a6bSchristos
8*4b169a6bSchristos	start
9*4b169a6bSchristos	# force S-bit clear
10*4b169a6bSchristos	clrs
11*4b169a6bSchristos
12*4b169a6bSchristosinit:
13*4b169a6bSchristos	# Prime {MACL, MACH} to #1.
14*4b169a6bSchristos	mov #1, r0
15*4b169a6bSchristos	dmulu.l r0, r0
16*4b169a6bSchristos
17*4b169a6bSchristos	# Set up addresses.
18*4b169a6bSchristos	mov.l	pfour00, r0	! 85
19*4b169a6bSchristos	mov.l	pfour12, r1	! 17
20*4b169a6bSchristos
21*4b169a6bSchristostest:
22*4b169a6bSchristos	mac.l @r0+, @r1+
23*4b169a6bSchristos
24*4b169a6bSchristoscheck:
25*4b169a6bSchristos	# Check result.
26*4b169a6bSchristos	assert_sreg	0, mach
27*4b169a6bSchristos	assert_sreg	85*17+1, macl
28*4b169a6bSchristos
29*4b169a6bSchristos	# Ensure post-increment occurred.
30*4b169a6bSchristos	assertreg0	four00+4
31*4b169a6bSchristos	assertreg	four12+4, r1
32*4b169a6bSchristos
33*4b169a6bSchristosdoubleinc:
34*4b169a6bSchristos	mov.l	pfour00, r0
35*4b169a6bSchristos	mac.l	@r0+, @r0+
36*4b169a6bSchristos	assertreg0 four00+8
37*4b169a6bSchristos
38*4b169a6bSchristos
39*4b169a6bSchristos	pass
40*4b169a6bSchristos	exit 0
41*4b169a6bSchristos
42*4b169a6bSchristos	.align 1
43*4b169a6bSchristosfour00:
44*4b169a6bSchristos	.long	85
45*4b169a6bSchristos	.long	2
46*4b169a6bSchristosfour12:
47*4b169a6bSchristos	.long	17
48*4b169a6bSchristos	.long	3
49*4b169a6bSchristos
50*4b169a6bSchristos	.align 2
51*4b169a6bSchristospfour00:
52*4b169a6bSchristos	.long four00
53*4b169a6bSchristospfour12:
54*4b169a6bSchristos	.long four12
55