1*3e12c5d1SDavid du Colombier/* load instructions */ 2*3e12c5d1SDavid du Colombier 3*3e12c5d1SDavid du Colombier LDSB MOVB x, R 4*3e12c5d1SDavid du Colombier LDSBA MOVB x, R, asi 5*3e12c5d1SDavid du Colombier LDSH MOVH x, R 6*3e12c5d1SDavid du Colombier LDSHA MOVH x, R, asi 7*3e12c5d1SDavid du Colombier LDUB MOVBU x, R 8*3e12c5d1SDavid du Colombier LDUBA MOVBU x, R, asi 9*3e12c5d1SDavid du Colombier LDUH MOVHU x, R 10*3e12c5d1SDavid du Colombier LDUHA MOVHU x, R, asi 11*3e12c5d1SDavid du Colombier LD MOVW x, R 12*3e12c5d1SDavid du Colombier LDA MOVW x, R, asi 13*3e12c5d1SDavid du Colombier LDD MOVD x, R 14*3e12c5d1SDavid du Colombier LDDA MOVD x, R, asi 15*3e12c5d1SDavid du Colombier 16*3e12c5d1SDavid du Colombiernote: x is (R+R) or offset(R) 17*3e12c5d1SDavid du Colombiernote: MOVD is a bad name, means double word 18*3e12c5d1SDavid du Colombier 19*3e12c5d1SDavid du Colombier/* load floating */ 20*3e12c5d1SDavid du Colombier 21*3e12c5d1SDavid du Colombier LDF MOVF x, FR 22*3e12c5d1SDavid du Colombier LDDF MOVD x, FR 23*3e12c5d1SDavid du Colombier LDFSR MOVW x, FPSR 24*3e12c5d1SDavid du Colombier 25*3e12c5d1SDavid du Colombiernote: MOVF maybe is MOVW 26*3e12c5d1SDavid du Colombier 27*3e12c5d1SDavid du Colombier/* load coprocessor */ 28*3e12c5d1SDavid du Colombier 29*3e12c5d1SDavid du Colombier LDC MOVW x, CR 30*3e12c5d1SDavid du Colombier LDDC MOVD x, CR 31*3e12c5d1SDavid du Colombier LDCSR MOVW x, CPSR 32*3e12c5d1SDavid du Colombier 33*3e12c5d1SDavid du Colombier/* store */ 34*3e12c5d1SDavid du Colombier 35*3e12c5d1SDavid du Colombier STB MOVB R, x 36*3e12c5d1SDavid du Colombier STBA MOVB R, x, asi 37*3e12c5d1SDavid du Colombier STH MOVH R, x 38*3e12c5d1SDavid du Colombier STHA MOVH R, x, asi 39*3e12c5d1SDavid du Colombier ST MOVW R, x 40*3e12c5d1SDavid du Colombier STA MOVW R, x, asi 41*3e12c5d1SDavid du Colombier STD MOVD R, x 42*3e12c5d1SDavid du Colombier STDA MOVD R, x, asi 43*3e12c5d1SDavid du Colombier 44*3e12c5d1SDavid du Colombier/* store floating * 45*3e12c5d1SDavid du Colombier 46*3e12c5d1SDavid du Colombier STF MOVF FR, x 47*3e12c5d1SDavid du Colombier STDF MOVD FR, x 48*3e12c5d1SDavid du Colombier STFSR MOVW FPSR, x 49*3e12c5d1SDavid du Colombier STDFQ MOVD FPQ, x 50*3e12c5d1SDavid du Colombier 51*3e12c5d1SDavid du Colombiernote: STDFQ gok 52*3e12c5d1SDavid du Colombier 53*3e12c5d1SDavid du Colombier/* store coprocessor */ 54*3e12c5d1SDavid du Colombier 55*3e12c5d1SDavid du Colombier STC MOVW CR, x 56*3e12c5d1SDavid du Colombier STDC MOVD CR, x 57*3e12c5d1SDavid du Colombier STCSR MOVW CPSR, x 58*3e12c5d1SDavid du Colombier STDCQ MOVD CPQ, x 59*3e12c5d1SDavid du Colombier 60*3e12c5d1SDavid du Colombier/* atomic load/store */ 61*3e12c5d1SDavid du Colombier 62*3e12c5d1SDavid du Colombier LDSTUB TAS x 63*3e12c5d1SDavid du Colombier LDSTUBA TAS x, asi 64*3e12c5d1SDavid du Colombier 65*3e12c5d1SDavid du Colombier/* swap */ 66*3e12c5d1SDavid du Colombier 67*3e12c5d1SDavid du Colombier SWAP SWAP R, x 68*3e12c5d1SDavid du Colombier SWAPA SWAP R, x, asi 69*3e12c5d1SDavid du Colombier 70*3e12c5d1SDavid du Colombier/* calc */ 71*3e12c5d1SDavid du Colombier 72*3e12c5d1SDavid du Colombier ADD ADDW y,R, R 73*3e12c5d1SDavid du Colombier ADDcc ADDWT y,R, R 74*3e12c5d1SDavid du Colombier ADDX ADDC y,R, R 75*3e12c5d1SDavid du Colombier ADDXcc ADDCT y,R, R 76*3e12c5d1SDavid du Colombier TADDcc 77*3e12c5d1SDavid du Colombier TADDccTV 78*3e12c5d1SDavid du Colombier SUB 79*3e12c5d1SDavid du Colombier SUBcc 80*3e12c5d1SDavid du Colombier SUBX 81*3e12c5d1SDavid du Colombier SUBXcc 82*3e12c5d1SDavid du Colombier TSUBcc 83*3e12c5d1SDavid du Colombier TSUBccTV 84*3e12c5d1SDavid du Colombier MULScc 85*3e12c5d1SDavid du Colombier AND 86*3e12c5d1SDavid du Colombier ANDcc 87*3e12c5d1SDavid du Colombier ANDN 88*3e12c5d1SDavid du Colombier ANDNcc 89*3e12c5d1SDavid du Colombier OR 90*3e12c5d1SDavid du Colombier ORcc 91*3e12c5d1SDavid du Colombier ORN 92*3e12c5d1SDavid du Colombier ORNcc 93*3e12c5d1SDavid du Colombier XOR 94*3e12c5d1SDavid du Colombier XORcc 95*3e12c5d1SDavid du Colombier XNOR 96*3e12c5d1SDavid du Colombier XNORcc 97*3e12c5d1SDavid du Colombier SLL 98*3e12c5d1SDavid du Colombier SRL 99*3e12c5d1SDavid du Colombier SRA 100*3e12c5d1SDavid du Colombier 101*3e12c5d1SDavid du Colombiernote: y is R or $simm13 102*3e12c5d1SDavid du Colombier 103*3e12c5d1SDavid du Colombier/* sethi */ 104*3e12c5d1SDavid du Colombier 105*3e12c5d1SDavid du Colombier SETHI MOVW $c, R /* high 22 bits */ 106*3e12c5d1SDavid du Colombier 107*3e12c5d1SDavid du Colombier/* save/restore (same as add) */ 108*3e12c5d1SDavid du Colombier 109*3e12c5d1SDavid du Colombier SAVE SAVE y,R, R 110*3e12c5d1SDavid du Colombier RESTORE RESTORE y,R, R 111*3e12c5d1SDavid du Colombier 112*3e12c5d1SDavid du Colombier/* branch on cc */ 113*3e12c5d1SDavid du Colombier 114*3e12c5d1SDavid du Colombier BA 115*3e12c5d1SDavid du Colombier BN 116*3e12c5d1SDavid du Colombier BNE 117*3e12c5d1SDavid du Colombier BE 118*3e12c5d1SDavid du Colombier BG 119*3e12c5d1SDavid du Colombier BLE 120*3e12c5d1SDavid du Colombier BGE 121*3e12c5d1SDavid du Colombier BL 122*3e12c5d1SDavid du Colombier BGU 123*3e12c5d1SDavid du Colombier BLEU 124*3e12c5d1SDavid du Colombier BCC 125*3e12c5d1SDavid du Colombier BCS 126*3e12c5d1SDavid du Colombier BPOS 127*3e12c5d1SDavid du Colombier BNEG 128*3e12c5d1SDavid du Colombier BVC 129*3e12c5d1SDavid du Colombier BVS 130*3e12c5d1SDavid du Colombier 131*3e12c5d1SDavid du Colombiernote: annul bit? 132*3e12c5d1SDavid du Colombier 133*3e12c5d1SDavid du Colombier/* branch on fcc */ 134*3e12c5d1SDavid du Colombier 135*3e12c5d1SDavid du Colombier FBA 136*3e12c5d1SDavid du Colombier FBN 137*3e12c5d1SDavid du Colombier FBU 138*3e12c5d1SDavid du Colombier FBG 139*3e12c5d1SDavid du Colombier FBUG 140*3e12c5d1SDavid du Colombier FBL 141*3e12c5d1SDavid du Colombier FBUL 142*3e12c5d1SDavid du Colombier FBLG 143*3e12c5d1SDavid du Colombier FBNE 144*3e12c5d1SDavid du Colombier FBE 145*3e12c5d1SDavid du Colombier FBUE 146*3e12c5d1SDavid du Colombier FBGE 147*3e12c5d1SDavid du Colombier FBUGE 148*3e12c5d1SDavid du Colombier FBLE 149*3e12c5d1SDavid du Colombier FBULE 150*3e12c5d1SDavid du Colombier FBO 151*3e12c5d1SDavid du Colombier 152*3e12c5d1SDavid du Colombiernote: annul bit? 153*3e12c5d1SDavid du Colombier 154*3e12c5d1SDavid du Colombier/* branch on coprocecssor cc */ 155*3e12c5d1SDavid du Colombier 156*3e12c5d1SDavid du Colombier CBA 157*3e12c5d1SDavid du Colombier CBN 158*3e12c5d1SDavid du Colombier CB3 159*3e12c5d1SDavid du Colombier CB2 160*3e12c5d1SDavid du Colombier CB23 161*3e12c5d1SDavid du Colombier CB1 162*3e12c5d1SDavid du Colombier CB13 163*3e12c5d1SDavid du Colombier CB12 164*3e12c5d1SDavid du Colombier CB123 165*3e12c5d1SDavid du Colombier CB0 166*3e12c5d1SDavid du Colombier CB03 167*3e12c5d1SDavid du Colombier CB02 168*3e12c5d1SDavid du Colombier CB023 169*3e12c5d1SDavid du Colombier CB01 170*3e12c5d1SDavid du Colombier CB013 171*3e12c5d1SDavid du Colombier CB012 172*3e12c5d1SDavid du Colombier 173*3e12c5d1SDavid du Colombiernote: annul bit? 174*3e12c5d1SDavid du Colombier 175*3e12c5d1SDavid du Colombier/* call */ 176*3e12c5d1SDavid du Colombier 177*3e12c5d1SDavid du Colombier CALL 178*3e12c5d1SDavid du Colombier JAL x, R 179*3e12c5d1SDavid du Colombier 180*3e12c5d1SDavid du Colombier/* return from trap */ 181*3e12c5d1SDavid du Colombier 182*3e12c5d1SDavid du Colombier RETT x 183*3e12c5d1SDavid du Colombier 184*3e12c5d1SDavid du Colombier/* trap on integer cc */ 185*3e12c5d1SDavid du Colombier 186*3e12c5d1SDavid du Colombier TA 187*3e12c5d1SDavid du Colombier TN 188*3e12c5d1SDavid du Colombier TNE 189*3e12c5d1SDavid du Colombier TE 190*3e12c5d1SDavid du Colombier TG 191*3e12c5d1SDavid du Colombier TLE 192*3e12c5d1SDavid du Colombier TGE 193*3e12c5d1SDavid du Colombier TL 194*3e12c5d1SDavid du Colombier TGU 195*3e12c5d1SDavid du Colombier TLEU 196*3e12c5d1SDavid du Colombier TCC 197*3e12c5d1SDavid du Colombier TCS 198*3e12c5d1SDavid du Colombier TPOS 199*3e12c5d1SDavid du Colombier TNEG 200*3e12c5d1SDavid du Colombier TVC 201*3e12c5d1SDavid du Colombier TVS 202*3e12c5d1SDavid du Colombier 203*3e12c5d1SDavid du Colombier/* read state register */ 204*3e12c5d1SDavid du Colombier 205*3e12c5d1SDavid du Colombier RDY MOVW Y, R 206*3e12c5d1SDavid du Colombier RDPSR MOVW PSR, R 207*3e12c5d1SDavid du Colombier RDWIM MOVW WIM, R 208*3e12c5d1SDavid du Colombier RDTBR MOVW TBR, R 209*3e12c5d1SDavid du Colombier 210*3e12c5d1SDavid du Colombier/* write state register */ 211*3e12c5d1SDavid du Colombier 212*3e12c5d1SDavid du Colombier WRY MOVW R, Y 213*3e12c5d1SDavid du Colombier WRPSR MOVW R, PSR 214*3e12c5d1SDavid du Colombier WRWIM MOVW R, WIM 215*3e12c5d1SDavid du Colombier WRTBR MOVW R, TBR 216*3e12c5d1SDavid du Colombier 217*3e12c5d1SDavid du Colombier/* unimplemented */ 218*3e12c5d1SDavid du Colombier 219*3e12c5d1SDavid du Colombier UNIMP $C22 220*3e12c5d1SDavid du Colombier 221*3e12c5d1SDavid du Colombier/* instruction cache flush */ 222*3e12c5d1SDavid du Colombier 223*3e12c5d1SDavid du Colombier IFLUSH x 224*3e12c5d1SDavid du Colombier 225*3e12c5d1SDavid du Colombier/* floating op */ 226*3e12c5d1SDavid du Colombier 227*3e12c5d1SDavid du Colombier FiTOs 228*3e12c5d1SDavid du Colombier FiTOd 229*3e12c5d1SDavid du Colombier FiTOx 230*3e12c5d1SDavid du Colombier 231*3e12c5d1SDavid du Colombier FsTOi 232*3e12c5d1SDavid du Colombier FdTOi 233*3e12c5d1SDavid du Colombier FxTOi 234*3e12c5d1SDavid du Colombier 235*3e12c5d1SDavid du Colombier FsTOd 236*3e12c5d1SDavid du Colombier FsTOx 237*3e12c5d1SDavid du Colombier FdTOs 238*3e12c5d1SDavid du Colombier FdTOx 239*3e12c5d1SDavid du Colombier FxTOs 240*3e12c5d1SDavid du Colombier FxTOd 241*3e12c5d1SDavid du Colombier 242*3e12c5d1SDavid du Colombier FMOVs 243*3e12c5d1SDavid du Colombier FNEGs 244*3e12c5d1SDavid du Colombier FABSs 245*3e12c5d1SDavid du Colombier 246*3e12c5d1SDavid du Colombier FSQRTs 247*3e12c5d1SDavid du Colombier FSQRTd 248*3e12c5d1SDavid du Colombier FSQRTx 249*3e12c5d1SDavid du Colombier 250*3e12c5d1SDavid du Colombier FADDs 251*3e12c5d1SDavid du Colombier FADDd 252*3e12c5d1SDavid du Colombier FADDx 253*3e12c5d1SDavid du Colombier FSUBs 254*3e12c5d1SDavid du Colombier FSUBd 255*3e12c5d1SDavid du Colombier FSUBx 256*3e12c5d1SDavid du Colombier 257*3e12c5d1SDavid du Colombier FMULs 258*3e12c5d1SDavid du Colombier FMULd 259*3e12c5d1SDavid du Colombier FMULx 260*3e12c5d1SDavid du Colombier FDIVs 261*3e12c5d1SDavid du Colombier FDIVd 262*3e12c5d1SDavid du Colombier FDIVx 263*3e12c5d1SDavid du Colombier 264*3e12c5d1SDavid du Colombier FCMPs 265*3e12c5d1SDavid du Colombier FCMPd 266*3e12c5d1SDavid du Colombier FCMPx 267*3e12c5d1SDavid du Colombier FCMPEs 268*3e12c5d1SDavid du Colombier FCMPEd 269*3e12c5d1SDavid du Colombier FCMPEx 270*3e12c5d1SDavid du Colombier 271*3e12c5d1SDavid du Colombier/* coprocessor op */ 272*3e12c5d1SDavid du Colombier 273*3e12c5d1SDavid du Colombier CPop1 274*3e12c5d1SDavid du Colombier CPop2 275