1*1424dfb3Schristos# source file to test illegal mips64r2 instructions 2*1424dfb3Schristos 3*1424dfb3Schristos .set noreorder 4*1424dfb3Schristos .set noat 5*1424dfb3Schristos 6*1424dfb3Schristos .text 7*1424dfb3Schristostext_label: 8*1424dfb3Schristos 9*1424dfb3Schristos # dext macro position/size checks 10*1424dfb3Schristos 11*1424dfb3Schristos # constraint: 0 <= pos < 64 12*1424dfb3Schristos dext $4, $5, -1, 1 # error (position) 13*1424dfb3Schristos dext $4, $5, 0, 1 14*1424dfb3Schristos dext $4, $5, 63, 1 15*1424dfb3Schristos dext $4, $5, 64, 1 # error (position) 16*1424dfb3Schristos 17*1424dfb3Schristos # constraint: 0 < size <= 64 18*1424dfb3Schristos dext $4, $5, 0, 0 # error (size) 19*1424dfb3Schristos dext $4, $5, 0, 1 20*1424dfb3Schristos dext $4, $5, 0, 64 21*1424dfb3Schristos dext $4, $5, 0, 65 # error (size) 22*1424dfb3Schristos 23*1424dfb3Schristos # constraint: 0 < (pos+size) <= 64 24*1424dfb3Schristos dext $4, $5, 0, 1 25*1424dfb3Schristos dext $4, $5, 0, 2 26*1424dfb3Schristos dext $4, $5, 0, 63 27*1424dfb3Schristos dext $4, $5, 0, 64 28*1424dfb3Schristos dext $4, $5, 1, 1 29*1424dfb3Schristos dext $4, $5, 1, 2 30*1424dfb3Schristos dext $4, $5, 1, 63 31*1424dfb3Schristos dext $4, $5, 1, 64 # error (size) 32*1424dfb3Schristos dext $4, $5, 63, 1 33*1424dfb3Schristos dext $4, $5, 63, 2 # error (size) 34*1424dfb3Schristos dext $4, $5, 63, 63 # error (size) 35*1424dfb3Schristos dext $4, $5, 63, 64 # error (size) 36*1424dfb3Schristos 37*1424dfb3Schristos # dextm instruction position/size checks 38*1424dfb3Schristos 39*1424dfb3Schristos # constraint: 0 <= pos < 32 40*1424dfb3Schristos dextm $4, $5, -1, 33 # error (position) 41*1424dfb3Schristos dextm $4, $5, 0, 33 42*1424dfb3Schristos dextm $4, $5, 31, 33 43*1424dfb3Schristos dextm $4, $5, 32, 33 # error (position) 44*1424dfb3Schristos 45*1424dfb3Schristos # constraint: 32 < size <= 64 46*1424dfb3Schristos dextm $4, $5, 0, 32 # error (size) 47*1424dfb3Schristos dextm $4, $5, 0, 33 48*1424dfb3Schristos dextm $4, $5, 0, 64 49*1424dfb3Schristos dextm $4, $5, 0, 65 # error (size) 50*1424dfb3Schristos 51*1424dfb3Schristos # constraint: 32 < (pos+size) <= 64 52*1424dfb3Schristos dextm $4, $5, 0, 33 53*1424dfb3Schristos dextm $4, $5, 0, 34 54*1424dfb3Schristos dextm $4, $5, 0, 63 55*1424dfb3Schristos dextm $4, $5, 0, 64 56*1424dfb3Schristos dextm $4, $5, 1, 33 57*1424dfb3Schristos dextm $4, $5, 1, 34 58*1424dfb3Schristos dextm $4, $5, 1, 63 59*1424dfb3Schristos dextm $4, $5, 1, 64 # error (size) 60*1424dfb3Schristos dextm $4, $5, 31, 33 61*1424dfb3Schristos dextm $4, $5, 31, 34 # error (size) 62*1424dfb3Schristos dextm $4, $5, 31, 63 # error (size) 63*1424dfb3Schristos dextm $4, $5, 31, 64 # error (size) 64*1424dfb3Schristos 65*1424dfb3Schristos # dextu instruction position/size checks 66*1424dfb3Schristos 67*1424dfb3Schristos # constraint: 32 <= pos < 64 68*1424dfb3Schristos dextu $4, $5, 31, 1 # error (position) 69*1424dfb3Schristos dextu $4, $5, 32, 1 70*1424dfb3Schristos dextu $4, $5, 63, 1 71*1424dfb3Schristos dextu $4, $5, 64, 1 # error (position) 72*1424dfb3Schristos 73*1424dfb3Schristos # constraint: 0 < size <= 32 74*1424dfb3Schristos dextu $4, $5, 32, 0 # error (size) 75*1424dfb3Schristos dextu $4, $5, 32, 1 76*1424dfb3Schristos dextu $4, $5, 32, 32 77*1424dfb3Schristos dextu $4, $5, 32, 33 # error (size) 78*1424dfb3Schristos 79*1424dfb3Schristos # constraint: 32 < (pos+size) <= 64 80*1424dfb3Schristos dextu $4, $5, 32, 1 81*1424dfb3Schristos dextu $4, $5, 32, 2 82*1424dfb3Schristos dextu $4, $5, 32, 31 83*1424dfb3Schristos dextu $4, $5, 32, 32 84*1424dfb3Schristos dextu $4, $5, 33, 1 85*1424dfb3Schristos dextu $4, $5, 33, 2 86*1424dfb3Schristos dextu $4, $5, 33, 31 87*1424dfb3Schristos dextu $4, $5, 33, 32 # error (size) 88*1424dfb3Schristos dextu $4, $5, 63, 1 89*1424dfb3Schristos dextu $4, $5, 63, 2 # error (size) 90*1424dfb3Schristos dextu $4, $5, 63, 31 # error (size) 91*1424dfb3Schristos dextu $4, $5, 63, 32 # error (size) 92*1424dfb3Schristos 93*1424dfb3Schristos # dins macro position/size checks 94*1424dfb3Schristos 95*1424dfb3Schristos # constraint: 0 <= pos < 64 96*1424dfb3Schristos dins $4, $5, -1, 1 # error (position) 97*1424dfb3Schristos dins $4, $5, 0, 1 98*1424dfb3Schristos dins $4, $5, 63, 1 99*1424dfb3Schristos dins $4, $5, 64, 1 # error (position) 100*1424dfb3Schristos 101*1424dfb3Schristos # constraint: 0 < size <= 64 102*1424dfb3Schristos dins $4, $5, 0, 0 # error (size) 103*1424dfb3Schristos dins $4, $5, 0, 1 104*1424dfb3Schristos dins $4, $5, 0, 64 105*1424dfb3Schristos dins $4, $5, 0, 65 # error (size) 106*1424dfb3Schristos 107*1424dfb3Schristos # constraint: 0 < (pos+size) <= 64 108*1424dfb3Schristos dins $4, $5, 0, 1 109*1424dfb3Schristos dins $4, $5, 0, 2 110*1424dfb3Schristos dins $4, $5, 0, 63 111*1424dfb3Schristos dins $4, $5, 0, 64 112*1424dfb3Schristos dins $4, $5, 1, 1 113*1424dfb3Schristos dins $4, $5, 1, 2 114*1424dfb3Schristos dins $4, $5, 1, 63 115*1424dfb3Schristos dins $4, $5, 1, 64 # error (size) 116*1424dfb3Schristos dins $4, $5, 63, 1 117*1424dfb3Schristos dins $4, $5, 63, 2 # error (size) 118*1424dfb3Schristos dins $4, $5, 63, 63 # error (size) 119*1424dfb3Schristos dins $4, $5, 63, 64 # error (size) 120*1424dfb3Schristos 121*1424dfb3Schristos # dinsm instruction position/size checks 122*1424dfb3Schristos 123*1424dfb3Schristos # constraint: 0 <= pos < 32 124*1424dfb3Schristos dinsm $4, $5, -1, 33 # error (position) 125*1424dfb3Schristos dinsm $4, $5, 0, 33 126*1424dfb3Schristos dinsm $4, $5, 31, 33 127*1424dfb3Schristos dinsm $4, $5, 32, 33 # error (position) 128*1424dfb3Schristos 129*1424dfb3Schristos # constraint: 2 <= size <= 64 130*1424dfb3Schristos dinsm $4, $5, 31, 1 # error (size) 131*1424dfb3Schristos dinsm $4, $5, 31, 2 132*1424dfb3Schristos dinsm $4, $5, 0, 64 133*1424dfb3Schristos dinsm $4, $5, 0, 65 # error (size) 134*1424dfb3Schristos 135*1424dfb3Schristos # constraint: 32 < (pos+size) <= 64 136*1424dfb3Schristos dinsm $4, $5, 0, 2 # error (size) 137*1424dfb3Schristos dinsm $4, $5, 0, 3 # error (size) 138*1424dfb3Schristos dinsm $4, $5, 0, 63 139*1424dfb3Schristos dinsm $4, $5, 0, 64 140*1424dfb3Schristos dinsm $4, $5, 1, 2 # error (size) 141*1424dfb3Schristos dinsm $4, $5, 1, 3 # error (size) 142*1424dfb3Schristos dinsm $4, $5, 1, 63 143*1424dfb3Schristos dinsm $4, $5, 1, 64 # error (size) 144*1424dfb3Schristos dinsm $4, $5, 30, 2 # error (size) 145*1424dfb3Schristos dinsm $4, $5, 30, 3 146*1424dfb3Schristos dinsm $4, $5, 30, 63 # error (size) 147*1424dfb3Schristos dinsm $4, $5, 30, 64 # error (size) 148*1424dfb3Schristos dinsm $4, $5, 31, 2 149*1424dfb3Schristos dinsm $4, $5, 31, 3 150*1424dfb3Schristos dinsm $4, $5, 31, 63 # error (size) 151*1424dfb3Schristos dinsm $4, $5, 31, 64 # error (size) 152*1424dfb3Schristos 153*1424dfb3Schristos # dinsu instruction position/size checks 154*1424dfb3Schristos 155*1424dfb3Schristos # constraint: 32 <= pos < 64 156*1424dfb3Schristos dinsu $4, $5, 31, 1 # error (position) 157*1424dfb3Schristos dinsu $4, $5, 32, 1 158*1424dfb3Schristos dinsu $4, $5, 63, 1 159*1424dfb3Schristos dinsu $4, $5, 64, 1 # error (position) 160*1424dfb3Schristos 161*1424dfb3Schristos # constraint: 1 <= size <= 32 162*1424dfb3Schristos dinsu $4, $5, 32, 0 # error (size) 163*1424dfb3Schristos dinsu $4, $5, 32, 1 164*1424dfb3Schristos dinsu $4, $5, 32, 32 165*1424dfb3Schristos dinsu $4, $5, 32, 33 # error (size) 166*1424dfb3Schristos 167*1424dfb3Schristos # constraint: 32 < (pos+size) <= 64 168*1424dfb3Schristos dinsu $4, $5, 32, 1 169*1424dfb3Schristos dinsu $4, $5, 32, 2 170*1424dfb3Schristos dinsu $4, $5, 32, 31 171*1424dfb3Schristos dinsu $4, $5, 32, 32 172*1424dfb3Schristos dinsu $4, $5, 33, 1 173*1424dfb3Schristos dinsu $4, $5, 33, 2 174*1424dfb3Schristos dinsu $4, $5, 33, 31 175*1424dfb3Schristos dinsu $4, $5, 33, 32 # error (size) 176*1424dfb3Schristos dinsu $4, $5, 62, 1 177*1424dfb3Schristos dinsu $4, $5, 62, 2 178*1424dfb3Schristos dinsu $4, $5, 62, 31 # error (size) 179*1424dfb3Schristos dinsu $4, $5, 62, 32 # error (size) 180*1424dfb3Schristos dinsu $4, $5, 63, 1 181*1424dfb3Schristos dinsu $4, $5, 63, 2 # error (size) 182*1424dfb3Schristos dinsu $4, $5, 63, 31 # error (size) 183*1424dfb3Schristos dinsu $4, $5, 63, 32 # error (size) 184*1424dfb3Schristos 185*1424dfb3Schristos# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... 186*1424dfb3Schristos .space 8 187