1 // Test r4 = ROT (r2 by r3);
4 .include "testutils.inc"
13 // 8000 0001 -> 0000 0002 cc=1
18 DBGA ( R6.L , 0x0002 );
19 DBGA ( R6.H , 0x0000 );
21 DBGA ( R7.L , 0x0001 );
25 // 8000 0001 -> 4000 0000 cc=1
28 R1.L = 0xffff; // check alternate mechanism for immediates
31 DBGA ( R6.L , 0x0000 );
32 DBGA ( R6.H , 0x4000 );
34 DBGA ( R7.L , 0x0001 );
37 // right by largest positive magnitude of 31
38 // 8000 0001 -> a000 0000 cc=0
43 DBGA ( R6.L , 0x0000 );
44 DBGA ( R6.H , 0xa000 );
46 DBGA ( R7.L , 0x0000 );
49 // right by largest positive magnitude of 31 with cc=1
50 // 8000 0001 cc=1 -> a000 0000 cc=0
55 DBGA ( R6.L , 0x0000 );
56 DBGA ( R6.H , 0xe000 );
58 DBGA ( R7.L , 0x0000 );
61 // right by largest negative magnitude of -31
62 // 8000 0001 -> 0000 0005 cc=0
67 DBGA ( R6.L , 0x0005 );
68 DBGA ( R6.H , 0x0000 );
70 DBGA ( R7.L , 0x0000 );
73 // right by largest negative magnitude of -31 with cc=1
74 // 8000 0001 cc=1 -> 0000 0007 cc=0
79 DBGA ( R6.L , 0x0007 );
80 DBGA ( R6.H , 0x0000 );
82 DBGA ( R7.L , 0x0000 );
86 // 8000 0001 cc=1 -> 0000 00e0 cc=0
91 DBGA ( R6.L , 0x00e0 );
92 DBGA ( R6.H , 0x0000 );
94 DBGA ( R7.L , 0x0000 );
97 // 8000 0001 -> 8000 0000
102 DBGA ( R6.L , 0x0001 );
103 DBGA ( R6.H , 0x8000 );
105 DBGA ( R7.L , 0x0001 );
107 // rot by 0b1100 0001 is the same as by 1 (mask 6 bits)
108 // 8000 0001 -> 0000 0002 cc=1
113 DBGA ( R6.L , 0x0002 );
114 DBGA ( R6.H , 0x0000 );
116 DBGA ( R7.L , 0x0001 );