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