3 .include "testutils.inc"
5 ; Check for various non-arithmetic insns that C and V are not affected
6 ; on v32 (where they were on v10), as the generic tests don't cover
7 ; that; they are cleared before testing.
9 ; First, a macro testing that VC are unaffected, not counting previous
39 ; Use the above, but initialize the non-parameter operand to a value.
40 .macro nonvc1 insn val op
45 ; Use the above, iterating over various values.
47 .irp p,0,1,2,31,32,63,64,127,128,255,256,32767,32768,65535,65536,0x7fffffff,0x80000000
53 .macro nonvc2q insn op min=-63 max=63
54 .if (\op >= \min) && (\op <= \max)
59 ; The above, for each .b .w .d insn variant.
60 .macro nonvcbwd insn op
66 ; For various insns with register, dword constant and memory operands.
67 .macro nonvcitermcd op=[$r4]
73 ; Similar, for various insns with register, word constant and memory operands.
74 .macro nonvcitermcw op=[$r4]
83 ; Similar, for various insns with register, byte constant and memory operands.
84 .macro nonvcitermcb op=[$r4]
93 ; Similar, for insns with quick constant operands.
97 nonvc2q andq,\op,min=-32,max=31
98 nonvc2q asrq,\op,min=0,max=31
99 nonvc2q lsrq,\op,min=0,max=31
100 nonvc2q orq,\op,min=-32,max=31
101 nonvc2q moveq,\op,min=-32,max=31
104 ; Similar, for insns with register operands.
118 ; Test all applicable constant, register and memory variants of a value.
121 .if (\op <= 31) && (\op >= -32)
123 .elseif (\op <= 255) && (\op >= -128)
126 .elseif (\op <= 65535) && (\op >= -32767)
145 ; As above but negation too.
152 ; Set up for the actual test.
163 .irp x,0,1,2,31,32,63,64,127,128,255,256,32767,32768,65535,65536,0x7fffffff,0x80000000