ref: 21947578303cdb0fcb4b0cdfe80aa9dab5f6b447
dir: /utils/ka/note/
/* load instructions */ LDSB MOVB x, R LDSBA MOVB x, R, asi LDSH MOVH x, R LDSHA MOVH x, R, asi LDUB MOVBU x, R LDUBA MOVBU x, R, asi LDUH MOVHU x, R LDUHA MOVHU x, R, asi LD MOVW x, R LDA MOVW x, R, asi LDD MOVD x, R LDDA MOVD x, R, asi note: x is (R+R) or offset(R) note: MOVD is a bad name, means double word /* load floating */ LDF MOVF x, FR LDDF MOVD x, FR LDFSR MOVW x, FPSR note: MOVF maybe is MOVW /* load coprocessor */ LDC MOVW x, CR LDDC MOVD x, CR LDCSR MOVW x, CPSR /* store */ STB MOVB R, x STBA MOVB R, x, asi STH MOVH R, x STHA MOVH R, x, asi ST MOVW R, x STA MOVW R, x, asi STD MOVD R, x STDA MOVD R, x, asi /* store floating * STF MOVF FR, x STDF MOVD FR, x STFSR MOVW FPSR, x STDFQ MOVD FPQ, x note: STDFQ gok /* store coprocessor */ STC MOVW CR, x STDC MOVD CR, x STCSR MOVW CPSR, x STDCQ MOVD CPQ, x /* atomic load/store */ LDSTUB TAS x LDSTUBA TAS x, asi /* swap */ SWAP SWAP R, x SWAPA SWAP R, x, asi /* calc */ ADD ADDW y,R, R ADDcc ADDWT y,R, R ADDX ADDC y,R, R ADDXcc ADDCT y,R, R TADDcc TADDccTV SUB SUBcc SUBX SUBXcc TSUBcc TSUBccTV MULScc AND ANDcc ANDN ANDNcc OR ORcc ORN ORNcc XOR XORcc XNOR XNORcc SLL SRL SRA note: y is R or $simm13 /* sethi */ SETHI MOVW $c, R /* high 22 bits */ /* save/restore (same as add) */ SAVE SAVE y,R, R RESTORE RESTORE y,R, R /* branch on cc */ BA BN BNE BE BG BLE BGE BL BGU BLEU BCC BCS BPOS BNEG BVC BVS note: annul bit? /* branch on fcc */ FBA FBN FBU FBG FBUG FBL FBUL FBLG FBNE FBE FBUE FBGE FBUGE FBLE FBULE FBO note: annul bit? /* branch on coprocecssor cc */ CBA CBN CB3 CB2 CB23 CB1 CB13 CB12 CB123 CB0 CB03 CB02 CB023 CB01 CB013 CB012 note: annul bit? /* call */ CALL JAL x, R /* return from trap */ RETT x /* trap on integer cc */ TA TN TNE TE TG TLE TGE TL TGU TLEU TCC TCS TPOS TNEG TVC TVS /* read state register */ RDY MOVW Y, R RDPSR MOVW PSR, R RDWIM MOVW WIM, R RDTBR MOVW TBR, R /* write state register */ WRY MOVW R, Y WRPSR MOVW R, PSR WRWIM MOVW R, WIM WRTBR MOVW R, TBR /* unimplemented */ UNIMP $C22 /* instruction cache flush */ IFLUSH x /* floating op */ FiTOs FiTOd FiTOx FsTOi FdTOi FxTOi FsTOd FsTOx FdTOs FdTOx FxTOs FxTOd FMOVs FNEGs FABSs FSQRTs FSQRTd FSQRTx FADDs FADDd FADDx FSUBs FSUBd FSUBx FMULs FMULd FMULx FDIVs FDIVd FDIVx FCMPs FCMPd FCMPx FCMPEs FCMPEd FCMPEx /* coprocessor op */ CPop1 CPop2