1// reg-based SHIFT test program. 2# mach: bfin 3 4.include "testutils.inc" 5 start 6 7 8// Test FDEP with no sign extension 9 10 R0.L = 0xdead; 11 R0.H = 0x1234; 12 R1.L = 0x0c08; // pos=12 len=8 13 R1.H = 0x00ff; 14 R7 = DEPOSIT( R0, R1 ); 15 DBGA ( R7.L , 0xfead ); 16 DBGA ( R7.H , 0x123f ); 17 18 R0.L = 0xdead; 19 R0.H = 0x1234; 20 R1.L = 0x0c04; // pos=12 len=4 21 R1.H = 0x00ff; 22 R7 = DEPOSIT( R0, R1 ); 23 DBGA ( R7.L , 0xfead ); 24 DBGA ( R7.H , 0x1234 ); 25 26 R0.L = 0xdead; 27 R0.H = 0x1234; 28 R1.L = 0x0c05; // pos=12 len=5 29 R1.H = 0x00ff; 30 R7 = DEPOSIT( R0, R1 ); 31 DBGA ( R7.L , 0xfead ); 32 DBGA ( R7.H , 0x1235 ); 33 34 R0.L = 0xdead; 35 R0.H = 0x1234; 36 R1.L = 0x0010; // pos=0 len=16 37 R1.H = 0xffff; 38 R7 = DEPOSIT( R0, R1 ); 39 DBGA ( R7.L , 0xffff ); 40 DBGA ( R7.H , 0x1234 ); 41 42 R0.L = 0xdead; 43 R0.H = 0x1234; 44 R1.L = 0x0011; // pos=0 len=17 45 R1.H = 0xffff; 46 R7 = DEPOSIT( R0, R1 ); 47 DBGA ( R7.L , 0xffff ); 48 DBGA ( R7.H , 0x1234 ); 49 50 R0.L = 0xdead; 51 R0.H = 0x1234; 52 R1.L = 0x0114; // pos=1 len=20 53 R1.H = 0xffff; 54 R7 = DEPOSIT( R0, R1 ); 55 DBGA ( R7.L , 0xffff ); 56 DBGA ( R7.H , 0x1235 ); 57 58 R0.L = 0xdead; 59 R0.H = 0x1234; 60 R1.L = 0x001f; // pos=0 len=31 61 R1.H = 0xffff; 62 R7 = DEPOSIT( R0, R1 ); 63 DBGA ( R7.L , 0xffff ); 64 DBGA ( R7.H , 0x1234 ); 65 66 R0.L = 0xdead; 67 R0.H = 0x1234; 68 R1.L = 0x1c04; // pos=28 len=4 69 R1.H = 0xffff; 70 R7 = DEPOSIT( R0, R1 ); 71 DBGA ( R7.L , 0xdead ); 72 DBGA ( R7.H , 0xf234 ); 73 74 R0.L = 0xdead; 75 R0.H = 0x0234; 76 R1.L = 0x1d04; // pos=29 len=4 77 R1.H = 0xffff; 78 R7 = DEPOSIT( R0, R1 ); 79 DBGA ( R7.L , 0xdead ); 80 DBGA ( R7.H , 0xe234 ); 81 82 R0.L = 0xdead; 83 R0.H = 0x0234; 84 R1.L = 0x1f04; // pos=31 len=4 85 R1.H = 0xffff; 86 R7 = DEPOSIT( R0, R1 ); 87 DBGA ( R7.L , 0xdead ); 88 DBGA ( R7.H , 0x8234 ); 89 90 R0.L = 0xdead; 91 R0.H = 0x0234; 92 R1.L = 0x2004; // pos=32 len=4, same as pos=0 len=4 93 R1.H = 0xffff; 94 R7 = DEPOSIT( R0, R1 ); 95 DBGA ( R7.L , 0xdeaf ); 96 DBGA ( R7.H , 0x0234 ); 97 98// Test FDEP with sign extension 99 100 R0.L = 0xdead; 101 R0.H = 0x1234; 102 R1.L = 0x0c08; // pos=12 len=8 103 R1.H = 0x00ff; 104 R7 = DEPOSIT( R0, R1 ) (X); 105 DBGA ( R7.L , 0xfead ); 106 DBGA ( R7.H , 0xffff ); 107 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 108 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 ); 109 110 R0.L = 0xdead; 111 R0.H = 0x1234; 112 R1.L = 0x0c08; // pos=12 len=8 113 R1.H = 0x007f; 114 R7 = DEPOSIT( R0, R1 ) (X); 115 DBGA ( R7.L , 0xfead ); 116 DBGA ( R7.H , 0x0007 ); 117 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 118 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 ); 119 120 R0.L = 0xdea0; 121 R0.H = 0x1234; 122 R1.L = 0x0110; // pos=1 len=16 123 R1.H = 0xffff; 124 R7 = DEPOSIT( R0, R1 ) (X); 125 DBGA ( R7.L , 0xfffe ); 126 DBGA ( R7.H , 0xffff ); 127 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 128 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 ); 129 130 R0.L = 0xdea0; 131 R0.H = 0x1234; 132 R1.L = 0x0101; // pos=1 len=1 133 R1.H = 0xffff; 134 R7 = DEPOSIT( R0, R1 ) (X); 135 DBGA ( R7.L , 0xfffe ); 136 DBGA ( R7.H , 0xffff ); 137 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 138 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 ); 139 140 R0.L = 0xdea0; 141 R0.H = 0x1234; 142 R1.L = 0x0102; // pos=1 len=2 143 R1.H = 0x0001; 144 R7 = DEPOSIT( R0, R1 ) (X); 145 DBGA ( R7.L , 0x0002 ); 146 DBGA ( R7.H , 0x0000 ); 147 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 148 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 ); 149 150 R0.L = 0xdea0; 151 R0.H = 0x1234; 152 R1.L = 0x0002; // pos=0 len=2 153 R1.H = 0x0001; 154 R7 = DEPOSIT( R0, R1 ) (X); 155 DBGA ( R7.L , 0x0001 ); 156 DBGA ( R7.H , 0x0000 ); 157 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 158 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 ); 159 160 R0.L = 0xdea0; 161 R0.H = 0x1234; 162 R1.L = 0x0000; // pos=0 len=0 163 R1.H = 0x000f; 164 R7 = DEPOSIT( R0, R1 ) (X); 165 DBGA ( R7.L , 0x0000 ); 166 DBGA ( R7.H , 0x0000 ); 167 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 ); 168 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 ); 169 170 pass 171