#ifndef _ops_h #define _ops_h /****************************************************************************** ** FILE: ops.h ** Manifest constants to describe SPARC v.9 operations. */ #define OP_NOP 0 /* branch/call instructions */ #define OP_BRZ 1 #define OP_BRLEZ 2 #define OP_BRLZ 3 #define OP_BRNZ 4 #define OP_BRGZ 5 #define OP_BRGEZ 6 #define OP_FBU 7 #define OP_FBG 8 #define OP_FBUG 9 #define OP_FBL 10 #define OP_FBUL 11 #define OP_FBLG 12 #define OP_FBNE 13 #define OP_FBE 14 #define OP_FBUE 15 #define OP_FBGE 16 #define OP_FBUGE 17 #define OP_FBLE 18 #define OP_FBULE 19 #define OP_FBO 20 #define OP_BNE 21 #define OP_BE 22 #define OP_BG 23 #define OP_BLE 24 #define OP_BGE 25 #define OP_BL 26 #define OP_BGU 27 #define OP_BLEU 28 #define OP_BCC 29 #define OP_BCS 30 #define OP_BPOS 31 #define OP_BNEG 32 #define OP_BVC 33 #define OP_BVS 34 #define OP_BRANCH_BEGIN OP_BRZ /* start of branch ops */ #define OP_BRANCH_END OP_BVS /* end of branch ops */ /* Conditional moves */ #define OP_MOVA 35 #define OP_MOVNE 36 #define OP_MOVE 37 #define OP_MOVG 38 #define OP_MOVLE 39 #define OP_MOVGE 40 #define OP_MOVL 41 #define OP_MOVGU 42 #define OP_MOVLEU 43 #define OP_MOVCC 44 #define OP_MOVCS 45 #define OP_MOVPOS 46 #define OP_MOVNEG 47 #define OP_MOVVC 48 #define OP_MOVVS 49 #define OP_MOVFU 50 #define OP_MOVFG 51 #define OP_MOVFUG 52 #define OP_MOVFL 53 #define OP_MOVFUL 54 #define OP_MOVFLG 55 #define OP_MOVFNE 56 #define OP_MOVFE 57 #define OP_MOVFUE 58 #define OP_MOVFGE 59 #define OP_MOVFUGE 60 #define OP_MOVFLE 61 #define OP_MOVFULE 62 #define OP_MOVFO 63 #define OP_MOVRZ 64 #define OP_MOVRLEZ 65 #define OP_MOVRLZ 66 #define OP_MOVRNZ 67 #define OP_MOVRGZ 68 #define OP_MOVRGEZ 69 /* System traps */ #define OP_TA 70 #define OP_TNE 71 #define OP_TE 72 #define OP_TG 73 #define OP_TLE 74 #define OP_TGE 75 #define OP_TL 76 #define OP_TGU 77 #define OP_TLEU 78 #define OP_TCC 79 #define OP_TCS 80 #define OP_TPOS 81 #define OP_TNEG 82 #define OP_TVC 83 #define OP_TVS 84 /* Arithmetic ops */ #define OP_ADD 85 #define OP_ADDCC 86 #define OP_ADDC 87 #define OP_ADDCCC 88 #define OP_SUB 89 #define OP_SUBCC 90 #define OP_SUBC 91 #define OP_SUBCCC 92 #define OP_AND 93 #define OP_ANDCC 94 #define OP_ANDN 95 #define OP_ANDNCC 96 #define OP_OR 97 #define OP_ORCC 98 #define OP_ORN 99 #define OP_ORNCC 100 #define OP_XOR 101 #define OP_XORCC 102 #define OP_XNOR 103 #define OP_XNORCC 104 #define OP_MULX 105 #define OP_SDIVX 106 #define OP_UDIVX 107 #define OP_SLL 108 #define OP_SRL 109 #define OP_SRA 110 #define OP_SLLX 111 #define OP_SRLX 112 #define OP_SRAX 113 #define OP_TADDCC 114 #define OP_TADDCCTV 115 #define OP_TSUBCC 116 #define OP_TSUBCCTV 117 #define OP_UDIV 118 #define OP_SDIV 119 #define OP_UMUL 120 #define OP_SMUL 121 #define OP_UDIVCC 122 #define OP_SDIVCC 123 #define OP_UMULCC 124 #define OP_SMULCC 125 #define OP_MULSCC 126 #define OP_POPC 127 #define OP_FLUSH 128 #define OP_FLUSHW 129 #define OP_RD 130 #define OP_WR 131 #define OP_SETHI 132 /* Floating-point arithmetic */ #define OP_FADDS 133 #define OP_FADDD 134 #define OP_FSUBS 135 #define OP_FSUBD 136 #define OP_FCMPS 137 #define OP_FCMPD 138 #define OP_FCMPES 139 #define OP_FCMPED 140 #define OP_FSTOX 141 #define OP_FDTOX 142 #define OP_FSTOI 143 #define OP_FDTOI 144 #define OP_FSTOD 145 #define OP_FXTOS 146 #define OP_FXTOD 147 #define OP_FITOS 148 #define OP_FITOD 149 #define OP_FDTOS 150 #define OP_FMOVS 151 #define OP_FMOVD 152 #define OP_FNEGS 153 #define OP_FNEGD 154 #define OP_FABSS 155 #define OP_FABSD 156 #define OP_FMULS 157 #define OP_FMULD 158 #define OP_FDIVS 159 #define OP_FDIVD 160 #define OP_FSMULD 161 #define OP_FSQRTS 162 #define OP_FSQRTD 163 /* Load, store, etc. */ #define OP_LDSB 164 #define OP_LDSH 165 #define OP_LDSW 166 #define OP_LDUB 167 #define OP_LDUH 168 #define OP_LDUW 169 #define OP_LDX 170 #define OP_LDD 171 #define OP_LDFSR 172 #define OP_LDXFSR 173 #define OP_LOAD_BEGIN OP_LDSB /* start of load op tags */ #define OP_LOAD_END OP_LDXFSR /* end of load op tags */ #define OP_STB 174 #define OP_STH 175 #define OP_STW 176 #define OP_STX 177 #define OP_STD 178 #define OP_STFSR 179 #define OP_STXFSR 180 #define OP_STORE_BEGIN OP_STB /* start of store op tags */ #define OP_STORE_END OP_STXFSR /* end of store op tags */ #define OP_CASA 181 #define OP_CASXA 182 #define OP_LDSTUB 183 #define OP_SWAP 184 #define OP_SWAP_BEGIN OP_CASA /* start of swap op tags */ #define OP_SWAP_END OP_SWAP /* end of swap op tags */ /* Save/restore ops */ #define OP_SAVE 185 #define OP_RESTORE 186 #define OP_RETRN 187 /* Indirect jump instruction */ #define OP_JMPL 188 /* Illegal instruction */ #define OP_ILL 189 #endif