1 1.1 christos # sh testcase for psha <imm> 2 1.1 christos # mach: shdsp 3 1.1 christos # as(shdsp): -defsym sim_cpu=1 -dsp 4 1.1 christos 5 1.1 christos .include "testutils.inc" 6 1.1 christos 7 1.1 christos start 8 1.1 christos 9 1.1 christos psha_imm: ! shift arithmetic, immediate operand 10 1.1 christos set_grs_a5a5 11 1.1 christos lds r0, a0 12 1.1 christos pcopy a0, a1 13 1.1 christos lds r0, x0 14 1.1 christos lds r0, x1 15 1.1 christos lds r0, y0 16 1.1 christos lds r0, y1 17 1.1 christos pcopy x0, m0 18 1.1 christos pcopy y1, m1 19 1.1 christos 20 1.1 christos set_sreg 0x1, a0 21 1.1 christos psha #0, a0 22 1.1 christos assert_sreg 0x1, a0 23 1.1 christos psha #-0, a0 24 1.1 christos assert_sreg 0x1, a0 25 1.1 christos 26 1.1 christos psha #1, a0 27 1.1 christos assert_sreg 0x2, a0 28 1.1 christos psha #-1, a0 29 1.1 christos assert_sreg 0x1, a0 30 1.1 christos 31 1.1 christos psha #2, a0 32 1.1 christos assert_sreg 0x4, a0 33 1.1 christos psha #-2, a0 34 1.1 christos assert_sreg 0x1, a0 35 1.1 christos 36 1.1 christos psha #3, a0 37 1.1 christos assert_sreg 0x8, a0 38 1.1 christos psha #-3, a0 39 1.1 christos assert_sreg 0x1, a0 40 1.1 christos 41 1.1 christos psha #4, a0 42 1.1 christos assert_sreg 0x10, a0 43 1.1 christos psha #-4, a0 44 1.1 christos assert_sreg 0x1, a0 45 1.1 christos 46 1.1 christos psha #5, a0 47 1.1 christos assert_sreg 0x20, a0 48 1.1 christos psha #-5, a0 49 1.1 christos assert_sreg 0x1, a0 50 1.1 christos 51 1.1 christos psha #6, a0 52 1.1 christos assert_sreg 0x40, a0 53 1.1 christos psha #-6, a0 54 1.1 christos assert_sreg 0x1, a0 55 1.1 christos 56 1.1 christos psha #7, a0 57 1.1 christos assert_sreg 0x80, a0 58 1.1 christos psha #-7, a0 59 1.1 christos assert_sreg 0x1, a0 60 1.1 christos 61 1.1 christos psha #8, a0 62 1.1 christos assert_sreg 0x100, a0 63 1.1 christos psha #-8, a0 64 1.1 christos assert_sreg 0x1, a0 65 1.1 christos 66 1.1 christos psha #9, a0 67 1.1 christos assert_sreg 0x200, a0 68 1.1 christos psha #-9, a0 69 1.1 christos assert_sreg 0x1, a0 70 1.1 christos 71 1.1 christos psha #10, a0 72 1.1 christos assert_sreg 0x400, a0 73 1.1 christos psha #-10, a0 74 1.1 christos assert_sreg 0x1, a0 75 1.1 christos 76 1.1 christos psha #11, a0 77 1.1 christos assert_sreg 0x800, a0 78 1.1 christos psha #-11, a0 79 1.1 christos assert_sreg 0x1, a0 80 1.1 christos 81 1.1 christos psha #12, a0 82 1.1 christos assert_sreg 0x1000, a0 83 1.1 christos psha #-12, a0 84 1.1 christos assert_sreg 0x1, a0 85 1.1 christos 86 1.1 christos psha #13, a0 87 1.1 christos assert_sreg 0x2000, a0 88 1.1 christos psha #-13, a0 89 1.1 christos assert_sreg 0x1, a0 90 1.1 christos 91 1.1 christos psha #14, a0 92 1.1 christos assert_sreg 0x4000, a0 93 1.1 christos psha #-14, a0 94 1.1 christos assert_sreg 0x1, a0 95 1.1 christos 96 1.1 christos psha #15, a0 97 1.1 christos assert_sreg 0x8000, a0 98 1.1 christos psha #-15, a0 99 1.1 christos assert_sreg 0x1, a0 100 1.1 christos 101 1.1 christos psha #16, a0 102 1.1 christos assert_sreg 0x10000, a0 103 1.1 christos psha #-16, a0 104 1.1 christos assert_sreg 0x1, a0 105 1.1 christos 106 1.1 christos psha #17, a0 107 1.1 christos assert_sreg 0x20000, a0 108 1.1 christos psha #-17, a0 109 1.1 christos assert_sreg 0x1, a0 110 1.1 christos 111 1.1 christos psha #18, a0 112 1.1 christos assert_sreg 0x40000, a0 113 1.1 christos psha #-18, a0 114 1.1 christos assert_sreg 0x1, a0 115 1.1 christos 116 1.1 christos psha #19, a0 117 1.1 christos assert_sreg 0x80000, a0 118 1.1 christos psha #-19, a0 119 1.1 christos assert_sreg 0x1, a0 120 1.1 christos 121 1.1 christos psha #20, a0 122 1.1 christos assert_sreg 0x100000, a0 123 1.1 christos psha #-20, a0 124 1.1 christos assert_sreg 0x1, a0 125 1.1 christos 126 1.1 christos psha #21, a0 127 1.1 christos assert_sreg 0x200000, a0 128 1.1 christos psha #-21, a0 129 1.1 christos assert_sreg 0x1, a0 130 1.1 christos 131 1.1 christos psha #22, a0 132 1.1 christos assert_sreg 0x400000, a0 133 1.1 christos psha #-22, a0 134 1.1 christos assert_sreg 0x1, a0 135 1.1 christos 136 1.1 christos psha #23, a0 137 1.1 christos assert_sreg 0x800000, a0 138 1.1 christos psha #-23, a0 139 1.1 christos assert_sreg 0x1, a0 140 1.1 christos 141 1.1 christos psha #24, a0 142 1.1 christos assert_sreg 0x1000000, a0 143 1.1 christos psha #-24, a0 144 1.1 christos assert_sreg 0x1, a0 145 1.1 christos 146 1.1 christos psha #25, a0 147 1.1 christos assert_sreg 0x2000000, a0 148 1.1 christos psha #-25, a0 149 1.1 christos assert_sreg 0x1, a0 150 1.1 christos 151 1.1 christos psha #26, a0 152 1.1 christos assert_sreg 0x4000000, a0 153 1.1 christos psha #-26, a0 154 1.1 christos assert_sreg 0x1, a0 155 1.1 christos 156 1.1 christos psha #27, a0 157 1.1 christos assert_sreg 0x8000000, a0 158 1.1 christos psha #-27, a0 159 1.1 christos assert_sreg 0x1, a0 160 1.1 christos 161 1.1 christos psha #28, a0 162 1.1 christos assert_sreg 0x10000000, a0 163 1.1 christos psha #-28, a0 164 1.1 christos assert_sreg 0x1, a0 165 1.1 christos 166 1.1 christos psha #29, a0 167 1.1 christos assert_sreg 0x20000000, a0 168 1.1 christos psha #-29, a0 169 1.1 christos assert_sreg 0x1, a0 170 1.1 christos 171 1.1 christos psha #30, a0 172 1.1 christos assert_sreg 0x40000000, a0 173 1.1 christos psha #-30, a0 174 1.1 christos assert_sreg 0x1, a0 175 1.1 christos 176 1.1 christos psha #31, a0 177 1.1 christos assert_sreg 0x80000000, a0 178 1.1 christos psha #-31, a0 179 1.1 christos assert_sreg 0xffffffff, a0 180 1.1 christos 181 1.1 christos psha #32, a0 182 1.1 christos assert_sreg 0x00000000, a0 183 1.1 christos # I don't grok what should happen here... 184 1.1 christos # psha #-32, a0 185 1.1 christos # assert_sreg 0x0, a0 186 1.1 christos 187 1.1 christos test_grs_a5a5 188 1.1 christos assert_sreg2 0xa5a5a5a5, a1 189 1.1 christos assert_sreg 0xa5a5a5a5, x0 190 1.1 christos assert_sreg 0xa5a5a5a5, x1 191 1.1 christos assert_sreg 0xa5a5a5a5, y0 192 1.1 christos assert_sreg 0xa5a5a5a5, y1 193 1.1 christos assert_sreg2 0xa5a5a5a5, m0 194 1.1 christos assert_sreg2 0xa5a5a5a5, m1 195 1.1 christos 196 1.1 christos 197 1.1 christos pass 198 1.1 christos exit 0 199 1.1 christos 200