1 /* -*-C-*- 2 3 DO NOT EDIT: this file was generated by a program. 4 5 Copyright (C) 2012 Massachusetts Institute of Technology 6 7 This is free software; see the source for copying conditions. There is NO 8 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9 10 */ 11 12 /* Instructions for SVM version 1 */ 13 14 #ifndef SCM_SVM1_DEFNS_H 15 #define SCM_SVM1_DEFNS_H 1 16 17 #define SVM1_REG_INTERPRETER_REGISTER_BLOCK 0 18 #define SVM1_REG_STACK_POINTER 1 19 #define SVM1_REG_FREE_POINTER 2 20 #define SVM1_REG_VALUE 3 21 #define SVM1_REG_DYNAMIC_LINK 4 22 23 #define SVM1_ADDR_START_CODE 0x01 24 #define SVM1_ADDR_END_CODE 0x23 25 26 #define SVM1_ADDR_BINDINGS(binder) \ 27 binder (SVM1_ADDR_INDIR, indir); \ 28 binder (SVM1_ADDR_OFFSET_S8_B, offset_s8_b); \ 29 binder (SVM1_ADDR_OFFSET_S8_W, offset_s8_w); \ 30 binder (SVM1_ADDR_OFFSET_S8_F, offset_s8_f); \ 31 binder (SVM1_ADDR_OFFSET_S16_B, offset_s16_b); \ 32 binder (SVM1_ADDR_OFFSET_S16_W, offset_s16_w); \ 33 binder (SVM1_ADDR_OFFSET_S16_F, offset_s16_f); \ 34 binder (SVM1_ADDR_OFFSET_S32_B, offset_s32_b); \ 35 binder (SVM1_ADDR_OFFSET_S32_W, offset_s32_w); \ 36 binder (SVM1_ADDR_OFFSET_S32_F, offset_s32_f); \ 37 binder (SVM1_ADDR_INDEX_B_B, index_b_b); \ 38 binder (SVM1_ADDR_INDEX_B_W, index_b_w); \ 39 binder (SVM1_ADDR_INDEX_B_F, index_b_f); \ 40 binder (SVM1_ADDR_INDEX_W_B, index_w_b); \ 41 binder (SVM1_ADDR_INDEX_W_W, index_w_w); \ 42 binder (SVM1_ADDR_INDEX_W_F, index_w_f); \ 43 binder (SVM1_ADDR_INDEX_F_B, index_f_b); \ 44 binder (SVM1_ADDR_INDEX_F_W, index_f_w); \ 45 binder (SVM1_ADDR_INDEX_F_F, index_f_f); \ 46 binder (SVM1_ADDR_PREDEC_B, predec_b); \ 47 binder (SVM1_ADDR_PREDEC_W, predec_w); \ 48 binder (SVM1_ADDR_PREDEC_F, predec_f); \ 49 binder (SVM1_ADDR_PREINC_B, preinc_b); \ 50 binder (SVM1_ADDR_PREINC_W, preinc_w); \ 51 binder (SVM1_ADDR_PREINC_F, preinc_f); \ 52 binder (SVM1_ADDR_POSTDEC_B, postdec_b); \ 53 binder (SVM1_ADDR_POSTDEC_W, postdec_w); \ 54 binder (SVM1_ADDR_POSTDEC_F, postdec_f); \ 55 binder (SVM1_ADDR_POSTINC_B, postinc_b); \ 56 binder (SVM1_ADDR_POSTINC_W, postinc_w); \ 57 binder (SVM1_ADDR_POSTINC_F, postinc_f); \ 58 binder (SVM1_ADDR_PCR_S8, pcr_s8); \ 59 binder (SVM1_ADDR_PCR_S16, pcr_s16); \ 60 binder (SVM1_ADDR_PCR_S32, pcr_s32) 61 62 #define SVM1_ADDR_INDIR 0x01 63 #define DECODE_SVM1_ADDR_INDIR(base) \ 64 DECODE_WORD_REGISTER (base) 65 66 #define SVM1_ADDR_OFFSET_S8_B 0x02 67 #define DECODE_SVM1_ADDR_OFFSET_S8_B(base, offset) \ 68 DECODE_WORD_REGISTER (base); \ 69 DECODE_SIGNED_8 (offset) 70 71 #define SVM1_ADDR_OFFSET_S8_W 0x03 72 #define DECODE_SVM1_ADDR_OFFSET_S8_W(base, offset) \ 73 DECODE_WORD_REGISTER (base); \ 74 DECODE_SIGNED_8 (offset) 75 76 #define SVM1_ADDR_OFFSET_S8_F 0x04 77 #define DECODE_SVM1_ADDR_OFFSET_S8_F(base, offset) \ 78 DECODE_WORD_REGISTER (base); \ 79 DECODE_SIGNED_8 (offset) 80 81 #define SVM1_ADDR_OFFSET_S16_B 0x05 82 #define DECODE_SVM1_ADDR_OFFSET_S16_B(base, offset) \ 83 DECODE_WORD_REGISTER (base); \ 84 DECODE_SIGNED_16 (offset) 85 86 #define SVM1_ADDR_OFFSET_S16_W 0x06 87 #define DECODE_SVM1_ADDR_OFFSET_S16_W(base, offset) \ 88 DECODE_WORD_REGISTER (base); \ 89 DECODE_SIGNED_16 (offset) 90 91 #define SVM1_ADDR_OFFSET_S16_F 0x07 92 #define DECODE_SVM1_ADDR_OFFSET_S16_F(base, offset) \ 93 DECODE_WORD_REGISTER (base); \ 94 DECODE_SIGNED_16 (offset) 95 96 #define SVM1_ADDR_OFFSET_S32_B 0x08 97 #define DECODE_SVM1_ADDR_OFFSET_S32_B(base, offset) \ 98 DECODE_WORD_REGISTER (base); \ 99 DECODE_SIGNED_32 (offset) 100 101 #define SVM1_ADDR_OFFSET_S32_W 0x09 102 #define DECODE_SVM1_ADDR_OFFSET_S32_W(base, offset) \ 103 DECODE_WORD_REGISTER (base); \ 104 DECODE_SIGNED_32 (offset) 105 106 #define SVM1_ADDR_OFFSET_S32_F 0x0a 107 #define DECODE_SVM1_ADDR_OFFSET_S32_F(base, offset) \ 108 DECODE_WORD_REGISTER (base); \ 109 DECODE_SIGNED_32 (offset) 110 111 #define SVM1_ADDR_INDEX_B_B 0x0b 112 #define DECODE_SVM1_ADDR_INDEX_B_B(base, offset, index) \ 113 DECODE_WORD_REGISTER (base); \ 114 DECODE_UNSIGNED_8 (offset); \ 115 DECODE_WORD_REGISTER (index) 116 117 #define SVM1_ADDR_INDEX_B_W 0x0c 118 #define DECODE_SVM1_ADDR_INDEX_B_W(base, offset, index) \ 119 DECODE_WORD_REGISTER (base); \ 120 DECODE_UNSIGNED_8 (offset); \ 121 DECODE_WORD_REGISTER (index) 122 123 #define SVM1_ADDR_INDEX_B_F 0x0d 124 #define DECODE_SVM1_ADDR_INDEX_B_F(base, offset, index) \ 125 DECODE_WORD_REGISTER (base); \ 126 DECODE_UNSIGNED_8 (offset); \ 127 DECODE_WORD_REGISTER (index) 128 129 #define SVM1_ADDR_INDEX_W_B 0x0e 130 #define DECODE_SVM1_ADDR_INDEX_W_B(base, offset, index) \ 131 DECODE_WORD_REGISTER (base); \ 132 DECODE_UNSIGNED_8 (offset); \ 133 DECODE_WORD_REGISTER (index) 134 135 #define SVM1_ADDR_INDEX_W_W 0x0f 136 #define DECODE_SVM1_ADDR_INDEX_W_W(base, offset, index) \ 137 DECODE_WORD_REGISTER (base); \ 138 DECODE_UNSIGNED_8 (offset); \ 139 DECODE_WORD_REGISTER (index) 140 141 #define SVM1_ADDR_INDEX_W_F 0x10 142 #define DECODE_SVM1_ADDR_INDEX_W_F(base, offset, index) \ 143 DECODE_WORD_REGISTER (base); \ 144 DECODE_UNSIGNED_8 (offset); \ 145 DECODE_WORD_REGISTER (index) 146 147 #define SVM1_ADDR_INDEX_F_B 0x11 148 #define DECODE_SVM1_ADDR_INDEX_F_B(base, offset, index) \ 149 DECODE_WORD_REGISTER (base); \ 150 DECODE_UNSIGNED_8 (offset); \ 151 DECODE_WORD_REGISTER (index) 152 153 #define SVM1_ADDR_INDEX_F_W 0x12 154 #define DECODE_SVM1_ADDR_INDEX_F_W(base, offset, index) \ 155 DECODE_WORD_REGISTER (base); \ 156 DECODE_UNSIGNED_8 (offset); \ 157 DECODE_WORD_REGISTER (index) 158 159 #define SVM1_ADDR_INDEX_F_F 0x13 160 #define DECODE_SVM1_ADDR_INDEX_F_F(base, offset, index) \ 161 DECODE_WORD_REGISTER (base); \ 162 DECODE_UNSIGNED_8 (offset); \ 163 DECODE_WORD_REGISTER (index) 164 165 #define SVM1_ADDR_PREDEC_B 0x14 166 #define DECODE_SVM1_ADDR_PREDEC_B(base) \ 167 DECODE_WORD_REGISTER (base) 168 169 #define SVM1_ADDR_PREDEC_W 0x15 170 #define DECODE_SVM1_ADDR_PREDEC_W(base) \ 171 DECODE_WORD_REGISTER (base) 172 173 #define SVM1_ADDR_PREDEC_F 0x16 174 #define DECODE_SVM1_ADDR_PREDEC_F(base) \ 175 DECODE_WORD_REGISTER (base) 176 177 #define SVM1_ADDR_PREINC_B 0x17 178 #define DECODE_SVM1_ADDR_PREINC_B(base) \ 179 DECODE_WORD_REGISTER (base) 180 181 #define SVM1_ADDR_PREINC_W 0x18 182 #define DECODE_SVM1_ADDR_PREINC_W(base) \ 183 DECODE_WORD_REGISTER (base) 184 185 #define SVM1_ADDR_PREINC_F 0x19 186 #define DECODE_SVM1_ADDR_PREINC_F(base) \ 187 DECODE_WORD_REGISTER (base) 188 189 #define SVM1_ADDR_POSTDEC_B 0x1a 190 #define DECODE_SVM1_ADDR_POSTDEC_B(base) \ 191 DECODE_WORD_REGISTER (base) 192 193 #define SVM1_ADDR_POSTDEC_W 0x1b 194 #define DECODE_SVM1_ADDR_POSTDEC_W(base) \ 195 DECODE_WORD_REGISTER (base) 196 197 #define SVM1_ADDR_POSTDEC_F 0x1c 198 #define DECODE_SVM1_ADDR_POSTDEC_F(base) \ 199 DECODE_WORD_REGISTER (base) 200 201 #define SVM1_ADDR_POSTINC_B 0x1d 202 #define DECODE_SVM1_ADDR_POSTINC_B(base) \ 203 DECODE_WORD_REGISTER (base) 204 205 #define SVM1_ADDR_POSTINC_W 0x1e 206 #define DECODE_SVM1_ADDR_POSTINC_W(base) \ 207 DECODE_WORD_REGISTER (base) 208 209 #define SVM1_ADDR_POSTINC_F 0x1f 210 #define DECODE_SVM1_ADDR_POSTINC_F(base) \ 211 DECODE_WORD_REGISTER (base) 212 213 #define SVM1_ADDR_PCR_S8 0x20 214 #define DECODE_SVM1_ADDR_PCR_S8(value) \ 215 DECODE_SIGNED_8 (value) 216 217 #define SVM1_ADDR_PCR_S16 0x21 218 #define DECODE_SVM1_ADDR_PCR_S16(value) \ 219 DECODE_SIGNED_16 (value) 220 221 #define SVM1_ADDR_PCR_S32 0x22 222 #define DECODE_SVM1_ADDR_PCR_S32(value) \ 223 DECODE_SIGNED_32 (value) 224 225 #define SVM1_INST_START_CODE 0x01 226 #define SVM1_INST_END_CODE 0xcc 227 228 #define SVM1_INST_BINDINGS(binder) \ 229 binder (SVM1_INST_STORE_B_WR_ADDR, store_b_wr_addr); \ 230 binder (SVM1_INST_STORE_W_WR_ADDR, store_w_wr_addr); \ 231 binder (SVM1_INST_STORE_F_FR_ADDR, store_f_fr_addr); \ 232 binder (SVM1_INST_LOAD_B_WR_ADDR, load_b_wr_addr); \ 233 binder (SVM1_INST_LOAD_W_WR_ADDR, load_w_wr_addr); \ 234 binder (SVM1_INST_LOAD_F_FR_ADDR, load_f_fr_addr); \ 235 binder (SVM1_INST_LOAD_ADDRESS_ADDR, load_address_addr); \ 236 binder (SVM1_INST_LOAD_IMMEDIATE_WR_S8, load_immediate_wr_s8); \ 237 binder (SVM1_INST_LOAD_IMMEDIATE_WR_S16, load_immediate_wr_s16); \ 238 binder (SVM1_INST_LOAD_IMMEDIATE_WR_S32, load_immediate_wr_s32); \ 239 binder (SVM1_INST_LOAD_IMMEDIATE_FR_FLT, load_immediate_fr_flt); \ 240 binder (SVM1_INST_COPY_BLOCK_U8_W, copy_block_u8_w); \ 241 binder (SVM1_INST_COPY_BLOCK_WR_W, copy_block_wr_w); \ 242 binder (SVM1_INST_LOAD_NON_POINTER_TC_S8, load_non_pointer_tc_s8); \ 243 binder (SVM1_INST_LOAD_NON_POINTER_WR_S8, load_non_pointer_wr_s8); \ 244 binder (SVM1_INST_LOAD_NON_POINTER_TC_S16, load_non_pointer_tc_s16); \ 245 binder (SVM1_INST_LOAD_NON_POINTER_WR_S16, load_non_pointer_wr_s16); \ 246 binder (SVM1_INST_LOAD_NON_POINTER_TC_S32, load_non_pointer_tc_s32); \ 247 binder (SVM1_INST_LOAD_NON_POINTER_WR_S32, load_non_pointer_wr_s32); \ 248 binder (SVM1_INST_LOAD_NON_POINTER_TC_WR, load_non_pointer_tc_wr); \ 249 binder (SVM1_INST_LOAD_NON_POINTER, load_non_pointer); \ 250 binder (SVM1_INST_LOAD_POINTER_TC_WR, load_pointer_tc_wr); \ 251 binder (SVM1_INST_LOAD_POINTER, load_pointer); \ 252 binder (SVM1_INST_JUMP_PCR_S8, jump_pcr_s8); \ 253 binder (SVM1_INST_JUMP_PCR_S16, jump_pcr_s16); \ 254 binder (SVM1_INST_JUMP_PCR_S32, jump_pcr_s32); \ 255 binder (SVM1_INST_JUMP_INDIR_WR, jump_indir_wr); \ 256 binder (SVM1_INST_IJUMP_U8, ijump_u8); \ 257 binder (SVM1_INST_IJUMP_U16, ijump_u16); \ 258 binder (SVM1_INST_IJUMP_U32, ijump_u32); \ 259 binder (SVM1_INST_ICALL_U8, icall_u8); \ 260 binder (SVM1_INST_ICALL_U16, icall_u16); \ 261 binder (SVM1_INST_ICALL_U32, icall_u32); \ 262 binder (SVM1_INST_ENTER_CLOSURE, enter_closure); \ 263 binder (SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8, cjump_eq_wr_wr_pcr_s8); \ 264 binder (SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8, cjump_neq_wr_wr_pcr_s8); \ 265 binder (SVM1_INST_CJUMP_LT_WR_WR_PCR_S8, cjump_lt_wr_wr_pcr_s8); \ 266 binder (SVM1_INST_CJUMP_GE_WR_WR_PCR_S8, cjump_ge_wr_wr_pcr_s8); \ 267 binder (SVM1_INST_CJUMP_GT_WR_WR_PCR_S8, cjump_gt_wr_wr_pcr_s8); \ 268 binder (SVM1_INST_CJUMP_LE_WR_WR_PCR_S8, cjump_le_wr_wr_pcr_s8); \ 269 binder (SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8, cjump_slt_wr_wr_pcr_s8); \ 270 binder (SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8, cjump_sge_wr_wr_pcr_s8); \ 271 binder (SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8, cjump_sgt_wr_wr_pcr_s8); \ 272 binder (SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8, cjump_sle_wr_wr_pcr_s8); \ 273 binder (SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16, cjump_eq_wr_wr_pcr_s16); \ 274 binder (SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16, cjump_neq_wr_wr_pcr_s16); \ 275 binder (SVM1_INST_CJUMP_LT_WR_WR_PCR_S16, cjump_lt_wr_wr_pcr_s16); \ 276 binder (SVM1_INST_CJUMP_GE_WR_WR_PCR_S16, cjump_ge_wr_wr_pcr_s16); \ 277 binder (SVM1_INST_CJUMP_GT_WR_WR_PCR_S16, cjump_gt_wr_wr_pcr_s16); \ 278 binder (SVM1_INST_CJUMP_LE_WR_WR_PCR_S16, cjump_le_wr_wr_pcr_s16); \ 279 binder (SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16, cjump_slt_wr_wr_pcr_s16); \ 280 binder (SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16, cjump_sge_wr_wr_pcr_s16); \ 281 binder (SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16, cjump_sgt_wr_wr_pcr_s16); \ 282 binder (SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16, cjump_sle_wr_wr_pcr_s16); \ 283 binder (SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32, cjump_eq_wr_wr_pcr_s32); \ 284 binder (SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32, cjump_neq_wr_wr_pcr_s32); \ 285 binder (SVM1_INST_CJUMP_LT_WR_WR_PCR_S32, cjump_lt_wr_wr_pcr_s32); \ 286 binder (SVM1_INST_CJUMP_GE_WR_WR_PCR_S32, cjump_ge_wr_wr_pcr_s32); \ 287 binder (SVM1_INST_CJUMP_GT_WR_WR_PCR_S32, cjump_gt_wr_wr_pcr_s32); \ 288 binder (SVM1_INST_CJUMP_LE_WR_WR_PCR_S32, cjump_le_wr_wr_pcr_s32); \ 289 binder (SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32, cjump_slt_wr_wr_pcr_s32); \ 290 binder (SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32, cjump_sge_wr_wr_pcr_s32); \ 291 binder (SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32, cjump_sgt_wr_wr_pcr_s32); \ 292 binder (SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32, cjump_sle_wr_wr_pcr_s32); \ 293 binder (SVM1_INST_CJUMP_EQ_WR_PCR_S8, cjump_eq_wr_pcr_s8); \ 294 binder (SVM1_INST_CJUMP_NEQ_WR_PCR_S8, cjump_neq_wr_pcr_s8); \ 295 binder (SVM1_INST_CJUMP_SLT_WR_PCR_S8, cjump_slt_wr_pcr_s8); \ 296 binder (SVM1_INST_CJUMP_SGE_WR_PCR_S8, cjump_sge_wr_pcr_s8); \ 297 binder (SVM1_INST_CJUMP_SGT_WR_PCR_S8, cjump_sgt_wr_pcr_s8); \ 298 binder (SVM1_INST_CJUMP_SLE_WR_PCR_S8, cjump_sle_wr_pcr_s8); \ 299 binder (SVM1_INST_CJUMP_EQ_WR_PCR_S16, cjump_eq_wr_pcr_s16); \ 300 binder (SVM1_INST_CJUMP_NEQ_WR_PCR_S16, cjump_neq_wr_pcr_s16); \ 301 binder (SVM1_INST_CJUMP_SLT_WR_PCR_S16, cjump_slt_wr_pcr_s16); \ 302 binder (SVM1_INST_CJUMP_SGE_WR_PCR_S16, cjump_sge_wr_pcr_s16); \ 303 binder (SVM1_INST_CJUMP_SGT_WR_PCR_S16, cjump_sgt_wr_pcr_s16); \ 304 binder (SVM1_INST_CJUMP_SLE_WR_PCR_S16, cjump_sle_wr_pcr_s16); \ 305 binder (SVM1_INST_CJUMP_EQ_WR_PCR_S32, cjump_eq_wr_pcr_s32); \ 306 binder (SVM1_INST_CJUMP_NEQ_WR_PCR_S32, cjump_neq_wr_pcr_s32); \ 307 binder (SVM1_INST_CJUMP_SLT_WR_PCR_S32, cjump_slt_wr_pcr_s32); \ 308 binder (SVM1_INST_CJUMP_SGE_WR_PCR_S32, cjump_sge_wr_pcr_s32); \ 309 binder (SVM1_INST_CJUMP_SGT_WR_PCR_S32, cjump_sgt_wr_pcr_s32); \ 310 binder (SVM1_INST_CJUMP_SLE_WR_PCR_S32, cjump_sle_wr_pcr_s32); \ 311 binder (SVM1_INST_CJUMP_FIX_WR_PCR_S8, cjump_fix_wr_pcr_s8); \ 312 binder (SVM1_INST_CJUMP_NFIX_WR_PCR_S8, cjump_nfix_wr_pcr_s8); \ 313 binder (SVM1_INST_CJUMP_IFIX_WR_PCR_S8, cjump_ifix_wr_pcr_s8); \ 314 binder (SVM1_INST_CJUMP_NIFIX_WR_PCR_S8, cjump_nifix_wr_pcr_s8); \ 315 binder (SVM1_INST_CJUMP_FIX_WR_PCR_S16, cjump_fix_wr_pcr_s16); \ 316 binder (SVM1_INST_CJUMP_NFIX_WR_PCR_S16, cjump_nfix_wr_pcr_s16); \ 317 binder (SVM1_INST_CJUMP_IFIX_WR_PCR_S16, cjump_ifix_wr_pcr_s16); \ 318 binder (SVM1_INST_CJUMP_NIFIX_WR_PCR_S16, cjump_nifix_wr_pcr_s16); \ 319 binder (SVM1_INST_CJUMP_FIX_WR_PCR_S32, cjump_fix_wr_pcr_s32); \ 320 binder (SVM1_INST_CJUMP_NFIX_WR_PCR_S32, cjump_nfix_wr_pcr_s32); \ 321 binder (SVM1_INST_CJUMP_IFIX_WR_PCR_S32, cjump_ifix_wr_pcr_s32); \ 322 binder (SVM1_INST_CJUMP_NIFIX_WR_PCR_S32, cjump_nifix_wr_pcr_s32); \ 323 binder (SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8, cjump_eq_fr_fr_pcr_s8); \ 324 binder (SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8, cjump_neq_fr_fr_pcr_s8); \ 325 binder (SVM1_INST_CJUMP_LT_FR_FR_PCR_S8, cjump_lt_fr_fr_pcr_s8); \ 326 binder (SVM1_INST_CJUMP_GT_FR_FR_PCR_S8, cjump_gt_fr_fr_pcr_s8); \ 327 binder (SVM1_INST_CJUMP_LE_FR_FR_PCR_S8, cjump_le_fr_fr_pcr_s8); \ 328 binder (SVM1_INST_CJUMP_GE_FR_FR_PCR_S8, cjump_ge_fr_fr_pcr_s8); \ 329 binder (SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8, cjump_cmp_fr_fr_pcr_s8); \ 330 binder (SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8, cjump_ncmp_fr_fr_pcr_s8); \ 331 binder (SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16, cjump_eq_fr_fr_pcr_s16); \ 332 binder (SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16, cjump_neq_fr_fr_pcr_s16); \ 333 binder (SVM1_INST_CJUMP_LT_FR_FR_PCR_S16, cjump_lt_fr_fr_pcr_s16); \ 334 binder (SVM1_INST_CJUMP_GT_FR_FR_PCR_S16, cjump_gt_fr_fr_pcr_s16); \ 335 binder (SVM1_INST_CJUMP_LE_FR_FR_PCR_S16, cjump_le_fr_fr_pcr_s16); \ 336 binder (SVM1_INST_CJUMP_GE_FR_FR_PCR_S16, cjump_ge_fr_fr_pcr_s16); \ 337 binder (SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16, cjump_cmp_fr_fr_pcr_s16); \ 338 binder (SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16, cjump_ncmp_fr_fr_pcr_s16); \ 339 binder (SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32, cjump_eq_fr_fr_pcr_s32); \ 340 binder (SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32, cjump_neq_fr_fr_pcr_s32); \ 341 binder (SVM1_INST_CJUMP_LT_FR_FR_PCR_S32, cjump_lt_fr_fr_pcr_s32); \ 342 binder (SVM1_INST_CJUMP_GT_FR_FR_PCR_S32, cjump_gt_fr_fr_pcr_s32); \ 343 binder (SVM1_INST_CJUMP_LE_FR_FR_PCR_S32, cjump_le_fr_fr_pcr_s32); \ 344 binder (SVM1_INST_CJUMP_GE_FR_FR_PCR_S32, cjump_ge_fr_fr_pcr_s32); \ 345 binder (SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32, cjump_cmp_fr_fr_pcr_s32); \ 346 binder (SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32, cjump_ncmp_fr_fr_pcr_s32); \ 347 binder (SVM1_INST_CJUMP_EQ_FR_PCR_S8, cjump_eq_fr_pcr_s8); \ 348 binder (SVM1_INST_CJUMP_NEQ_FR_PCR_S8, cjump_neq_fr_pcr_s8); \ 349 binder (SVM1_INST_CJUMP_LT_FR_PCR_S8, cjump_lt_fr_pcr_s8); \ 350 binder (SVM1_INST_CJUMP_GT_FR_PCR_S8, cjump_gt_fr_pcr_s8); \ 351 binder (SVM1_INST_CJUMP_LE_FR_PCR_S8, cjump_le_fr_pcr_s8); \ 352 binder (SVM1_INST_CJUMP_GE_FR_PCR_S8, cjump_ge_fr_pcr_s8); \ 353 binder (SVM1_INST_CJUMP_CMP_FR_PCR_S8, cjump_cmp_fr_pcr_s8); \ 354 binder (SVM1_INST_CJUMP_NCMP_FR_PCR_S8, cjump_ncmp_fr_pcr_s8); \ 355 binder (SVM1_INST_CJUMP_EQ_FR_PCR_S16, cjump_eq_fr_pcr_s16); \ 356 binder (SVM1_INST_CJUMP_NEQ_FR_PCR_S16, cjump_neq_fr_pcr_s16); \ 357 binder (SVM1_INST_CJUMP_LT_FR_PCR_S16, cjump_lt_fr_pcr_s16); \ 358 binder (SVM1_INST_CJUMP_GT_FR_PCR_S16, cjump_gt_fr_pcr_s16); \ 359 binder (SVM1_INST_CJUMP_LE_FR_PCR_S16, cjump_le_fr_pcr_s16); \ 360 binder (SVM1_INST_CJUMP_GE_FR_PCR_S16, cjump_ge_fr_pcr_s16); \ 361 binder (SVM1_INST_CJUMP_CMP_FR_PCR_S16, cjump_cmp_fr_pcr_s16); \ 362 binder (SVM1_INST_CJUMP_NCMP_FR_PCR_S16, cjump_ncmp_fr_pcr_s16); \ 363 binder (SVM1_INST_CJUMP_EQ_FR_PCR_S32, cjump_eq_fr_pcr_s32); \ 364 binder (SVM1_INST_CJUMP_NEQ_FR_PCR_S32, cjump_neq_fr_pcr_s32); \ 365 binder (SVM1_INST_CJUMP_LT_FR_PCR_S32, cjump_lt_fr_pcr_s32); \ 366 binder (SVM1_INST_CJUMP_GT_FR_PCR_S32, cjump_gt_fr_pcr_s32); \ 367 binder (SVM1_INST_CJUMP_LE_FR_PCR_S32, cjump_le_fr_pcr_s32); \ 368 binder (SVM1_INST_CJUMP_GE_FR_PCR_S32, cjump_ge_fr_pcr_s32); \ 369 binder (SVM1_INST_CJUMP_CMP_FR_PCR_S32, cjump_cmp_fr_pcr_s32); \ 370 binder (SVM1_INST_CJUMP_NCMP_FR_PCR_S32, cjump_ncmp_fr_pcr_s32); \ 371 binder (SVM1_INST_TRAP_TRAP_0, trap_trap_0); \ 372 binder (SVM1_INST_TRAP_TRAP_1_WR, trap_trap_1_wr); \ 373 binder (SVM1_INST_TRAP_TRAP_2_WR, trap_trap_2_wr); \ 374 binder (SVM1_INST_TRAP_TRAP_3_WR, trap_trap_3_wr); \ 375 binder (SVM1_INST_INTERRUPT_TEST_PROCEDURE, interrupt_test_procedure); \ 376 binder (SVM1_INST_INTERRUPT_TEST_DYNAMIC_LINK, interrupt_test_dynamic_link); \ 377 binder (SVM1_INST_INTERRUPT_TEST_IC_PROCEDURE, interrupt_test_ic_procedure); \ 378 binder (SVM1_INST_INTERRUPT_TEST_CONTINUATION, interrupt_test_continuation); \ 379 binder (SVM1_INST_FLONUM_HEADER_U8, flonum_header_u8); \ 380 binder (SVM1_INST_FLONUM_HEADER_U16, flonum_header_u16); \ 381 binder (SVM1_INST_FLONUM_HEADER_U32, flonum_header_u32); \ 382 binder (SVM1_INST_FLONUM_HEADER, flonum_header); \ 383 binder (SVM1_INST_COPY_WR, copy_wr); \ 384 binder (SVM1_INST_COPY_FR, copy_fr); \ 385 binder (SVM1_INST_NEGATE_WR, negate_wr); \ 386 binder (SVM1_INST_NEGATE_FR, negate_fr); \ 387 binder (SVM1_INST_INCREMENT_WR, increment_wr); \ 388 binder (SVM1_INST_INCREMENT_FR, increment_fr); \ 389 binder (SVM1_INST_DECREMENT_WR, decrement_wr); \ 390 binder (SVM1_INST_DECREMENT_FR, decrement_fr); \ 391 binder (SVM1_INST_ABS_WR, abs_wr); \ 392 binder (SVM1_INST_ABS_FR, abs_fr); \ 393 binder (SVM1_INST_OBJECT_TYPE, object_type); \ 394 binder (SVM1_INST_OBJECT_DATUM, object_datum); \ 395 binder (SVM1_INST_OBJECT_ADDRESS, object_address); \ 396 binder (SVM1_INST_FIXNUM_TO_INTEGER, fixnum_to_integer); \ 397 binder (SVM1_INST_INTEGER_TO_FIXNUM, integer_to_fixnum); \ 398 binder (SVM1_INST_NOT, not); \ 399 binder (SVM1_INST_FLONUM_ALIGN, flonum_align); \ 400 binder (SVM1_INST_FLONUM_LENGTH, flonum_length); \ 401 binder (SVM1_INST_SQRT, sqrt); \ 402 binder (SVM1_INST_ROUND, round); \ 403 binder (SVM1_INST_CEILING, ceiling); \ 404 binder (SVM1_INST_FLOOR, floor); \ 405 binder (SVM1_INST_TRUNCATE, truncate); \ 406 binder (SVM1_INST_LOG, log); \ 407 binder (SVM1_INST_EXP, exp); \ 408 binder (SVM1_INST_COS, cos); \ 409 binder (SVM1_INST_SIN, sin); \ 410 binder (SVM1_INST_TAN, tan); \ 411 binder (SVM1_INST_ACOS, acos); \ 412 binder (SVM1_INST_ASIN, asin); \ 413 binder (SVM1_INST_ATAN, atan); \ 414 binder (SVM1_INST_ADD_WR, add_wr); \ 415 binder (SVM1_INST_ADD_FR, add_fr); \ 416 binder (SVM1_INST_SUBTRACT_WR, subtract_wr); \ 417 binder (SVM1_INST_SUBTRACT_FR, subtract_fr); \ 418 binder (SVM1_INST_MULTIPLY_WR, multiply_wr); \ 419 binder (SVM1_INST_MULTIPLY_FR, multiply_fr); \ 420 binder (SVM1_INST_PRODUCT, product); \ 421 binder (SVM1_INST_QUOTIENT, quotient); \ 422 binder (SVM1_INST_REMAINDER, remainder); \ 423 binder (SVM1_INST_LSH, lsh); \ 424 binder (SVM1_INST_AND, and); \ 425 binder (SVM1_INST_ANDC, andc); \ 426 binder (SVM1_INST_OR, or); \ 427 binder (SVM1_INST_XOR, xor); \ 428 binder (SVM1_INST_MAX_UNSIGNED, max_unsigned); \ 429 binder (SVM1_INST_MIN_UNSIGNED, min_unsigned); \ 430 binder (SVM1_INST_DIVIDE, divide); \ 431 binder (SVM1_INST_ATAN2, atan2) 432 433 #define SVM1_INST_STORE_B_WR_ADDR 0x01 434 #define DECODE_SVM1_INST_STORE_B_WR_ADDR(source, target) \ 435 DECODE_WORD_REGISTER (source); \ 436 DECODE_ADDRESS (target) 437 438 #define SVM1_INST_STORE_W_WR_ADDR 0x02 439 #define DECODE_SVM1_INST_STORE_W_WR_ADDR(source, target) \ 440 DECODE_WORD_REGISTER (source); \ 441 DECODE_ADDRESS (target) 442 443 #define SVM1_INST_STORE_F_FR_ADDR 0x03 444 #define DECODE_SVM1_INST_STORE_F_FR_ADDR(source, target) \ 445 DECODE_FLOAT_REGISTER (source); \ 446 DECODE_ADDRESS (target) 447 448 #define SVM1_INST_LOAD_B_WR_ADDR 0x04 449 #define DECODE_SVM1_INST_LOAD_B_WR_ADDR(target, source) \ 450 DECODE_WORD_REGISTER (target); \ 451 DECODE_ADDRESS (source) 452 453 #define SVM1_INST_LOAD_W_WR_ADDR 0x05 454 #define DECODE_SVM1_INST_LOAD_W_WR_ADDR(target, source) \ 455 DECODE_WORD_REGISTER (target); \ 456 DECODE_ADDRESS (source) 457 458 #define SVM1_INST_LOAD_F_FR_ADDR 0x06 459 #define DECODE_SVM1_INST_LOAD_F_FR_ADDR(target, source) \ 460 DECODE_FLOAT_REGISTER (target); \ 461 DECODE_ADDRESS (source) 462 463 #define SVM1_INST_LOAD_ADDRESS_ADDR 0x07 464 #define DECODE_SVM1_INST_LOAD_ADDRESS_ADDR(target, source) \ 465 DECODE_WORD_REGISTER (target); \ 466 DECODE_ADDRESS (source) 467 468 #define SVM1_INST_LOAD_IMMEDIATE_WR_S8 0x08 469 #define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_S8(target, value_1) \ 470 DECODE_WORD_REGISTER (target); \ 471 DECODE_SIGNED_8 (value_1) 472 473 #define SVM1_INST_LOAD_IMMEDIATE_WR_S16 0x09 474 #define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_S16(target, value_1) \ 475 DECODE_WORD_REGISTER (target); \ 476 DECODE_SIGNED_16 (value_1) 477 478 #define SVM1_INST_LOAD_IMMEDIATE_WR_S32 0x0a 479 #define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_S32(target, value_1) \ 480 DECODE_WORD_REGISTER (target); \ 481 DECODE_SIGNED_32 (value_1) 482 483 #define SVM1_INST_LOAD_IMMEDIATE_FR_FLT 0x0b 484 #define DECODE_SVM1_INST_LOAD_IMMEDIATE_FR_FLT(target, value) \ 485 DECODE_FLOAT_REGISTER (target); \ 486 DECODE_FLOAT (value) 487 488 #define SVM1_INST_COPY_BLOCK_U8_W 0x0c 489 #define DECODE_SVM1_INST_COPY_BLOCK_U8_W(to, from, size) \ 490 DECODE_WORD_REGISTER (to); \ 491 DECODE_WORD_REGISTER (from); \ 492 DECODE_UNSIGNED_8 (size) 493 494 #define SVM1_INST_COPY_BLOCK_WR_W 0x0d 495 #define DECODE_SVM1_INST_COPY_BLOCK_WR_W(to, from, size) \ 496 DECODE_WORD_REGISTER (to); \ 497 DECODE_WORD_REGISTER (from); \ 498 DECODE_WORD_REGISTER (size) 499 500 #define SVM1_INST_LOAD_NON_POINTER_TC_S8 0x0e 501 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S8(target, type_1, value) \ 502 DECODE_WORD_REGISTER (target); \ 503 DECODE_TYPE_WORD (type_1); \ 504 DECODE_SIGNED_8 (value) 505 506 #define SVM1_INST_LOAD_NON_POINTER_WR_S8 0x0f 507 #define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S8(target, source, value) \ 508 DECODE_WORD_REGISTER (target); \ 509 DECODE_WORD_REGISTER (source); \ 510 DECODE_SIGNED_8 (value) 511 512 #define SVM1_INST_LOAD_NON_POINTER_TC_S16 0x10 513 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S16(target, type_1, value) \ 514 DECODE_WORD_REGISTER (target); \ 515 DECODE_TYPE_WORD (type_1); \ 516 DECODE_SIGNED_16 (value) 517 518 #define SVM1_INST_LOAD_NON_POINTER_WR_S16 0x11 519 #define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S16(target, source, value) \ 520 DECODE_WORD_REGISTER (target); \ 521 DECODE_WORD_REGISTER (source); \ 522 DECODE_SIGNED_16 (value) 523 524 #define SVM1_INST_LOAD_NON_POINTER_TC_S32 0x12 525 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S32(target, type_1, value) \ 526 DECODE_WORD_REGISTER (target); \ 527 DECODE_TYPE_WORD (type_1); \ 528 DECODE_SIGNED_32 (value) 529 530 #define SVM1_INST_LOAD_NON_POINTER_WR_S32 0x13 531 #define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S32(target, source, value) \ 532 DECODE_WORD_REGISTER (target); \ 533 DECODE_WORD_REGISTER (source); \ 534 DECODE_SIGNED_32 (value) 535 536 #define SVM1_INST_LOAD_NON_POINTER_TC_WR 0x14 537 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_WR(target, type_1, datum) \ 538 DECODE_WORD_REGISTER (target); \ 539 DECODE_TYPE_WORD (type_1); \ 540 DECODE_WORD_REGISTER (datum) 541 542 #define SVM1_INST_LOAD_NON_POINTER 0x15 543 #define DECODE_SVM1_INST_LOAD_NON_POINTER(target, source, datum) \ 544 DECODE_WORD_REGISTER (target); \ 545 DECODE_WORD_REGISTER (source); \ 546 DECODE_WORD_REGISTER (datum) 547 548 #define SVM1_INST_LOAD_POINTER_TC_WR 0x16 549 #define DECODE_SVM1_INST_LOAD_POINTER_TC_WR(target, type_1, address) \ 550 DECODE_WORD_REGISTER (target); \ 551 DECODE_TYPE_WORD (type_1); \ 552 DECODE_WORD_REGISTER (address) 553 554 #define SVM1_INST_LOAD_POINTER 0x17 555 #define DECODE_SVM1_INST_LOAD_POINTER(target, source, address) \ 556 DECODE_WORD_REGISTER (target); \ 557 DECODE_WORD_REGISTER (source); \ 558 DECODE_WORD_REGISTER (address) 559 560 #define SVM1_INST_JUMP_PCR_S8 0x18 561 #define DECODE_SVM1_INST_JUMP_PCR_S8(value) \ 562 DECODE_SIGNED_8 (value) 563 564 #define SVM1_INST_JUMP_PCR_S16 0x19 565 #define DECODE_SVM1_INST_JUMP_PCR_S16(value) \ 566 DECODE_SIGNED_16 (value) 567 568 #define SVM1_INST_JUMP_PCR_S32 0x1a 569 #define DECODE_SVM1_INST_JUMP_PCR_S32(value) \ 570 DECODE_SIGNED_32 (value) 571 572 #define SVM1_INST_JUMP_INDIR_WR 0x1b 573 #define DECODE_SVM1_INST_JUMP_INDIR_WR(address) \ 574 DECODE_WORD_REGISTER (address) 575 576 #define SVM1_INST_IJUMP_U8 0x1c 577 #define DECODE_SVM1_INST_IJUMP_U8(value) \ 578 DECODE_UNSIGNED_8 (value) 579 580 #define SVM1_INST_IJUMP_U16 0x1d 581 #define DECODE_SVM1_INST_IJUMP_U16(value) \ 582 DECODE_UNSIGNED_16 (value) 583 584 #define SVM1_INST_IJUMP_U32 0x1e 585 #define DECODE_SVM1_INST_IJUMP_U32(value) \ 586 DECODE_UNSIGNED_32 (value) 587 588 #define SVM1_INST_ICALL_U8 0x1f 589 #define DECODE_SVM1_INST_ICALL_U8(value) \ 590 DECODE_UNSIGNED_8 (value) 591 592 #define SVM1_INST_ICALL_U16 0x20 593 #define DECODE_SVM1_INST_ICALL_U16(value) \ 594 DECODE_UNSIGNED_16 (value) 595 596 #define SVM1_INST_ICALL_U32 0x21 597 #define DECODE_SVM1_INST_ICALL_U32(value) \ 598 DECODE_UNSIGNED_32 (value) 599 600 #define SVM1_INST_ENTER_CLOSURE 0x22 601 #define DECODE_SVM1_INST_ENTER_CLOSURE(index) \ 602 DECODE_UNSIGNED_16 (index) 603 604 #define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8 0x23 605 #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8(source1, source2, value) \ 606 DECODE_WORD_REGISTER (source1); \ 607 DECODE_WORD_REGISTER (source2); \ 608 DECODE_SIGNED_8 (value) 609 610 #define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8 0x24 611 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8(source1, source2, value) \ 612 DECODE_WORD_REGISTER (source1); \ 613 DECODE_WORD_REGISTER (source2); \ 614 DECODE_SIGNED_8 (value) 615 616 #define SVM1_INST_CJUMP_LT_WR_WR_PCR_S8 0x25 617 #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S8(source1, source2, value) \ 618 DECODE_WORD_REGISTER (source1); \ 619 DECODE_WORD_REGISTER (source2); \ 620 DECODE_SIGNED_8 (value) 621 622 #define SVM1_INST_CJUMP_GE_WR_WR_PCR_S8 0x26 623 #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S8(source1, source2, value) \ 624 DECODE_WORD_REGISTER (source1); \ 625 DECODE_WORD_REGISTER (source2); \ 626 DECODE_SIGNED_8 (value) 627 628 #define SVM1_INST_CJUMP_GT_WR_WR_PCR_S8 0x27 629 #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S8(source1, source2, value) \ 630 DECODE_WORD_REGISTER (source1); \ 631 DECODE_WORD_REGISTER (source2); \ 632 DECODE_SIGNED_8 (value) 633 634 #define SVM1_INST_CJUMP_LE_WR_WR_PCR_S8 0x28 635 #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S8(source1, source2, value) \ 636 DECODE_WORD_REGISTER (source1); \ 637 DECODE_WORD_REGISTER (source2); \ 638 DECODE_SIGNED_8 (value) 639 640 #define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8 0x29 641 #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8(source1, source2, value) \ 642 DECODE_WORD_REGISTER (source1); \ 643 DECODE_WORD_REGISTER (source2); \ 644 DECODE_SIGNED_8 (value) 645 646 #define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8 0x2a 647 #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8(source1, source2, value) \ 648 DECODE_WORD_REGISTER (source1); \ 649 DECODE_WORD_REGISTER (source2); \ 650 DECODE_SIGNED_8 (value) 651 652 #define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8 0x2b 653 #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8(source1, source2, value) \ 654 DECODE_WORD_REGISTER (source1); \ 655 DECODE_WORD_REGISTER (source2); \ 656 DECODE_SIGNED_8 (value) 657 658 #define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8 0x2c 659 #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8(source1, source2, value) \ 660 DECODE_WORD_REGISTER (source1); \ 661 DECODE_WORD_REGISTER (source2); \ 662 DECODE_SIGNED_8 (value) 663 664 #define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16 0x2d 665 #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16(source1, source2, value) \ 666 DECODE_WORD_REGISTER (source1); \ 667 DECODE_WORD_REGISTER (source2); \ 668 DECODE_SIGNED_16 (value) 669 670 #define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16 0x2e 671 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16(source1, source2, value) \ 672 DECODE_WORD_REGISTER (source1); \ 673 DECODE_WORD_REGISTER (source2); \ 674 DECODE_SIGNED_16 (value) 675 676 #define SVM1_INST_CJUMP_LT_WR_WR_PCR_S16 0x2f 677 #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S16(source1, source2, value) \ 678 DECODE_WORD_REGISTER (source1); \ 679 DECODE_WORD_REGISTER (source2); \ 680 DECODE_SIGNED_16 (value) 681 682 #define SVM1_INST_CJUMP_GE_WR_WR_PCR_S16 0x30 683 #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S16(source1, source2, value) \ 684 DECODE_WORD_REGISTER (source1); \ 685 DECODE_WORD_REGISTER (source2); \ 686 DECODE_SIGNED_16 (value) 687 688 #define SVM1_INST_CJUMP_GT_WR_WR_PCR_S16 0x31 689 #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S16(source1, source2, value) \ 690 DECODE_WORD_REGISTER (source1); \ 691 DECODE_WORD_REGISTER (source2); \ 692 DECODE_SIGNED_16 (value) 693 694 #define SVM1_INST_CJUMP_LE_WR_WR_PCR_S16 0x32 695 #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S16(source1, source2, value) \ 696 DECODE_WORD_REGISTER (source1); \ 697 DECODE_WORD_REGISTER (source2); \ 698 DECODE_SIGNED_16 (value) 699 700 #define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16 0x33 701 #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16(source1, source2, value) \ 702 DECODE_WORD_REGISTER (source1); \ 703 DECODE_WORD_REGISTER (source2); \ 704 DECODE_SIGNED_16 (value) 705 706 #define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16 0x34 707 #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16(source1, source2, value) \ 708 DECODE_WORD_REGISTER (source1); \ 709 DECODE_WORD_REGISTER (source2); \ 710 DECODE_SIGNED_16 (value) 711 712 #define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16 0x35 713 #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16(source1, source2, value) \ 714 DECODE_WORD_REGISTER (source1); \ 715 DECODE_WORD_REGISTER (source2); \ 716 DECODE_SIGNED_16 (value) 717 718 #define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16 0x36 719 #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16(source1, source2, value) \ 720 DECODE_WORD_REGISTER (source1); \ 721 DECODE_WORD_REGISTER (source2); \ 722 DECODE_SIGNED_16 (value) 723 724 #define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32 0x37 725 #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32(source1, source2, value) \ 726 DECODE_WORD_REGISTER (source1); \ 727 DECODE_WORD_REGISTER (source2); \ 728 DECODE_SIGNED_32 (value) 729 730 #define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32 0x38 731 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32(source1, source2, value) \ 732 DECODE_WORD_REGISTER (source1); \ 733 DECODE_WORD_REGISTER (source2); \ 734 DECODE_SIGNED_32 (value) 735 736 #define SVM1_INST_CJUMP_LT_WR_WR_PCR_S32 0x39 737 #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S32(source1, source2, value) \ 738 DECODE_WORD_REGISTER (source1); \ 739 DECODE_WORD_REGISTER (source2); \ 740 DECODE_SIGNED_32 (value) 741 742 #define SVM1_INST_CJUMP_GE_WR_WR_PCR_S32 0x3a 743 #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S32(source1, source2, value) \ 744 DECODE_WORD_REGISTER (source1); \ 745 DECODE_WORD_REGISTER (source2); \ 746 DECODE_SIGNED_32 (value) 747 748 #define SVM1_INST_CJUMP_GT_WR_WR_PCR_S32 0x3b 749 #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S32(source1, source2, value) \ 750 DECODE_WORD_REGISTER (source1); \ 751 DECODE_WORD_REGISTER (source2); \ 752 DECODE_SIGNED_32 (value) 753 754 #define SVM1_INST_CJUMP_LE_WR_WR_PCR_S32 0x3c 755 #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S32(source1, source2, value) \ 756 DECODE_WORD_REGISTER (source1); \ 757 DECODE_WORD_REGISTER (source2); \ 758 DECODE_SIGNED_32 (value) 759 760 #define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32 0x3d 761 #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32(source1, source2, value) \ 762 DECODE_WORD_REGISTER (source1); \ 763 DECODE_WORD_REGISTER (source2); \ 764 DECODE_SIGNED_32 (value) 765 766 #define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32 0x3e 767 #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32(source1, source2, value) \ 768 DECODE_WORD_REGISTER (source1); \ 769 DECODE_WORD_REGISTER (source2); \ 770 DECODE_SIGNED_32 (value) 771 772 #define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32 0x3f 773 #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32(source1, source2, value) \ 774 DECODE_WORD_REGISTER (source1); \ 775 DECODE_WORD_REGISTER (source2); \ 776 DECODE_SIGNED_32 (value) 777 778 #define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32 0x40 779 #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32(source1, source2, value) \ 780 DECODE_WORD_REGISTER (source1); \ 781 DECODE_WORD_REGISTER (source2); \ 782 DECODE_SIGNED_32 (value) 783 784 #define SVM1_INST_CJUMP_EQ_WR_PCR_S8 0x41 785 #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S8(source, value) \ 786 DECODE_WORD_REGISTER (source); \ 787 DECODE_SIGNED_8 (value) 788 789 #define SVM1_INST_CJUMP_NEQ_WR_PCR_S8 0x42 790 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S8(source, value) \ 791 DECODE_WORD_REGISTER (source); \ 792 DECODE_SIGNED_8 (value) 793 794 #define SVM1_INST_CJUMP_SLT_WR_PCR_S8 0x43 795 #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S8(source, value) \ 796 DECODE_WORD_REGISTER (source); \ 797 DECODE_SIGNED_8 (value) 798 799 #define SVM1_INST_CJUMP_SGE_WR_PCR_S8 0x44 800 #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S8(source, value) \ 801 DECODE_WORD_REGISTER (source); \ 802 DECODE_SIGNED_8 (value) 803 804 #define SVM1_INST_CJUMP_SGT_WR_PCR_S8 0x45 805 #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S8(source, value) \ 806 DECODE_WORD_REGISTER (source); \ 807 DECODE_SIGNED_8 (value) 808 809 #define SVM1_INST_CJUMP_SLE_WR_PCR_S8 0x46 810 #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S8(source, value) \ 811 DECODE_WORD_REGISTER (source); \ 812 DECODE_SIGNED_8 (value) 813 814 #define SVM1_INST_CJUMP_EQ_WR_PCR_S16 0x47 815 #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S16(source, value) \ 816 DECODE_WORD_REGISTER (source); \ 817 DECODE_SIGNED_16 (value) 818 819 #define SVM1_INST_CJUMP_NEQ_WR_PCR_S16 0x48 820 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S16(source, value) \ 821 DECODE_WORD_REGISTER (source); \ 822 DECODE_SIGNED_16 (value) 823 824 #define SVM1_INST_CJUMP_SLT_WR_PCR_S16 0x49 825 #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S16(source, value) \ 826 DECODE_WORD_REGISTER (source); \ 827 DECODE_SIGNED_16 (value) 828 829 #define SVM1_INST_CJUMP_SGE_WR_PCR_S16 0x4a 830 #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S16(source, value) \ 831 DECODE_WORD_REGISTER (source); \ 832 DECODE_SIGNED_16 (value) 833 834 #define SVM1_INST_CJUMP_SGT_WR_PCR_S16 0x4b 835 #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S16(source, value) \ 836 DECODE_WORD_REGISTER (source); \ 837 DECODE_SIGNED_16 (value) 838 839 #define SVM1_INST_CJUMP_SLE_WR_PCR_S16 0x4c 840 #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S16(source, value) \ 841 DECODE_WORD_REGISTER (source); \ 842 DECODE_SIGNED_16 (value) 843 844 #define SVM1_INST_CJUMP_EQ_WR_PCR_S32 0x4d 845 #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S32(source, value) \ 846 DECODE_WORD_REGISTER (source); \ 847 DECODE_SIGNED_32 (value) 848 849 #define SVM1_INST_CJUMP_NEQ_WR_PCR_S32 0x4e 850 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S32(source, value) \ 851 DECODE_WORD_REGISTER (source); \ 852 DECODE_SIGNED_32 (value) 853 854 #define SVM1_INST_CJUMP_SLT_WR_PCR_S32 0x4f 855 #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S32(source, value) \ 856 DECODE_WORD_REGISTER (source); \ 857 DECODE_SIGNED_32 (value) 858 859 #define SVM1_INST_CJUMP_SGE_WR_PCR_S32 0x50 860 #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S32(source, value) \ 861 DECODE_WORD_REGISTER (source); \ 862 DECODE_SIGNED_32 (value) 863 864 #define SVM1_INST_CJUMP_SGT_WR_PCR_S32 0x51 865 #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S32(source, value) \ 866 DECODE_WORD_REGISTER (source); \ 867 DECODE_SIGNED_32 (value) 868 869 #define SVM1_INST_CJUMP_SLE_WR_PCR_S32 0x52 870 #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S32(source, value) \ 871 DECODE_WORD_REGISTER (source); \ 872 DECODE_SIGNED_32 (value) 873 874 #define SVM1_INST_CJUMP_FIX_WR_PCR_S8 0x53 875 #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S8(source, value) \ 876 DECODE_WORD_REGISTER (source); \ 877 DECODE_SIGNED_8 (value) 878 879 #define SVM1_INST_CJUMP_NFIX_WR_PCR_S8 0x54 880 #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S8(source, value) \ 881 DECODE_WORD_REGISTER (source); \ 882 DECODE_SIGNED_8 (value) 883 884 #define SVM1_INST_CJUMP_IFIX_WR_PCR_S8 0x55 885 #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S8(source, value) \ 886 DECODE_WORD_REGISTER (source); \ 887 DECODE_SIGNED_8 (value) 888 889 #define SVM1_INST_CJUMP_NIFIX_WR_PCR_S8 0x56 890 #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S8(source, value) \ 891 DECODE_WORD_REGISTER (source); \ 892 DECODE_SIGNED_8 (value) 893 894 #define SVM1_INST_CJUMP_FIX_WR_PCR_S16 0x57 895 #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S16(source, value) \ 896 DECODE_WORD_REGISTER (source); \ 897 DECODE_SIGNED_16 (value) 898 899 #define SVM1_INST_CJUMP_NFIX_WR_PCR_S16 0x58 900 #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S16(source, value) \ 901 DECODE_WORD_REGISTER (source); \ 902 DECODE_SIGNED_16 (value) 903 904 #define SVM1_INST_CJUMP_IFIX_WR_PCR_S16 0x59 905 #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S16(source, value) \ 906 DECODE_WORD_REGISTER (source); \ 907 DECODE_SIGNED_16 (value) 908 909 #define SVM1_INST_CJUMP_NIFIX_WR_PCR_S16 0x5a 910 #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S16(source, value) \ 911 DECODE_WORD_REGISTER (source); \ 912 DECODE_SIGNED_16 (value) 913 914 #define SVM1_INST_CJUMP_FIX_WR_PCR_S32 0x5b 915 #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S32(source, value) \ 916 DECODE_WORD_REGISTER (source); \ 917 DECODE_SIGNED_32 (value) 918 919 #define SVM1_INST_CJUMP_NFIX_WR_PCR_S32 0x5c 920 #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S32(source, value) \ 921 DECODE_WORD_REGISTER (source); \ 922 DECODE_SIGNED_32 (value) 923 924 #define SVM1_INST_CJUMP_IFIX_WR_PCR_S32 0x5d 925 #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S32(source, value) \ 926 DECODE_WORD_REGISTER (source); \ 927 DECODE_SIGNED_32 (value) 928 929 #define SVM1_INST_CJUMP_NIFIX_WR_PCR_S32 0x5e 930 #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S32(source, value) \ 931 DECODE_WORD_REGISTER (source); \ 932 DECODE_SIGNED_32 (value) 933 934 #define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8 0x5f 935 #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8(source1, source2, value) \ 936 DECODE_FLOAT_REGISTER (source1); \ 937 DECODE_FLOAT_REGISTER (source2); \ 938 DECODE_SIGNED_8 (value) 939 940 #define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8 0x60 941 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8(source1, source2, value) \ 942 DECODE_FLOAT_REGISTER (source1); \ 943 DECODE_FLOAT_REGISTER (source2); \ 944 DECODE_SIGNED_8 (value) 945 946 #define SVM1_INST_CJUMP_LT_FR_FR_PCR_S8 0x61 947 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S8(source1, source2, value) \ 948 DECODE_FLOAT_REGISTER (source1); \ 949 DECODE_FLOAT_REGISTER (source2); \ 950 DECODE_SIGNED_8 (value) 951 952 #define SVM1_INST_CJUMP_GT_FR_FR_PCR_S8 0x62 953 #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S8(source1, source2, value) \ 954 DECODE_FLOAT_REGISTER (source1); \ 955 DECODE_FLOAT_REGISTER (source2); \ 956 DECODE_SIGNED_8 (value) 957 958 #define SVM1_INST_CJUMP_LE_FR_FR_PCR_S8 0x63 959 #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S8(source1, source2, value) \ 960 DECODE_FLOAT_REGISTER (source1); \ 961 DECODE_FLOAT_REGISTER (source2); \ 962 DECODE_SIGNED_8 (value) 963 964 #define SVM1_INST_CJUMP_GE_FR_FR_PCR_S8 0x64 965 #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S8(source1, source2, value) \ 966 DECODE_FLOAT_REGISTER (source1); \ 967 DECODE_FLOAT_REGISTER (source2); \ 968 DECODE_SIGNED_8 (value) 969 970 #define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8 0x65 971 #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8(source1, source2, value) \ 972 DECODE_FLOAT_REGISTER (source1); \ 973 DECODE_FLOAT_REGISTER (source2); \ 974 DECODE_SIGNED_8 (value) 975 976 #define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8 0x66 977 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8(source1, source2, value) \ 978 DECODE_FLOAT_REGISTER (source1); \ 979 DECODE_FLOAT_REGISTER (source2); \ 980 DECODE_SIGNED_8 (value) 981 982 #define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16 0x67 983 #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16(source1, source2, value) \ 984 DECODE_FLOAT_REGISTER (source1); \ 985 DECODE_FLOAT_REGISTER (source2); \ 986 DECODE_SIGNED_16 (value) 987 988 #define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16 0x68 989 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16(source1, source2, value) \ 990 DECODE_FLOAT_REGISTER (source1); \ 991 DECODE_FLOAT_REGISTER (source2); \ 992 DECODE_SIGNED_16 (value) 993 994 #define SVM1_INST_CJUMP_LT_FR_FR_PCR_S16 0x69 995 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S16(source1, source2, value) \ 996 DECODE_FLOAT_REGISTER (source1); \ 997 DECODE_FLOAT_REGISTER (source2); \ 998 DECODE_SIGNED_16 (value) 999 1000 #define SVM1_INST_CJUMP_GT_FR_FR_PCR_S16 0x6a 1001 #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S16(source1, source2, value) \ 1002 DECODE_FLOAT_REGISTER (source1); \ 1003 DECODE_FLOAT_REGISTER (source2); \ 1004 DECODE_SIGNED_16 (value) 1005 1006 #define SVM1_INST_CJUMP_LE_FR_FR_PCR_S16 0x6b 1007 #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S16(source1, source2, value) \ 1008 DECODE_FLOAT_REGISTER (source1); \ 1009 DECODE_FLOAT_REGISTER (source2); \ 1010 DECODE_SIGNED_16 (value) 1011 1012 #define SVM1_INST_CJUMP_GE_FR_FR_PCR_S16 0x6c 1013 #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S16(source1, source2, value) \ 1014 DECODE_FLOAT_REGISTER (source1); \ 1015 DECODE_FLOAT_REGISTER (source2); \ 1016 DECODE_SIGNED_16 (value) 1017 1018 #define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16 0x6d 1019 #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16(source1, source2, value) \ 1020 DECODE_FLOAT_REGISTER (source1); \ 1021 DECODE_FLOAT_REGISTER (source2); \ 1022 DECODE_SIGNED_16 (value) 1023 1024 #define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16 0x6e 1025 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16(source1, source2, value) \ 1026 DECODE_FLOAT_REGISTER (source1); \ 1027 DECODE_FLOAT_REGISTER (source2); \ 1028 DECODE_SIGNED_16 (value) 1029 1030 #define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32 0x6f 1031 #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32(source1, source2, value) \ 1032 DECODE_FLOAT_REGISTER (source1); \ 1033 DECODE_FLOAT_REGISTER (source2); \ 1034 DECODE_SIGNED_32 (value) 1035 1036 #define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32 0x70 1037 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32(source1, source2, value) \ 1038 DECODE_FLOAT_REGISTER (source1); \ 1039 DECODE_FLOAT_REGISTER (source2); \ 1040 DECODE_SIGNED_32 (value) 1041 1042 #define SVM1_INST_CJUMP_LT_FR_FR_PCR_S32 0x71 1043 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S32(source1, source2, value) \ 1044 DECODE_FLOAT_REGISTER (source1); \ 1045 DECODE_FLOAT_REGISTER (source2); \ 1046 DECODE_SIGNED_32 (value) 1047 1048 #define SVM1_INST_CJUMP_GT_FR_FR_PCR_S32 0x72 1049 #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S32(source1, source2, value) \ 1050 DECODE_FLOAT_REGISTER (source1); \ 1051 DECODE_FLOAT_REGISTER (source2); \ 1052 DECODE_SIGNED_32 (value) 1053 1054 #define SVM1_INST_CJUMP_LE_FR_FR_PCR_S32 0x73 1055 #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S32(source1, source2, value) \ 1056 DECODE_FLOAT_REGISTER (source1); \ 1057 DECODE_FLOAT_REGISTER (source2); \ 1058 DECODE_SIGNED_32 (value) 1059 1060 #define SVM1_INST_CJUMP_GE_FR_FR_PCR_S32 0x74 1061 #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S32(source1, source2, value) \ 1062 DECODE_FLOAT_REGISTER (source1); \ 1063 DECODE_FLOAT_REGISTER (source2); \ 1064 DECODE_SIGNED_32 (value) 1065 1066 #define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32 0x75 1067 #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32(source1, source2, value) \ 1068 DECODE_FLOAT_REGISTER (source1); \ 1069 DECODE_FLOAT_REGISTER (source2); \ 1070 DECODE_SIGNED_32 (value) 1071 1072 #define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32 0x76 1073 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32(source1, source2, value) \ 1074 DECODE_FLOAT_REGISTER (source1); \ 1075 DECODE_FLOAT_REGISTER (source2); \ 1076 DECODE_SIGNED_32 (value) 1077 1078 #define SVM1_INST_CJUMP_EQ_FR_PCR_S8 0x77 1079 #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S8(source, value) \ 1080 DECODE_FLOAT_REGISTER (source); \ 1081 DECODE_SIGNED_8 (value) 1082 1083 #define SVM1_INST_CJUMP_NEQ_FR_PCR_S8 0x78 1084 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S8(source, value) \ 1085 DECODE_FLOAT_REGISTER (source); \ 1086 DECODE_SIGNED_8 (value) 1087 1088 #define SVM1_INST_CJUMP_LT_FR_PCR_S8 0x79 1089 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S8(source, value) \ 1090 DECODE_FLOAT_REGISTER (source); \ 1091 DECODE_SIGNED_8 (value) 1092 1093 #define SVM1_INST_CJUMP_GT_FR_PCR_S8 0x7a 1094 #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S8(source, value) \ 1095 DECODE_FLOAT_REGISTER (source); \ 1096 DECODE_SIGNED_8 (value) 1097 1098 #define SVM1_INST_CJUMP_LE_FR_PCR_S8 0x7b 1099 #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S8(source, value) \ 1100 DECODE_FLOAT_REGISTER (source); \ 1101 DECODE_SIGNED_8 (value) 1102 1103 #define SVM1_INST_CJUMP_GE_FR_PCR_S8 0x7c 1104 #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S8(source, value) \ 1105 DECODE_FLOAT_REGISTER (source); \ 1106 DECODE_SIGNED_8 (value) 1107 1108 #define SVM1_INST_CJUMP_CMP_FR_PCR_S8 0x7d 1109 #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S8(source, value) \ 1110 DECODE_FLOAT_REGISTER (source); \ 1111 DECODE_SIGNED_8 (value) 1112 1113 #define SVM1_INST_CJUMP_NCMP_FR_PCR_S8 0x7e 1114 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S8(source, value) \ 1115 DECODE_FLOAT_REGISTER (source); \ 1116 DECODE_SIGNED_8 (value) 1117 1118 #define SVM1_INST_CJUMP_EQ_FR_PCR_S16 0x7f 1119 #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S16(source, value) \ 1120 DECODE_FLOAT_REGISTER (source); \ 1121 DECODE_SIGNED_16 (value) 1122 1123 #define SVM1_INST_CJUMP_NEQ_FR_PCR_S16 0x80 1124 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S16(source, value) \ 1125 DECODE_FLOAT_REGISTER (source); \ 1126 DECODE_SIGNED_16 (value) 1127 1128 #define SVM1_INST_CJUMP_LT_FR_PCR_S16 0x81 1129 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S16(source, value) \ 1130 DECODE_FLOAT_REGISTER (source); \ 1131 DECODE_SIGNED_16 (value) 1132 1133 #define SVM1_INST_CJUMP_GT_FR_PCR_S16 0x82 1134 #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S16(source, value) \ 1135 DECODE_FLOAT_REGISTER (source); \ 1136 DECODE_SIGNED_16 (value) 1137 1138 #define SVM1_INST_CJUMP_LE_FR_PCR_S16 0x83 1139 #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S16(source, value) \ 1140 DECODE_FLOAT_REGISTER (source); \ 1141 DECODE_SIGNED_16 (value) 1142 1143 #define SVM1_INST_CJUMP_GE_FR_PCR_S16 0x84 1144 #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S16(source, value) \ 1145 DECODE_FLOAT_REGISTER (source); \ 1146 DECODE_SIGNED_16 (value) 1147 1148 #define SVM1_INST_CJUMP_CMP_FR_PCR_S16 0x85 1149 #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S16(source, value) \ 1150 DECODE_FLOAT_REGISTER (source); \ 1151 DECODE_SIGNED_16 (value) 1152 1153 #define SVM1_INST_CJUMP_NCMP_FR_PCR_S16 0x86 1154 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S16(source, value) \ 1155 DECODE_FLOAT_REGISTER (source); \ 1156 DECODE_SIGNED_16 (value) 1157 1158 #define SVM1_INST_CJUMP_EQ_FR_PCR_S32 0x87 1159 #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S32(source, value) \ 1160 DECODE_FLOAT_REGISTER (source); \ 1161 DECODE_SIGNED_32 (value) 1162 1163 #define SVM1_INST_CJUMP_NEQ_FR_PCR_S32 0x88 1164 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S32(source, value) \ 1165 DECODE_FLOAT_REGISTER (source); \ 1166 DECODE_SIGNED_32 (value) 1167 1168 #define SVM1_INST_CJUMP_LT_FR_PCR_S32 0x89 1169 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S32(source, value) \ 1170 DECODE_FLOAT_REGISTER (source); \ 1171 DECODE_SIGNED_32 (value) 1172 1173 #define SVM1_INST_CJUMP_GT_FR_PCR_S32 0x8a 1174 #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S32(source, value) \ 1175 DECODE_FLOAT_REGISTER (source); \ 1176 DECODE_SIGNED_32 (value) 1177 1178 #define SVM1_INST_CJUMP_LE_FR_PCR_S32 0x8b 1179 #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S32(source, value) \ 1180 DECODE_FLOAT_REGISTER (source); \ 1181 DECODE_SIGNED_32 (value) 1182 1183 #define SVM1_INST_CJUMP_GE_FR_PCR_S32 0x8c 1184 #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S32(source, value) \ 1185 DECODE_FLOAT_REGISTER (source); \ 1186 DECODE_SIGNED_32 (value) 1187 1188 #define SVM1_INST_CJUMP_CMP_FR_PCR_S32 0x8d 1189 #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S32(source, value) \ 1190 DECODE_FLOAT_REGISTER (source); \ 1191 DECODE_SIGNED_32 (value) 1192 1193 #define SVM1_INST_CJUMP_NCMP_FR_PCR_S32 0x8e 1194 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S32(source, value) \ 1195 DECODE_FLOAT_REGISTER (source); \ 1196 DECODE_SIGNED_32 (value) 1197 1198 #define SVM1_INST_TRAP_TRAP_0 0x8f 1199 #define DECODE_SVM1_INST_TRAP_TRAP_0(code) \ 1200 DECODE_TRAP_0 (code) 1201 1202 #define SVM1_INST_TRAP_TRAP_1_WR 0x90 1203 #define DECODE_SVM1_INST_TRAP_TRAP_1_WR(code, arg0) \ 1204 DECODE_TRAP_1 (code); \ 1205 DECODE_WORD_REGISTER (arg0) 1206 1207 #define SVM1_INST_TRAP_TRAP_2_WR 0x91 1208 #define DECODE_SVM1_INST_TRAP_TRAP_2_WR(code, arg0, arg1) \ 1209 DECODE_TRAP_2 (code); \ 1210 DECODE_WORD_REGISTER (arg0); \ 1211 DECODE_WORD_REGISTER (arg1) 1212 1213 #define SVM1_INST_TRAP_TRAP_3_WR 0x92 1214 #define DECODE_SVM1_INST_TRAP_TRAP_3_WR(code, arg0, arg1, arg2) \ 1215 DECODE_TRAP_3 (code); \ 1216 DECODE_WORD_REGISTER (arg0); \ 1217 DECODE_WORD_REGISTER (arg1); \ 1218 DECODE_WORD_REGISTER (arg2) 1219 1220 #define SVM1_INST_INTERRUPT_TEST_PROCEDURE 0x93 1221 1222 #define SVM1_INST_INTERRUPT_TEST_DYNAMIC_LINK 0x94 1223 1224 #define SVM1_INST_INTERRUPT_TEST_IC_PROCEDURE 0x95 1225 1226 #define SVM1_INST_INTERRUPT_TEST_CONTINUATION 0x96 1227 1228 #define SVM1_INST_FLONUM_HEADER_U8 0x97 1229 #define DECODE_SVM1_INST_FLONUM_HEADER_U8(target, value) \ 1230 DECODE_WORD_REGISTER (target); \ 1231 DECODE_UNSIGNED_8 (value) 1232 1233 #define SVM1_INST_FLONUM_HEADER_U16 0x98 1234 #define DECODE_SVM1_INST_FLONUM_HEADER_U16(target, value) \ 1235 DECODE_WORD_REGISTER (target); \ 1236 DECODE_UNSIGNED_16 (value) 1237 1238 #define SVM1_INST_FLONUM_HEADER_U32 0x99 1239 #define DECODE_SVM1_INST_FLONUM_HEADER_U32(target, value) \ 1240 DECODE_WORD_REGISTER (target); \ 1241 DECODE_UNSIGNED_32 (value) 1242 1243 #define SVM1_INST_FLONUM_HEADER 0x9a 1244 #define DECODE_SVM1_INST_FLONUM_HEADER(target, n_elts) \ 1245 DECODE_WORD_REGISTER (target); \ 1246 DECODE_WORD_REGISTER (n_elts) 1247 1248 #define SVM1_INST_COPY_WR 0x9b 1249 #define DECODE_SVM1_INST_COPY_WR(target, source) \ 1250 DECODE_WORD_REGISTER (target); \ 1251 DECODE_WORD_REGISTER (source) 1252 1253 #define SVM1_INST_COPY_FR 0x9c 1254 #define DECODE_SVM1_INST_COPY_FR(target, source) \ 1255 DECODE_FLOAT_REGISTER (target); \ 1256 DECODE_FLOAT_REGISTER (source) 1257 1258 #define SVM1_INST_NEGATE_WR 0x9d 1259 #define DECODE_SVM1_INST_NEGATE_WR(target, source) \ 1260 DECODE_WORD_REGISTER (target); \ 1261 DECODE_WORD_REGISTER (source) 1262 1263 #define SVM1_INST_NEGATE_FR 0x9e 1264 #define DECODE_SVM1_INST_NEGATE_FR(target, source) \ 1265 DECODE_FLOAT_REGISTER (target); \ 1266 DECODE_FLOAT_REGISTER (source) 1267 1268 #define SVM1_INST_INCREMENT_WR 0x9f 1269 #define DECODE_SVM1_INST_INCREMENT_WR(target, source) \ 1270 DECODE_WORD_REGISTER (target); \ 1271 DECODE_WORD_REGISTER (source) 1272 1273 #define SVM1_INST_INCREMENT_FR 0xa0 1274 #define DECODE_SVM1_INST_INCREMENT_FR(target, source) \ 1275 DECODE_FLOAT_REGISTER (target); \ 1276 DECODE_FLOAT_REGISTER (source) 1277 1278 #define SVM1_INST_DECREMENT_WR 0xa1 1279 #define DECODE_SVM1_INST_DECREMENT_WR(target, source) \ 1280 DECODE_WORD_REGISTER (target); \ 1281 DECODE_WORD_REGISTER (source) 1282 1283 #define SVM1_INST_DECREMENT_FR 0xa2 1284 #define DECODE_SVM1_INST_DECREMENT_FR(target, source) \ 1285 DECODE_FLOAT_REGISTER (target); \ 1286 DECODE_FLOAT_REGISTER (source) 1287 1288 #define SVM1_INST_ABS_WR 0xa3 1289 #define DECODE_SVM1_INST_ABS_WR(target, source) \ 1290 DECODE_WORD_REGISTER (target); \ 1291 DECODE_WORD_REGISTER (source) 1292 1293 #define SVM1_INST_ABS_FR 0xa4 1294 #define DECODE_SVM1_INST_ABS_FR(target, source) \ 1295 DECODE_FLOAT_REGISTER (target); \ 1296 DECODE_FLOAT_REGISTER (source) 1297 1298 #define SVM1_INST_OBJECT_TYPE 0xa5 1299 #define DECODE_SVM1_INST_OBJECT_TYPE(target, source) \ 1300 DECODE_WORD_REGISTER (target); \ 1301 DECODE_WORD_REGISTER (source) 1302 1303 #define SVM1_INST_OBJECT_DATUM 0xa6 1304 #define DECODE_SVM1_INST_OBJECT_DATUM(target, source) \ 1305 DECODE_WORD_REGISTER (target); \ 1306 DECODE_WORD_REGISTER (source) 1307 1308 #define SVM1_INST_OBJECT_ADDRESS 0xa7 1309 #define DECODE_SVM1_INST_OBJECT_ADDRESS(target, source) \ 1310 DECODE_WORD_REGISTER (target); \ 1311 DECODE_WORD_REGISTER (source) 1312 1313 #define SVM1_INST_FIXNUM_TO_INTEGER 0xa8 1314 #define DECODE_SVM1_INST_FIXNUM_TO_INTEGER(target, source) \ 1315 DECODE_WORD_REGISTER (target); \ 1316 DECODE_WORD_REGISTER (source) 1317 1318 #define SVM1_INST_INTEGER_TO_FIXNUM 0xa9 1319 #define DECODE_SVM1_INST_INTEGER_TO_FIXNUM(target, source) \ 1320 DECODE_WORD_REGISTER (target); \ 1321 DECODE_WORD_REGISTER (source) 1322 1323 #define SVM1_INST_NOT 0xaa 1324 #define DECODE_SVM1_INST_NOT(target, source) \ 1325 DECODE_WORD_REGISTER (target); \ 1326 DECODE_WORD_REGISTER (source) 1327 1328 #define SVM1_INST_FLONUM_ALIGN 0xab 1329 #define DECODE_SVM1_INST_FLONUM_ALIGN(target, source) \ 1330 DECODE_WORD_REGISTER (target); \ 1331 DECODE_WORD_REGISTER (source) 1332 1333 #define SVM1_INST_FLONUM_LENGTH 0xac 1334 #define DECODE_SVM1_INST_FLONUM_LENGTH(target, source) \ 1335 DECODE_WORD_REGISTER (target); \ 1336 DECODE_WORD_REGISTER (source) 1337 1338 #define SVM1_INST_SQRT 0xad 1339 #define DECODE_SVM1_INST_SQRT(target, source) \ 1340 DECODE_FLOAT_REGISTER (target); \ 1341 DECODE_FLOAT_REGISTER (source) 1342 1343 #define SVM1_INST_ROUND 0xae 1344 #define DECODE_SVM1_INST_ROUND(target, source) \ 1345 DECODE_FLOAT_REGISTER (target); \ 1346 DECODE_FLOAT_REGISTER (source) 1347 1348 #define SVM1_INST_CEILING 0xaf 1349 #define DECODE_SVM1_INST_CEILING(target, source) \ 1350 DECODE_FLOAT_REGISTER (target); \ 1351 DECODE_FLOAT_REGISTER (source) 1352 1353 #define SVM1_INST_FLOOR 0xb0 1354 #define DECODE_SVM1_INST_FLOOR(target, source) \ 1355 DECODE_FLOAT_REGISTER (target); \ 1356 DECODE_FLOAT_REGISTER (source) 1357 1358 #define SVM1_INST_TRUNCATE 0xb1 1359 #define DECODE_SVM1_INST_TRUNCATE(target, source) \ 1360 DECODE_FLOAT_REGISTER (target); \ 1361 DECODE_FLOAT_REGISTER (source) 1362 1363 #define SVM1_INST_LOG 0xb2 1364 #define DECODE_SVM1_INST_LOG(target, source) \ 1365 DECODE_FLOAT_REGISTER (target); \ 1366 DECODE_FLOAT_REGISTER (source) 1367 1368 #define SVM1_INST_EXP 0xb3 1369 #define DECODE_SVM1_INST_EXP(target, source) \ 1370 DECODE_FLOAT_REGISTER (target); \ 1371 DECODE_FLOAT_REGISTER (source) 1372 1373 #define SVM1_INST_COS 0xb4 1374 #define DECODE_SVM1_INST_COS(target, source) \ 1375 DECODE_FLOAT_REGISTER (target); \ 1376 DECODE_FLOAT_REGISTER (source) 1377 1378 #define SVM1_INST_SIN 0xb5 1379 #define DECODE_SVM1_INST_SIN(target, source) \ 1380 DECODE_FLOAT_REGISTER (target); \ 1381 DECODE_FLOAT_REGISTER (source) 1382 1383 #define SVM1_INST_TAN 0xb6 1384 #define DECODE_SVM1_INST_TAN(target, source) \ 1385 DECODE_FLOAT_REGISTER (target); \ 1386 DECODE_FLOAT_REGISTER (source) 1387 1388 #define SVM1_INST_ACOS 0xb7 1389 #define DECODE_SVM1_INST_ACOS(target, source) \ 1390 DECODE_FLOAT_REGISTER (target); \ 1391 DECODE_FLOAT_REGISTER (source) 1392 1393 #define SVM1_INST_ASIN 0xb8 1394 #define DECODE_SVM1_INST_ASIN(target, source) \ 1395 DECODE_FLOAT_REGISTER (target); \ 1396 DECODE_FLOAT_REGISTER (source) 1397 1398 #define SVM1_INST_ATAN 0xb9 1399 #define DECODE_SVM1_INST_ATAN(target, source) \ 1400 DECODE_FLOAT_REGISTER (target); \ 1401 DECODE_FLOAT_REGISTER (source) 1402 1403 #define SVM1_INST_ADD_WR 0xba 1404 #define DECODE_SVM1_INST_ADD_WR(target, source1, source2) \ 1405 DECODE_WORD_REGISTER (target); \ 1406 DECODE_WORD_REGISTER (source1); \ 1407 DECODE_WORD_REGISTER (source2) 1408 1409 #define SVM1_INST_ADD_FR 0xbb 1410 #define DECODE_SVM1_INST_ADD_FR(target, source1, source2) \ 1411 DECODE_FLOAT_REGISTER (target); \ 1412 DECODE_FLOAT_REGISTER (source1); \ 1413 DECODE_FLOAT_REGISTER (source2) 1414 1415 #define SVM1_INST_SUBTRACT_WR 0xbc 1416 #define DECODE_SVM1_INST_SUBTRACT_WR(target, source1, source2) \ 1417 DECODE_WORD_REGISTER (target); \ 1418 DECODE_WORD_REGISTER (source1); \ 1419 DECODE_WORD_REGISTER (source2) 1420 1421 #define SVM1_INST_SUBTRACT_FR 0xbd 1422 #define DECODE_SVM1_INST_SUBTRACT_FR(target, source1, source2) \ 1423 DECODE_FLOAT_REGISTER (target); \ 1424 DECODE_FLOAT_REGISTER (source1); \ 1425 DECODE_FLOAT_REGISTER (source2) 1426 1427 #define SVM1_INST_MULTIPLY_WR 0xbe 1428 #define DECODE_SVM1_INST_MULTIPLY_WR(target, source1, source2) \ 1429 DECODE_WORD_REGISTER (target); \ 1430 DECODE_WORD_REGISTER (source1); \ 1431 DECODE_WORD_REGISTER (source2) 1432 1433 #define SVM1_INST_MULTIPLY_FR 0xbf 1434 #define DECODE_SVM1_INST_MULTIPLY_FR(target, source1, source2) \ 1435 DECODE_FLOAT_REGISTER (target); \ 1436 DECODE_FLOAT_REGISTER (source1); \ 1437 DECODE_FLOAT_REGISTER (source2) 1438 1439 #define SVM1_INST_PRODUCT 0xc0 1440 #define DECODE_SVM1_INST_PRODUCT(target, source1, source2) \ 1441 DECODE_WORD_REGISTER (target); \ 1442 DECODE_WORD_REGISTER (source1); \ 1443 DECODE_WORD_REGISTER (source2) 1444 1445 #define SVM1_INST_QUOTIENT 0xc1 1446 #define DECODE_SVM1_INST_QUOTIENT(target, source1, source2) \ 1447 DECODE_WORD_REGISTER (target); \ 1448 DECODE_WORD_REGISTER (source1); \ 1449 DECODE_WORD_REGISTER (source2) 1450 1451 #define SVM1_INST_REMAINDER 0xc2 1452 #define DECODE_SVM1_INST_REMAINDER(target, source1, source2) \ 1453 DECODE_WORD_REGISTER (target); \ 1454 DECODE_WORD_REGISTER (source1); \ 1455 DECODE_WORD_REGISTER (source2) 1456 1457 #define SVM1_INST_LSH 0xc3 1458 #define DECODE_SVM1_INST_LSH(target, source1, source2) \ 1459 DECODE_WORD_REGISTER (target); \ 1460 DECODE_WORD_REGISTER (source1); \ 1461 DECODE_WORD_REGISTER (source2) 1462 1463 #define SVM1_INST_AND 0xc4 1464 #define DECODE_SVM1_INST_AND(target, source1, source2) \ 1465 DECODE_WORD_REGISTER (target); \ 1466 DECODE_WORD_REGISTER (source1); \ 1467 DECODE_WORD_REGISTER (source2) 1468 1469 #define SVM1_INST_ANDC 0xc5 1470 #define DECODE_SVM1_INST_ANDC(target, source1, source2) \ 1471 DECODE_WORD_REGISTER (target); \ 1472 DECODE_WORD_REGISTER (source1); \ 1473 DECODE_WORD_REGISTER (source2) 1474 1475 #define SVM1_INST_OR 0xc6 1476 #define DECODE_SVM1_INST_OR(target, source1, source2) \ 1477 DECODE_WORD_REGISTER (target); \ 1478 DECODE_WORD_REGISTER (source1); \ 1479 DECODE_WORD_REGISTER (source2) 1480 1481 #define SVM1_INST_XOR 0xc7 1482 #define DECODE_SVM1_INST_XOR(target, source1, source2) \ 1483 DECODE_WORD_REGISTER (target); \ 1484 DECODE_WORD_REGISTER (source1); \ 1485 DECODE_WORD_REGISTER (source2) 1486 1487 #define SVM1_INST_MAX_UNSIGNED 0xc8 1488 #define DECODE_SVM1_INST_MAX_UNSIGNED(target, source1, source2) \ 1489 DECODE_WORD_REGISTER (target); \ 1490 DECODE_WORD_REGISTER (source1); \ 1491 DECODE_WORD_REGISTER (source2) 1492 1493 #define SVM1_INST_MIN_UNSIGNED 0xc9 1494 #define DECODE_SVM1_INST_MIN_UNSIGNED(target, source1, source2) \ 1495 DECODE_WORD_REGISTER (target); \ 1496 DECODE_WORD_REGISTER (source1); \ 1497 DECODE_WORD_REGISTER (source2) 1498 1499 #define SVM1_INST_DIVIDE 0xca 1500 #define DECODE_SVM1_INST_DIVIDE(target, source1, source2) \ 1501 DECODE_FLOAT_REGISTER (target); \ 1502 DECODE_FLOAT_REGISTER (source1); \ 1503 DECODE_FLOAT_REGISTER (source2) 1504 1505 #define SVM1_INST_ATAN2 0xcb 1506 #define DECODE_SVM1_INST_ATAN2(target, source1, source2) \ 1507 DECODE_FLOAT_REGISTER (target); \ 1508 DECODE_FLOAT_REGISTER (source1); \ 1509 DECODE_FLOAT_REGISTER (source2) 1510 1511 #define SVM1_TRAP_0_START_CODE 0x01 1512 #define SVM1_TRAP_0_END_CODE 0x20 1513 1514 #define SVM1_TRAP_0_BINDINGS(binder) \ 1515 binder (SVM1_TRAP_0_ADD, add); \ 1516 binder (SVM1_TRAP_0_DECREMENT, decrement); \ 1517 binder (SVM1_TRAP_0_DIVIDE, divide); \ 1518 binder (SVM1_TRAP_0_EQUAL_P, equal_p); \ 1519 binder (SVM1_TRAP_0_GREATER_P, greater_p); \ 1520 binder (SVM1_TRAP_0_INCREMENT, increment); \ 1521 binder (SVM1_TRAP_0_LESS_P, less_p); \ 1522 binder (SVM1_TRAP_0_MODULO, modulo); \ 1523 binder (SVM1_TRAP_0_MULTIPLY, multiply); \ 1524 binder (SVM1_TRAP_0_NEGATIVE_P, negative_p); \ 1525 binder (SVM1_TRAP_0_OPERATOR_1_0, operator_1_0); \ 1526 binder (SVM1_TRAP_0_OPERATOR_2_0, operator_2_0); \ 1527 binder (SVM1_TRAP_0_OPERATOR_2_1, operator_2_1); \ 1528 binder (SVM1_TRAP_0_OPERATOR_3_0, operator_3_0); \ 1529 binder (SVM1_TRAP_0_OPERATOR_3_1, operator_3_1); \ 1530 binder (SVM1_TRAP_0_OPERATOR_3_2, operator_3_2); \ 1531 binder (SVM1_TRAP_0_OPERATOR_4_0, operator_4_0); \ 1532 binder (SVM1_TRAP_0_OPERATOR_4_1, operator_4_1); \ 1533 binder (SVM1_TRAP_0_OPERATOR_4_2, operator_4_2); \ 1534 binder (SVM1_TRAP_0_OPERATOR_4_3, operator_4_3); \ 1535 binder (SVM1_TRAP_0_OPERATOR_APPLY, operator_apply); \ 1536 binder (SVM1_TRAP_0_OPERATOR_LEXPR, operator_lexpr); \ 1537 binder (SVM1_TRAP_0_OPERATOR_LOOKUP, operator_lookup); \ 1538 binder (SVM1_TRAP_0_OPERATOR_PRIMITIVE, operator_primitive); \ 1539 binder (SVM1_TRAP_0_POSITIVE_P, positive_p); \ 1540 binder (SVM1_TRAP_0_QUOTIENT, quotient); \ 1541 binder (SVM1_TRAP_0_REFLECT_TO_INTERFACE, reflect_to_interface); \ 1542 binder (SVM1_TRAP_0_REMAINDER, remainder); \ 1543 binder (SVM1_TRAP_0_RETURN_TO_INTERPRETER, return_to_interpreter); \ 1544 binder (SVM1_TRAP_0_SUBTRACT, subtract); \ 1545 binder (SVM1_TRAP_0_ZERO_P, zero_p) 1546 1547 #define SVM1_TRAP_0_ADD 0x01 1548 #define SVM1_TRAP_0_DECREMENT 0x02 1549 #define SVM1_TRAP_0_DIVIDE 0x03 1550 #define SVM1_TRAP_0_EQUAL_P 0x04 1551 #define SVM1_TRAP_0_GREATER_P 0x05 1552 #define SVM1_TRAP_0_INCREMENT 0x06 1553 #define SVM1_TRAP_0_LESS_P 0x07 1554 #define SVM1_TRAP_0_MODULO 0x08 1555 #define SVM1_TRAP_0_MULTIPLY 0x09 1556 #define SVM1_TRAP_0_NEGATIVE_P 0x0a 1557 #define SVM1_TRAP_0_OPERATOR_1_0 0x0b 1558 #define SVM1_TRAP_0_OPERATOR_2_0 0x0c 1559 #define SVM1_TRAP_0_OPERATOR_2_1 0x0d 1560 #define SVM1_TRAP_0_OPERATOR_3_0 0x0e 1561 #define SVM1_TRAP_0_OPERATOR_3_1 0x0f 1562 #define SVM1_TRAP_0_OPERATOR_3_2 0x10 1563 #define SVM1_TRAP_0_OPERATOR_4_0 0x11 1564 #define SVM1_TRAP_0_OPERATOR_4_1 0x12 1565 #define SVM1_TRAP_0_OPERATOR_4_2 0x13 1566 #define SVM1_TRAP_0_OPERATOR_4_3 0x14 1567 #define SVM1_TRAP_0_OPERATOR_APPLY 0x15 1568 #define SVM1_TRAP_0_OPERATOR_LEXPR 0x16 1569 #define SVM1_TRAP_0_OPERATOR_LOOKUP 0x17 1570 #define SVM1_TRAP_0_OPERATOR_PRIMITIVE 0x18 1571 #define SVM1_TRAP_0_POSITIVE_P 0x19 1572 #define SVM1_TRAP_0_QUOTIENT 0x1a 1573 #define SVM1_TRAP_0_REFLECT_TO_INTERFACE 0x1b 1574 #define SVM1_TRAP_0_REMAINDER 0x1c 1575 #define SVM1_TRAP_0_RETURN_TO_INTERPRETER 0x1d 1576 #define SVM1_TRAP_0_SUBTRACT 0x1e 1577 #define SVM1_TRAP_0_ZERO_P 0x1f 1578 1579 #define SVM1_TRAP_1_START_CODE 0x01 1580 #define SVM1_TRAP_1_END_CODE 0x07 1581 1582 #define SVM1_TRAP_1_BINDINGS(binder) \ 1583 binder (SVM1_TRAP_1_ERROR, error); \ 1584 binder (SVM1_TRAP_1_LOOKUP, lookup); \ 1585 binder (SVM1_TRAP_1_PRIMITIVE_APPLY, primitive_apply); \ 1586 binder (SVM1_TRAP_1_PRIMITIVE_LEXPR_APPLY, primitive_lexpr_apply); \ 1587 binder (SVM1_TRAP_1_SAFE_LOOKUP, safe_lookup); \ 1588 binder (SVM1_TRAP_1_UNASSIGNED_P, unassigned_p) 1589 1590 #define SVM1_TRAP_1_ERROR 0x01 1591 #define SVM1_TRAP_1_LOOKUP 0x02 1592 #define SVM1_TRAP_1_PRIMITIVE_APPLY 0x03 1593 #define SVM1_TRAP_1_PRIMITIVE_LEXPR_APPLY 0x04 1594 #define SVM1_TRAP_1_SAFE_LOOKUP 0x05 1595 #define SVM1_TRAP_1_UNASSIGNED_P 0x06 1596 1597 #define SVM1_TRAP_2_START_CODE 0x01 1598 #define SVM1_TRAP_2_END_CODE 0x05 1599 1600 #define SVM1_TRAP_2_BINDINGS(binder) \ 1601 binder (SVM1_TRAP_2_APPLY, apply); \ 1602 binder (SVM1_TRAP_2_ASSIGNMENT, assignment); \ 1603 binder (SVM1_TRAP_2_LEXPR_APPLY, lexpr_apply); \ 1604 binder (SVM1_TRAP_2_PRIMITIVE_ERROR, primitive_error) 1605 1606 #define SVM1_TRAP_2_APPLY 0x01 1607 #define SVM1_TRAP_2_ASSIGNMENT 0x02 1608 #define SVM1_TRAP_2_LEXPR_APPLY 0x03 1609 #define SVM1_TRAP_2_PRIMITIVE_ERROR 0x04 1610 1611 #define SVM1_TRAP_3_START_CODE 0x01 1612 #define SVM1_TRAP_3_END_CODE 0x03 1613 1614 #define SVM1_TRAP_3_BINDINGS(binder) \ 1615 binder (SVM1_TRAP_3_CACHE_REFERENCE_APPLY, cache_reference_apply); \ 1616 binder (SVM1_TRAP_3_LINK, link) 1617 1618 #define SVM1_TRAP_3_CACHE_REFERENCE_APPLY 0x01 1619 #define SVM1_TRAP_3_LINK 0x02 1620 1621 #endif /* not SCM_SVM1_DEFNS_H */ 1622