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