1# frv testcase for cmqaddhus $FRi,$FRj,$FRj,$CCi,$cond 2# mach: all 3 4 .include "../testutils.inc" 5 6 start 7 8 .global cmqaddhus 9cmqaddhus: 10 set_spr_immed 0x1b1b,cccr 11 12 set_fr_iimmed 0x0000,0x0000,fr10 13 set_fr_iimmed 0xdead,0x0000,fr11 14 set_fr_iimmed 0x0000,0x0000,fr12 15 set_fr_iimmed 0x0000,0xbeef,fr13 16 cmqaddhus fr10,fr12,fr14,cc0,1 17 test_fr_limmed 0x0000,0x0000,fr14 18 test_fr_limmed 0xdead,0xbeef,fr15 19 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 20 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 21 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 22 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 23 24 set_fr_iimmed 0x0000,0xdead,fr10 25 set_fr_iimmed 0x1234,0x5678,fr11 26 set_fr_iimmed 0xbeef,0x0000,fr12 27 set_fr_iimmed 0x1111,0x1111,fr13 28 cmqaddhus fr10,fr12,fr14,cc0,1 29 test_fr_limmed 0xbeef,0xdead,fr14 30 test_fr_limmed 0x2345,0x6789,fr15 31 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 32 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 33 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 34 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 35 36 set_fr_iimmed 0x7ffe,0x7ffe,fr10 37 set_fr_iimmed 0xfffe,0xfffe,fr11 38 set_fr_iimmed 0x0002,0x0001,fr12 39 set_fr_iimmed 0x0001,0x0002,fr13 40 cmqaddhus fr10,fr12,fr14,cc4,1 41 test_fr_limmed 0x8000,0x7fff,fr14 42 test_fr_limmed 0xffff,0xffff,fr15 43 test_spr_bits 0x3c,2,1,msr0 ; msr0.sie is set 44 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 45 test_spr_bits 1,0,1,msr0 ; msr0.aovf set 46 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set 47 48 set_spr_immed 0,msr0 49 set_fr_iimmed 0x0002,0x0001,fr10 50 set_fr_iimmed 0x0001,0x0001,fr11 51 set_fr_iimmed 0xfffe,0xfffe,fr12 52 set_fr_iimmed 0x8000,0x8000,fr13 53 cmqaddhus.p fr10,fr10,fr14,cc4,1 54 cmqaddhus fr12,fr12,fr16,cc4,1 55 test_fr_limmed 0x0004,0x0002,fr14 56 test_fr_limmed 0x0002,0x0002,fr15 57 test_fr_limmed 0xffff,0xffff,fr16 58 test_fr_limmed 0xffff,0xffff,fr17 59 test_spr_bits 0x3c,2,0xf,msr0 ; msr0.sie is set 60 test_spr_bits 2,1,1,msr0 ; msr0.ovf set 61 test_spr_bits 1,0,1,msr0 ; msr0.aovf set 62 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set 63 64 set_spr_immed 0,msr0 65 set_fr_iimmed 0x0000,0x0000,fr10 66 set_fr_iimmed 0xdead,0x0000,fr11 67 set_fr_iimmed 0x0000,0x0000,fr12 68 set_fr_iimmed 0x0000,0xbeef,fr13 69 cmqaddhus fr10,fr12,fr14,cc1,0 70 test_fr_limmed 0x0000,0x0000,fr14 71 test_fr_limmed 0xdead,0xbeef,fr15 72 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 73 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 74 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 75 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 76 77 set_fr_iimmed 0x0000,0xdead,fr10 78 set_fr_iimmed 0x1234,0x5678,fr11 79 set_fr_iimmed 0xbeef,0x0000,fr12 80 set_fr_iimmed 0x1111,0x1111,fr13 81 cmqaddhus fr10,fr12,fr14,cc1,0 82 test_fr_limmed 0xbeef,0xdead,fr14 83 test_fr_limmed 0x2345,0x6789,fr15 84 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 85 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 86 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 87 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 88 89 set_fr_iimmed 0x7ffe,0x7ffe,fr10 90 set_fr_iimmed 0xfffe,0xfffe,fr11 91 set_fr_iimmed 0x0002,0x0001,fr12 92 set_fr_iimmed 0x0001,0x0002,fr13 93 cmqaddhus fr10,fr12,fr14,cc5,0 94 test_fr_limmed 0x8000,0x7fff,fr14 95 test_fr_limmed 0xffff,0xffff,fr15 96 test_spr_bits 0x3c,2,1,msr0 ; msr0.sie is set 97 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 98 test_spr_bits 1,0,1,msr0 ; msr0.aovf set 99 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set 100 101 set_spr_immed 0,msr0 102 set_fr_iimmed 0x0002,0x0001,fr10 103 set_fr_iimmed 0x0001,0x0001,fr11 104 set_fr_iimmed 0xfffe,0xfffe,fr12 105 set_fr_iimmed 0x8000,0x8000,fr13 106 cmqaddhus.p fr10,fr10,fr14,cc5,0 107 cmqaddhus fr12,fr12,fr16,cc5,0 108 test_fr_limmed 0x0004,0x0002,fr14 109 test_fr_limmed 0x0002,0x0002,fr15 110 test_fr_limmed 0xffff,0xffff,fr16 111 test_fr_limmed 0xffff,0xffff,fr17 112 test_spr_bits 0x3c,2,0xf,msr0 ; msr0.sie is set 113 test_spr_bits 2,1,1,msr0 ; msr0.ovf set 114 test_spr_bits 1,0,1,msr0 ; msr0.aovf set 115 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set 116 117 set_fr_iimmed 0x1111,0x1111,fr14 118 set_fr_iimmed 0x2222,0x2222,fr15 119 set_spr_immed 0,msr0 120 set_fr_iimmed 0x0000,0x0000,fr10 121 set_fr_iimmed 0xdead,0x0000,fr11 122 set_fr_iimmed 0x0000,0x0000,fr12 123 set_fr_iimmed 0x0000,0xbeef,fr13 124 cmqaddhus fr10,fr12,fr14,cc0,0 125 test_fr_limmed 0x1111,0x1111,fr14 126 test_fr_limmed 0x2222,0x2222,fr15 127 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 128 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 129 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 130 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 131 132 set_fr_iimmed 0x0000,0xdead,fr10 133 set_fr_iimmed 0x1234,0x5678,fr11 134 set_fr_iimmed 0xbeef,0x0000,fr12 135 set_fr_iimmed 0x1111,0x1111,fr13 136 cmqaddhus fr10,fr12,fr14,cc0,0 137 test_fr_limmed 0x1111,0x1111,fr14 138 test_fr_limmed 0x2222,0x2222,fr15 139 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 140 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 141 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 142 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 143 144 set_fr_iimmed 0x7ffe,0x7ffe,fr10 145 set_fr_iimmed 0xfffe,0xfffe,fr11 146 set_fr_iimmed 0x0002,0x0001,fr12 147 set_fr_iimmed 0x0001,0x0002,fr13 148 cmqaddhus fr10,fr12,fr14,cc4,0 149 test_fr_limmed 0x1111,0x1111,fr14 150 test_fr_limmed 0x2222,0x2222,fr15 151 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 152 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 153 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 154 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 155 156 set_fr_iimmed 0x3333,0x3333,fr16 157 set_fr_iimmed 0x4444,0x4444,fr17 158 set_spr_immed 0,msr0 159 set_fr_iimmed 0x0002,0x0001,fr10 160 set_fr_iimmed 0x0001,0x0001,fr11 161 set_fr_iimmed 0xfffe,0xfffe,fr12 162 set_fr_iimmed 0x8000,0x8000,fr13 163 cmqaddhus.p fr10,fr10,fr14,cc4,0 164 cmqaddhus fr12,fr12,fr16,cc4,0 165 test_fr_limmed 0x1111,0x1111,fr14 166 test_fr_limmed 0x2222,0x2222,fr15 167 test_fr_limmed 0x3333,0x3333,fr16 168 test_fr_limmed 0x4444,0x4444,fr17 169 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 170 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 171 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 172 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 173 174 set_fr_iimmed 0x1111,0x1111,fr14 175 set_fr_iimmed 0x2222,0x2222,fr15 176 set_spr_immed 0,msr0 177 set_fr_iimmed 0x0000,0x0000,fr10 178 set_fr_iimmed 0xdead,0x0000,fr11 179 set_fr_iimmed 0x0000,0x0000,fr12 180 set_fr_iimmed 0x0000,0xbeef,fr13 181 cmqaddhus fr10,fr12,fr14,cc1,1 182 test_fr_limmed 0x1111,0x1111,fr14 183 test_fr_limmed 0x2222,0x2222,fr15 184 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 185 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 186 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 187 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 188 189 set_fr_iimmed 0x0000,0xdead,fr10 190 set_fr_iimmed 0x1234,0x5678,fr11 191 set_fr_iimmed 0xbeef,0x0000,fr12 192 set_fr_iimmed 0x1111,0x1111,fr13 193 cmqaddhus fr10,fr12,fr14,cc1,1 194 test_fr_limmed 0x1111,0x1111,fr14 195 test_fr_limmed 0x2222,0x2222,fr15 196 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 197 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 198 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 199 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 200 201 set_fr_iimmed 0x7ffe,0x7ffe,fr10 202 set_fr_iimmed 0xfffe,0xfffe,fr11 203 set_fr_iimmed 0x0002,0x0001,fr12 204 set_fr_iimmed 0x0001,0x0002,fr13 205 cmqaddhus fr10,fr12,fr14,cc5,1 206 test_fr_limmed 0x1111,0x1111,fr14 207 test_fr_limmed 0x2222,0x2222,fr15 208 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 209 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 210 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 211 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 212 213 set_fr_iimmed 0x3333,0x3333,fr16 214 set_fr_iimmed 0x4444,0x4444,fr17 215 set_spr_immed 0,msr0 216 set_fr_iimmed 0x0002,0x0001,fr10 217 set_fr_iimmed 0x0001,0x0001,fr11 218 set_fr_iimmed 0xfffe,0xfffe,fr12 219 set_fr_iimmed 0x8000,0x8000,fr13 220 cmqaddhus.p fr10,fr10,fr14,cc5,1 221 cmqaddhus fr12,fr12,fr16,cc5,1 222 test_fr_limmed 0x1111,0x1111,fr14 223 test_fr_limmed 0x2222,0x2222,fr15 224 test_fr_limmed 0x3333,0x3333,fr16 225 test_fr_limmed 0x4444,0x4444,fr17 226 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 227 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 228 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 229 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 230 231 set_fr_iimmed 0x1111,0x1111,fr14 232 set_fr_iimmed 0x2222,0x2222,fr15 233 set_spr_immed 0,msr0 234 set_fr_iimmed 0x0000,0x0000,fr10 235 set_fr_iimmed 0xdead,0x0000,fr11 236 set_fr_iimmed 0x0000,0x0000,fr12 237 set_fr_iimmed 0x0000,0xbeef,fr13 238 cmqaddhus fr10,fr12,fr14,cc2,1 239 test_fr_limmed 0x1111,0x1111,fr14 240 test_fr_limmed 0x2222,0x2222,fr15 241 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 242 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 243 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 244 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 245 246 set_fr_iimmed 0x0000,0xdead,fr10 247 set_fr_iimmed 0x1234,0x5678,fr11 248 set_fr_iimmed 0xbeef,0x0000,fr12 249 set_fr_iimmed 0x1111,0x1111,fr13 250 cmqaddhus fr10,fr12,fr14,cc2,0 251 test_fr_limmed 0x1111,0x1111,fr14 252 test_fr_limmed 0x2222,0x2222,fr15 253 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 254 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 255 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 256 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 257 258 set_fr_iimmed 0x7ffe,0x7ffe,fr10 259 set_fr_iimmed 0xfffe,0xfffe,fr11 260 set_fr_iimmed 0x0002,0x0001,fr12 261 set_fr_iimmed 0x0001,0x0002,fr13 262 cmqaddhus fr10,fr12,fr14,cc6,1 263 test_fr_limmed 0x1111,0x1111,fr14 264 test_fr_limmed 0x2222,0x2222,fr15 265 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 266 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 267 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 268 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 269 270 set_fr_iimmed 0x3333,0x3333,fr16 271 set_fr_iimmed 0x4444,0x4444,fr17 272 set_spr_immed 0,msr0 273 set_fr_iimmed 0x0002,0x0001,fr10 274 set_fr_iimmed 0x0001,0x0001,fr11 275 set_fr_iimmed 0xfffe,0xfffe,fr12 276 set_fr_iimmed 0x8000,0x8000,fr13 277 cmqaddhus.p fr10,fr10,fr14,cc6,0 278 cmqaddhus fr12,fr12,fr16,cc6,1 279 test_fr_limmed 0x1111,0x1111,fr14 280 test_fr_limmed 0x2222,0x2222,fr15 281 test_fr_limmed 0x3333,0x3333,fr16 282 test_fr_limmed 0x4444,0x4444,fr17 283 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 284 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 285 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 286 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 287 288 set_fr_iimmed 0x1111,0x1111,fr14 289 set_fr_iimmed 0x2222,0x2222,fr15 290 set_spr_immed 0,msr0 291 set_fr_iimmed 0x0000,0x0000,fr10 292 set_fr_iimmed 0xdead,0x0000,fr11 293 set_fr_iimmed 0x0000,0x0000,fr12 294 set_fr_iimmed 0x0000,0xbeef,fr13 295 cmqaddhus fr10,fr12,fr14,cc3,1 296 test_fr_limmed 0x1111,0x1111,fr14 297 test_fr_limmed 0x2222,0x2222,fr15 298 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 299 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 300 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 301 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 302 303 set_fr_iimmed 0x0000,0xdead,fr10 304 set_fr_iimmed 0x1234,0x5678,fr11 305 set_fr_iimmed 0xbeef,0x0000,fr12 306 set_fr_iimmed 0x1111,0x1111,fr13 307 cmqaddhus fr10,fr12,fr14,cc3,0 308 test_fr_limmed 0x1111,0x1111,fr14 309 test_fr_limmed 0x2222,0x2222,fr15 310 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 311 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 312 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 313 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 314 315 set_fr_iimmed 0x7ffe,0x7ffe,fr10 316 set_fr_iimmed 0xfffe,0xfffe,fr11 317 set_fr_iimmed 0x0002,0x0001,fr12 318 set_fr_iimmed 0x0001,0x0002,fr13 319 cmqaddhus fr10,fr12,fr14,cc7,1 320 test_fr_limmed 0x1111,0x1111,fr14 321 test_fr_limmed 0x2222,0x2222,fr15 322 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 323 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 324 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 325 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 326 327 set_fr_iimmed 0x3333,0x3333,fr16 328 set_fr_iimmed 0x4444,0x4444,fr17 329 set_spr_immed 0,msr0 330 set_fr_iimmed 0x0002,0x0001,fr10 331 set_fr_iimmed 0x0001,0x0001,fr11 332 set_fr_iimmed 0xfffe,0xfffe,fr12 333 set_fr_iimmed 0x8000,0x8000,fr13 334 cmqaddhus.p fr10,fr10,fr14,cc7,0 335 cmqaddhus fr12,fr12,fr16,cc7,1 336 test_fr_limmed 0x1111,0x1111,fr14 337 test_fr_limmed 0x2222,0x2222,fr15 338 test_fr_limmed 0x3333,0x3333,fr16 339 test_fr_limmed 0x4444,0x4444,fr17 340 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 341 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 342 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 343 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 344 345 pass 346