From fe854acdc323699f780444112bd32f5ccb424661 Mon Sep 17 00:00:00 2001 From: Matt Birkholz Date: Wed, 29 Feb 2012 12:43:16 -0700 Subject: [PATCH] svm: Fix load-non-pointer to handle small negative fixnums. With 64 bit words the negative fixnums need sign-extension. Punt the unsigned variant of load-immediate. --- src/Makefile.in | 2 +- src/compiler/machines/svm/assembler-rules.scm | 8 +- src/compiler/machines/svm/lapgen.scm | 11 +- src/microcode/svm1-defns.h | 442 +++++++++--------- src/microcode/svm1-interp.c | 45 +- 5 files changed, 234 insertions(+), 274 deletions(-) diff --git a/src/Makefile.in b/src/Makefile.in index 96fa0a865..115573aa1 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -90,7 +90,7 @@ all-svm: microcode/svm1-defns.h $(MAKE) build-bands #build-ffis microcode/svm1-defns.h: compiler/machines/svm/svm1-defns.h - if cmp compiler/machines/svm/svm1-defns.h microcode/svm1-defns.h; \ + if ! cmp compiler/machines/svm/svm1-defns.h microcode/svm1-defns.h; \ then cp compiler/machines/svm/svm1-defns.h microcode/svm1-defns.h; fi compiler/machines/svm/svm1-defns.h: \ diff --git a/src/compiler/machines/svm/assembler-rules.scm b/src/compiler/machines/svm/assembler-rules.scm index d24ed4895..c12a16fd1 100644 --- a/src/compiler/machines/svm/assembler-rules.scm +++ b/src/compiler/machines/svm/assembler-rules.scm @@ -211,12 +211,6 @@ USA. target value) -(define-code-sequence instruction - (load-immediate (_ target word-register) - (_ value unsigned-integer)) - target - value) - (define-code-sequence instruction (load-immediate (_ target float-register) (_ value float)) @@ -250,7 +244,7 @@ USA. (define-code-sequence instruction (load-non-pointer (_ target word-register) (_ type type-operand) - (_ datum unsigned-integer)) + (_ datum signed-integer)) target type datum) diff --git a/src/compiler/machines/svm/lapgen.scm b/src/compiler/machines/svm/lapgen.scm index b2987d1b7..a23a5380e 100644 --- a/src/compiler/machines/svm/lapgen.scm +++ b/src/compiler/machines/svm/lapgen.scm @@ -151,9 +151,12 @@ USA. (define (load-constant target object) (if (non-pointer-object? object) - (inst:load-non-pointer target - (object-type object) - (careful-object-datum object)) + (let ((datum (if (fix:fixnum? object) + object ;Need a signed integer here. + (object-datum object)))) + (if (>= datum signed-fixnum/upper-limit) + (error "Can't encode non-pointer datum:" datum)) + (inst:load-non-pointer target (object-type object) datum)) (inst:load 'WORD target (ea:address (constant->label object))))) (define (simple-branches! condition source1 #!optional source2) @@ -231,6 +234,8 @@ USA. (rtl:cons-pointer-type expression))) (datum (rtl:machine-constant-value (rtl:cons-pointer-datum expression)))) + (if (>= datum signed-fixnum/upper-limit) + (error "Can't encode pointer datum:" datum)) (prefix-instructions! (LAP ,@(inst:load-non-pointer temp type datum))) temp)) diff --git a/src/microcode/svm1-defns.h b/src/microcode/svm1-defns.h index 596299019..6267b73da 100644 --- a/src/microcode/svm1-defns.h +++ b/src/microcode/svm1-defns.h @@ -205,7 +205,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. DECODE_SIGNED_32 (value) #define SVM1_INST_START_CODE 0x01 -#define SVM1_INST_END_CODE 0xcf +#define SVM1_INST_END_CODE 0xcc #define SVM1_INST_BINDINGS(binder) \ binder (SVM1_INST_STORE_B_WR_ADDR, store_b_wr_addr); \ @@ -218,18 +218,15 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. binder (SVM1_INST_LOAD_IMMEDIATE_WR_S8, load_immediate_wr_s8); \ binder (SVM1_INST_LOAD_IMMEDIATE_WR_S16, load_immediate_wr_s16); \ binder (SVM1_INST_LOAD_IMMEDIATE_WR_S32, load_immediate_wr_s32); \ - binder (SVM1_INST_LOAD_IMMEDIATE_WR_U8, load_immediate_wr_u8); \ - binder (SVM1_INST_LOAD_IMMEDIATE_WR_U16, load_immediate_wr_u16); \ - binder (SVM1_INST_LOAD_IMMEDIATE_WR_U32, load_immediate_wr_u32); \ binder (SVM1_INST_LOAD_IMMEDIATE_FR_FLT, load_immediate_fr_flt); \ binder (SVM1_INST_COPY_BLOCK_U8_W, copy_block_u8_w); \ binder (SVM1_INST_COPY_BLOCK_WR_W, copy_block_wr_w); \ - binder (SVM1_INST_LOAD_NON_POINTER_TC_U8, load_non_pointer_tc_u8); \ - binder (SVM1_INST_LOAD_NON_POINTER_WR_U8, load_non_pointer_wr_u8); \ - binder (SVM1_INST_LOAD_NON_POINTER_TC_U16, load_non_pointer_tc_u16); \ - binder (SVM1_INST_LOAD_NON_POINTER_WR_U16, load_non_pointer_wr_u16); \ - binder (SVM1_INST_LOAD_NON_POINTER_TC_U32, load_non_pointer_tc_u32); \ - binder (SVM1_INST_LOAD_NON_POINTER_WR_U32, load_non_pointer_wr_u32); \ + binder (SVM1_INST_LOAD_NON_POINTER_TC_S8, load_non_pointer_tc_s8); \ + binder (SVM1_INST_LOAD_NON_POINTER_WR_S8, load_non_pointer_wr_s8); \ + binder (SVM1_INST_LOAD_NON_POINTER_TC_S16, load_non_pointer_tc_s16); \ + binder (SVM1_INST_LOAD_NON_POINTER_WR_S16, load_non_pointer_wr_s16); \ + binder (SVM1_INST_LOAD_NON_POINTER_TC_S32, load_non_pointer_tc_s32); \ + binder (SVM1_INST_LOAD_NON_POINTER_WR_S32, load_non_pointer_wr_s32); \ binder (SVM1_INST_LOAD_NON_POINTER_TC_WR, load_non_pointer_tc_wr); \ binder (SVM1_INST_LOAD_NON_POINTER, load_non_pointer); \ binder (SVM1_INST_LOAD_POINTER_TC_WR, load_pointer_tc_wr); \ @@ -465,1044 +462,1029 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. DECODE_WORD_REGISTER (target); \ DECODE_SIGNED_32 (value_1) -#define SVM1_INST_LOAD_IMMEDIATE_WR_U8 0x0b -#define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_U8(target, value_1) \ - DECODE_WORD_REGISTER (target); \ - DECODE_UNSIGNED_8 (value_1) - -#define SVM1_INST_LOAD_IMMEDIATE_WR_U16 0x0c -#define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_U16(target, value_1) \ - DECODE_WORD_REGISTER (target); \ - DECODE_UNSIGNED_16 (value_1) - -#define SVM1_INST_LOAD_IMMEDIATE_WR_U32 0x0d -#define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_U32(target, value_1) \ - DECODE_WORD_REGISTER (target); \ - DECODE_UNSIGNED_32 (value_1) - -#define SVM1_INST_LOAD_IMMEDIATE_FR_FLT 0x0e +#define SVM1_INST_LOAD_IMMEDIATE_FR_FLT 0x0b #define DECODE_SVM1_INST_LOAD_IMMEDIATE_FR_FLT(target, value) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT (value) -#define SVM1_INST_COPY_BLOCK_U8_W 0x0f +#define SVM1_INST_COPY_BLOCK_U8_W 0x0c #define DECODE_SVM1_INST_COPY_BLOCK_U8_W(to, from, size) \ DECODE_WORD_REGISTER (to); \ DECODE_WORD_REGISTER (from); \ DECODE_UNSIGNED_8 (size) -#define SVM1_INST_COPY_BLOCK_WR_W 0x10 +#define SVM1_INST_COPY_BLOCK_WR_W 0x0d #define DECODE_SVM1_INST_COPY_BLOCK_WR_W(to, from, size) \ DECODE_WORD_REGISTER (to); \ DECODE_WORD_REGISTER (from); \ DECODE_WORD_REGISTER (size) -#define SVM1_INST_LOAD_NON_POINTER_TC_U8 0x11 -#define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_U8(target, type_1, value) \ +#define SVM1_INST_LOAD_NON_POINTER_TC_S8 0x0e +#define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S8(target, type_1, value) \ DECODE_WORD_REGISTER (target); \ DECODE_TYPE_WORD (type_1); \ - DECODE_UNSIGNED_8 (value) + DECODE_SIGNED_8 (value) -#define SVM1_INST_LOAD_NON_POINTER_WR_U8 0x12 -#define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_U8(target, source, value) \ +#define SVM1_INST_LOAD_NON_POINTER_WR_S8 0x0f +#define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S8(target, source, value) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source); \ - DECODE_UNSIGNED_8 (value) + DECODE_SIGNED_8 (value) -#define SVM1_INST_LOAD_NON_POINTER_TC_U16 0x13 -#define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_U16(target, type_1, value) \ +#define SVM1_INST_LOAD_NON_POINTER_TC_S16 0x10 +#define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S16(target, type_1, value) \ DECODE_WORD_REGISTER (target); \ DECODE_TYPE_WORD (type_1); \ - DECODE_UNSIGNED_16 (value) + DECODE_SIGNED_16 (value) -#define SVM1_INST_LOAD_NON_POINTER_WR_U16 0x14 -#define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_U16(target, source, value) \ +#define SVM1_INST_LOAD_NON_POINTER_WR_S16 0x11 +#define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S16(target, source, value) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source); \ - DECODE_UNSIGNED_16 (value) + DECODE_SIGNED_16 (value) -#define SVM1_INST_LOAD_NON_POINTER_TC_U32 0x15 -#define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_U32(target, type_1, value) \ +#define SVM1_INST_LOAD_NON_POINTER_TC_S32 0x12 +#define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S32(target, type_1, value) \ DECODE_WORD_REGISTER (target); \ DECODE_TYPE_WORD (type_1); \ - DECODE_UNSIGNED_32 (value) + DECODE_SIGNED_32 (value) -#define SVM1_INST_LOAD_NON_POINTER_WR_U32 0x16 -#define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_U32(target, source, value) \ +#define SVM1_INST_LOAD_NON_POINTER_WR_S32 0x13 +#define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S32(target, source, value) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source); \ - DECODE_UNSIGNED_32 (value) + DECODE_SIGNED_32 (value) -#define SVM1_INST_LOAD_NON_POINTER_TC_WR 0x17 +#define SVM1_INST_LOAD_NON_POINTER_TC_WR 0x14 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_WR(target, type_1, datum) \ DECODE_WORD_REGISTER (target); \ DECODE_TYPE_WORD (type_1); \ DECODE_WORD_REGISTER (datum) -#define SVM1_INST_LOAD_NON_POINTER 0x18 +#define SVM1_INST_LOAD_NON_POINTER 0x15 #define DECODE_SVM1_INST_LOAD_NON_POINTER(target, source, datum) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source); \ DECODE_WORD_REGISTER (datum) -#define SVM1_INST_LOAD_POINTER_TC_WR 0x19 +#define SVM1_INST_LOAD_POINTER_TC_WR 0x16 #define DECODE_SVM1_INST_LOAD_POINTER_TC_WR(target, type_1, address) \ DECODE_WORD_REGISTER (target); \ DECODE_TYPE_WORD (type_1); \ DECODE_WORD_REGISTER (address) -#define SVM1_INST_LOAD_POINTER 0x1a +#define SVM1_INST_LOAD_POINTER 0x17 #define DECODE_SVM1_INST_LOAD_POINTER(target, source, address) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source); \ DECODE_WORD_REGISTER (address) -#define SVM1_INST_JUMP_PCR_S8 0x1b +#define SVM1_INST_JUMP_PCR_S8 0x18 #define DECODE_SVM1_INST_JUMP_PCR_S8(value) \ DECODE_SIGNED_8 (value) -#define SVM1_INST_JUMP_PCR_S16 0x1c +#define SVM1_INST_JUMP_PCR_S16 0x19 #define DECODE_SVM1_INST_JUMP_PCR_S16(value) \ DECODE_SIGNED_16 (value) -#define SVM1_INST_JUMP_PCR_S32 0x1d +#define SVM1_INST_JUMP_PCR_S32 0x1a #define DECODE_SVM1_INST_JUMP_PCR_S32(value) \ DECODE_SIGNED_32 (value) -#define SVM1_INST_JUMP_INDIR_WR 0x1e +#define SVM1_INST_JUMP_INDIR_WR 0x1b #define DECODE_SVM1_INST_JUMP_INDIR_WR(address) \ DECODE_WORD_REGISTER (address) -#define SVM1_INST_IJUMP_U8 0x1f +#define SVM1_INST_IJUMP_U8 0x1c #define DECODE_SVM1_INST_IJUMP_U8(value) \ DECODE_UNSIGNED_8 (value) -#define SVM1_INST_IJUMP_U16 0x20 +#define SVM1_INST_IJUMP_U16 0x1d #define DECODE_SVM1_INST_IJUMP_U16(value) \ DECODE_UNSIGNED_16 (value) -#define SVM1_INST_IJUMP_U32 0x21 +#define SVM1_INST_IJUMP_U32 0x1e #define DECODE_SVM1_INST_IJUMP_U32(value) \ DECODE_UNSIGNED_32 (value) -#define SVM1_INST_ICALL_U8 0x22 +#define SVM1_INST_ICALL_U8 0x1f #define DECODE_SVM1_INST_ICALL_U8(value) \ DECODE_UNSIGNED_8 (value) -#define SVM1_INST_ICALL_U16 0x23 +#define SVM1_INST_ICALL_U16 0x20 #define DECODE_SVM1_INST_ICALL_U16(value) \ DECODE_UNSIGNED_16 (value) -#define SVM1_INST_ICALL_U32 0x24 +#define SVM1_INST_ICALL_U32 0x21 #define DECODE_SVM1_INST_ICALL_U32(value) \ DECODE_UNSIGNED_32 (value) -#define SVM1_INST_ENTER_CLOSURE 0x25 +#define SVM1_INST_ENTER_CLOSURE 0x22 #define DECODE_SVM1_INST_ENTER_CLOSURE(index) \ DECODE_UNSIGNED_16 (index) -#define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8 0x26 +#define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8 0x23 #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8 0x27 +#define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8 0x24 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_LT_WR_WR_PCR_S8 0x28 +#define SVM1_INST_CJUMP_LT_WR_WR_PCR_S8 0x25 #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_GE_WR_WR_PCR_S8 0x29 +#define SVM1_INST_CJUMP_GE_WR_WR_PCR_S8 0x26 #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_GT_WR_WR_PCR_S8 0x2a +#define SVM1_INST_CJUMP_GT_WR_WR_PCR_S8 0x27 #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_LE_WR_WR_PCR_S8 0x2b +#define SVM1_INST_CJUMP_LE_WR_WR_PCR_S8 0x28 #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8 0x2c +#define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8 0x29 #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8 0x2d +#define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8 0x2a #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8 0x2e +#define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8 0x2b #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8 0x2f +#define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8 0x2c #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16 0x30 +#define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16 0x2d #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16 0x31 +#define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16 0x2e #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_LT_WR_WR_PCR_S16 0x32 +#define SVM1_INST_CJUMP_LT_WR_WR_PCR_S16 0x2f #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_GE_WR_WR_PCR_S16 0x33 +#define SVM1_INST_CJUMP_GE_WR_WR_PCR_S16 0x30 #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_GT_WR_WR_PCR_S16 0x34 +#define SVM1_INST_CJUMP_GT_WR_WR_PCR_S16 0x31 #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_LE_WR_WR_PCR_S16 0x35 +#define SVM1_INST_CJUMP_LE_WR_WR_PCR_S16 0x32 #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16 0x36 +#define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16 0x33 #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16 0x37 +#define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16 0x34 #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16 0x38 +#define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16 0x35 #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16 0x39 +#define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16 0x36 #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32 0x3a +#define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32 0x37 #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32 0x3b +#define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32 0x38 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_LT_WR_WR_PCR_S32 0x3c +#define SVM1_INST_CJUMP_LT_WR_WR_PCR_S32 0x39 #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_GE_WR_WR_PCR_S32 0x3d +#define SVM1_INST_CJUMP_GE_WR_WR_PCR_S32 0x3a #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_GT_WR_WR_PCR_S32 0x3e +#define SVM1_INST_CJUMP_GT_WR_WR_PCR_S32 0x3b #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_LE_WR_WR_PCR_S32 0x3f +#define SVM1_INST_CJUMP_LE_WR_WR_PCR_S32 0x3c #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32 0x40 +#define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32 0x3d #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32 0x41 +#define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32 0x3e #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32 0x42 +#define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32 0x3f #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32 0x43 +#define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32 0x40 #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32(source1, source2, value) \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_EQ_WR_PCR_S8 0x44 +#define SVM1_INST_CJUMP_EQ_WR_PCR_S8 0x41 #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_NEQ_WR_PCR_S8 0x45 +#define SVM1_INST_CJUMP_NEQ_WR_PCR_S8 0x42 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_SLT_WR_PCR_S8 0x46 +#define SVM1_INST_CJUMP_SLT_WR_PCR_S8 0x43 #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_SGE_WR_PCR_S8 0x47 +#define SVM1_INST_CJUMP_SGE_WR_PCR_S8 0x44 #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_SGT_WR_PCR_S8 0x48 +#define SVM1_INST_CJUMP_SGT_WR_PCR_S8 0x45 #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_SLE_WR_PCR_S8 0x49 +#define SVM1_INST_CJUMP_SLE_WR_PCR_S8 0x46 #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_EQ_WR_PCR_S16 0x4a +#define SVM1_INST_CJUMP_EQ_WR_PCR_S16 0x47 #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_NEQ_WR_PCR_S16 0x4b +#define SVM1_INST_CJUMP_NEQ_WR_PCR_S16 0x48 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_SLT_WR_PCR_S16 0x4c +#define SVM1_INST_CJUMP_SLT_WR_PCR_S16 0x49 #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_SGE_WR_PCR_S16 0x4d +#define SVM1_INST_CJUMP_SGE_WR_PCR_S16 0x4a #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_SGT_WR_PCR_S16 0x4e +#define SVM1_INST_CJUMP_SGT_WR_PCR_S16 0x4b #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_SLE_WR_PCR_S16 0x4f +#define SVM1_INST_CJUMP_SLE_WR_PCR_S16 0x4c #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_EQ_WR_PCR_S32 0x50 +#define SVM1_INST_CJUMP_EQ_WR_PCR_S32 0x4d #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_NEQ_WR_PCR_S32 0x51 +#define SVM1_INST_CJUMP_NEQ_WR_PCR_S32 0x4e #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_SLT_WR_PCR_S32 0x52 +#define SVM1_INST_CJUMP_SLT_WR_PCR_S32 0x4f #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_SGE_WR_PCR_S32 0x53 +#define SVM1_INST_CJUMP_SGE_WR_PCR_S32 0x50 #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_SGT_WR_PCR_S32 0x54 +#define SVM1_INST_CJUMP_SGT_WR_PCR_S32 0x51 #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_SLE_WR_PCR_S32 0x55 +#define SVM1_INST_CJUMP_SLE_WR_PCR_S32 0x52 #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_FIX_WR_PCR_S8 0x56 +#define SVM1_INST_CJUMP_FIX_WR_PCR_S8 0x53 #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_NFIX_WR_PCR_S8 0x57 +#define SVM1_INST_CJUMP_NFIX_WR_PCR_S8 0x54 #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_IFIX_WR_PCR_S8 0x58 +#define SVM1_INST_CJUMP_IFIX_WR_PCR_S8 0x55 #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_NIFIX_WR_PCR_S8 0x59 +#define SVM1_INST_CJUMP_NIFIX_WR_PCR_S8 0x56 #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S8(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_FIX_WR_PCR_S16 0x5a +#define SVM1_INST_CJUMP_FIX_WR_PCR_S16 0x57 #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_NFIX_WR_PCR_S16 0x5b +#define SVM1_INST_CJUMP_NFIX_WR_PCR_S16 0x58 #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_IFIX_WR_PCR_S16 0x5c +#define SVM1_INST_CJUMP_IFIX_WR_PCR_S16 0x59 #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_NIFIX_WR_PCR_S16 0x5d +#define SVM1_INST_CJUMP_NIFIX_WR_PCR_S16 0x5a #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S16(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_FIX_WR_PCR_S32 0x5e +#define SVM1_INST_CJUMP_FIX_WR_PCR_S32 0x5b #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_NFIX_WR_PCR_S32 0x5f +#define SVM1_INST_CJUMP_NFIX_WR_PCR_S32 0x5c #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_IFIX_WR_PCR_S32 0x60 +#define SVM1_INST_CJUMP_IFIX_WR_PCR_S32 0x5d #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_NIFIX_WR_PCR_S32 0x61 +#define SVM1_INST_CJUMP_NIFIX_WR_PCR_S32 0x5e #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S32(source, value) \ DECODE_WORD_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8 0x62 +#define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8 0x5f #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8 0x63 +#define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8 0x60 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_LT_FR_FR_PCR_S8 0x64 +#define SVM1_INST_CJUMP_LT_FR_FR_PCR_S8 0x61 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S8(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_GT_FR_FR_PCR_S8 0x65 +#define SVM1_INST_CJUMP_GT_FR_FR_PCR_S8 0x62 #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S8(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_LE_FR_FR_PCR_S8 0x66 +#define SVM1_INST_CJUMP_LE_FR_FR_PCR_S8 0x63 #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S8(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_GE_FR_FR_PCR_S8 0x67 +#define SVM1_INST_CJUMP_GE_FR_FR_PCR_S8 0x64 #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S8(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8 0x68 +#define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8 0x65 #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8 0x69 +#define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8 0x66 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16 0x6a +#define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16 0x67 #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16 0x6b +#define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16 0x68 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_LT_FR_FR_PCR_S16 0x6c +#define SVM1_INST_CJUMP_LT_FR_FR_PCR_S16 0x69 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S16(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_GT_FR_FR_PCR_S16 0x6d +#define SVM1_INST_CJUMP_GT_FR_FR_PCR_S16 0x6a #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S16(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_LE_FR_FR_PCR_S16 0x6e +#define SVM1_INST_CJUMP_LE_FR_FR_PCR_S16 0x6b #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S16(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_GE_FR_FR_PCR_S16 0x6f +#define SVM1_INST_CJUMP_GE_FR_FR_PCR_S16 0x6c #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S16(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16 0x70 +#define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16 0x6d #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16 0x71 +#define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16 0x6e #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32 0x72 +#define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32 0x6f #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32 0x73 +#define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32 0x70 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_LT_FR_FR_PCR_S32 0x74 +#define SVM1_INST_CJUMP_LT_FR_FR_PCR_S32 0x71 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S32(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_GT_FR_FR_PCR_S32 0x75 +#define SVM1_INST_CJUMP_GT_FR_FR_PCR_S32 0x72 #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S32(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_LE_FR_FR_PCR_S32 0x76 +#define SVM1_INST_CJUMP_LE_FR_FR_PCR_S32 0x73 #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S32(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_GE_FR_FR_PCR_S32 0x77 +#define SVM1_INST_CJUMP_GE_FR_FR_PCR_S32 0x74 #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S32(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32 0x78 +#define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32 0x75 #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32 0x79 +#define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32 0x76 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32(source1, source2, value) \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_EQ_FR_PCR_S8 0x7a +#define SVM1_INST_CJUMP_EQ_FR_PCR_S8 0x77 #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S8(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_NEQ_FR_PCR_S8 0x7b +#define SVM1_INST_CJUMP_NEQ_FR_PCR_S8 0x78 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S8(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_LT_FR_PCR_S8 0x7c +#define SVM1_INST_CJUMP_LT_FR_PCR_S8 0x79 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S8(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_GT_FR_PCR_S8 0x7d +#define SVM1_INST_CJUMP_GT_FR_PCR_S8 0x7a #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S8(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_LE_FR_PCR_S8 0x7e +#define SVM1_INST_CJUMP_LE_FR_PCR_S8 0x7b #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S8(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_GE_FR_PCR_S8 0x7f +#define SVM1_INST_CJUMP_GE_FR_PCR_S8 0x7c #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S8(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_CMP_FR_PCR_S8 0x80 +#define SVM1_INST_CJUMP_CMP_FR_PCR_S8 0x7d #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S8(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_NCMP_FR_PCR_S8 0x81 +#define SVM1_INST_CJUMP_NCMP_FR_PCR_S8 0x7e #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S8(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_8 (value) -#define SVM1_INST_CJUMP_EQ_FR_PCR_S16 0x82 +#define SVM1_INST_CJUMP_EQ_FR_PCR_S16 0x7f #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S16(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_NEQ_FR_PCR_S16 0x83 +#define SVM1_INST_CJUMP_NEQ_FR_PCR_S16 0x80 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S16(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_LT_FR_PCR_S16 0x84 +#define SVM1_INST_CJUMP_LT_FR_PCR_S16 0x81 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S16(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_GT_FR_PCR_S16 0x85 +#define SVM1_INST_CJUMP_GT_FR_PCR_S16 0x82 #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S16(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_LE_FR_PCR_S16 0x86 +#define SVM1_INST_CJUMP_LE_FR_PCR_S16 0x83 #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S16(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_GE_FR_PCR_S16 0x87 +#define SVM1_INST_CJUMP_GE_FR_PCR_S16 0x84 #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S16(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_CMP_FR_PCR_S16 0x88 +#define SVM1_INST_CJUMP_CMP_FR_PCR_S16 0x85 #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S16(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_NCMP_FR_PCR_S16 0x89 +#define SVM1_INST_CJUMP_NCMP_FR_PCR_S16 0x86 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S16(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_16 (value) -#define SVM1_INST_CJUMP_EQ_FR_PCR_S32 0x8a +#define SVM1_INST_CJUMP_EQ_FR_PCR_S32 0x87 #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S32(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_NEQ_FR_PCR_S32 0x8b +#define SVM1_INST_CJUMP_NEQ_FR_PCR_S32 0x88 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S32(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_LT_FR_PCR_S32 0x8c +#define SVM1_INST_CJUMP_LT_FR_PCR_S32 0x89 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S32(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_GT_FR_PCR_S32 0x8d +#define SVM1_INST_CJUMP_GT_FR_PCR_S32 0x8a #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S32(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_LE_FR_PCR_S32 0x8e +#define SVM1_INST_CJUMP_LE_FR_PCR_S32 0x8b #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S32(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_GE_FR_PCR_S32 0x8f +#define SVM1_INST_CJUMP_GE_FR_PCR_S32 0x8c #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S32(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_CMP_FR_PCR_S32 0x90 +#define SVM1_INST_CJUMP_CMP_FR_PCR_S32 0x8d #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S32(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_CJUMP_NCMP_FR_PCR_S32 0x91 +#define SVM1_INST_CJUMP_NCMP_FR_PCR_S32 0x8e #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S32(source, value) \ DECODE_FLOAT_REGISTER (source); \ DECODE_SIGNED_32 (value) -#define SVM1_INST_TRAP_TRAP_0 0x92 +#define SVM1_INST_TRAP_TRAP_0 0x8f #define DECODE_SVM1_INST_TRAP_TRAP_0(code) \ DECODE_TRAP_0 (code) -#define SVM1_INST_TRAP_TRAP_1_WR 0x93 +#define SVM1_INST_TRAP_TRAP_1_WR 0x90 #define DECODE_SVM1_INST_TRAP_TRAP_1_WR(code, arg0) \ DECODE_TRAP_1 (code); \ DECODE_WORD_REGISTER (arg0) -#define SVM1_INST_TRAP_TRAP_2_WR 0x94 +#define SVM1_INST_TRAP_TRAP_2_WR 0x91 #define DECODE_SVM1_INST_TRAP_TRAP_2_WR(code, arg0, arg1) \ DECODE_TRAP_2 (code); \ DECODE_WORD_REGISTER (arg0); \ DECODE_WORD_REGISTER (arg1) -#define SVM1_INST_TRAP_TRAP_3_WR 0x95 +#define SVM1_INST_TRAP_TRAP_3_WR 0x92 #define DECODE_SVM1_INST_TRAP_TRAP_3_WR(code, arg0, arg1, arg2) \ DECODE_TRAP_3 (code); \ DECODE_WORD_REGISTER (arg0); \ DECODE_WORD_REGISTER (arg1); \ DECODE_WORD_REGISTER (arg2) -#define SVM1_INST_INTERRUPT_TEST_PROCEDURE 0x96 +#define SVM1_INST_INTERRUPT_TEST_PROCEDURE 0x93 -#define SVM1_INST_INTERRUPT_TEST_DYNAMIC_LINK 0x97 +#define SVM1_INST_INTERRUPT_TEST_DYNAMIC_LINK 0x94 -#define SVM1_INST_INTERRUPT_TEST_IC_PROCEDURE 0x98 +#define SVM1_INST_INTERRUPT_TEST_IC_PROCEDURE 0x95 -#define SVM1_INST_INTERRUPT_TEST_CONTINUATION 0x99 +#define SVM1_INST_INTERRUPT_TEST_CONTINUATION 0x96 -#define SVM1_INST_FLONUM_HEADER_U8 0x9a +#define SVM1_INST_FLONUM_HEADER_U8 0x97 #define DECODE_SVM1_INST_FLONUM_HEADER_U8(target, value) \ DECODE_WORD_REGISTER (target); \ DECODE_UNSIGNED_8 (value) -#define SVM1_INST_FLONUM_HEADER_U16 0x9b +#define SVM1_INST_FLONUM_HEADER_U16 0x98 #define DECODE_SVM1_INST_FLONUM_HEADER_U16(target, value) \ DECODE_WORD_REGISTER (target); \ DECODE_UNSIGNED_16 (value) -#define SVM1_INST_FLONUM_HEADER_U32 0x9c +#define SVM1_INST_FLONUM_HEADER_U32 0x99 #define DECODE_SVM1_INST_FLONUM_HEADER_U32(target, value) \ DECODE_WORD_REGISTER (target); \ DECODE_UNSIGNED_32 (value) -#define SVM1_INST_FLONUM_HEADER 0x9d +#define SVM1_INST_FLONUM_HEADER 0x9a #define DECODE_SVM1_INST_FLONUM_HEADER(target, n_elts) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (n_elts) -#define SVM1_INST_COPY_WR 0x9e +#define SVM1_INST_COPY_WR 0x9b #define DECODE_SVM1_INST_COPY_WR(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_COPY_FR 0x9f +#define SVM1_INST_COPY_FR 0x9c #define DECODE_SVM1_INST_COPY_FR(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_NEGATE_WR 0xa0 +#define SVM1_INST_NEGATE_WR 0x9d #define DECODE_SVM1_INST_NEGATE_WR(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_NEGATE_FR 0xa1 +#define SVM1_INST_NEGATE_FR 0x9e #define DECODE_SVM1_INST_NEGATE_FR(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_INCREMENT_WR 0xa2 +#define SVM1_INST_INCREMENT_WR 0x9f #define DECODE_SVM1_INST_INCREMENT_WR(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_INCREMENT_FR 0xa3 +#define SVM1_INST_INCREMENT_FR 0xa0 #define DECODE_SVM1_INST_INCREMENT_FR(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_DECREMENT_WR 0xa4 +#define SVM1_INST_DECREMENT_WR 0xa1 #define DECODE_SVM1_INST_DECREMENT_WR(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_DECREMENT_FR 0xa5 +#define SVM1_INST_DECREMENT_FR 0xa2 #define DECODE_SVM1_INST_DECREMENT_FR(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_ABS_WR 0xa6 +#define SVM1_INST_ABS_WR 0xa3 #define DECODE_SVM1_INST_ABS_WR(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_ABS_FR 0xa7 +#define SVM1_INST_ABS_FR 0xa4 #define DECODE_SVM1_INST_ABS_FR(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_OBJECT_TYPE 0xa8 +#define SVM1_INST_OBJECT_TYPE 0xa5 #define DECODE_SVM1_INST_OBJECT_TYPE(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_OBJECT_DATUM 0xa9 +#define SVM1_INST_OBJECT_DATUM 0xa6 #define DECODE_SVM1_INST_OBJECT_DATUM(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_OBJECT_ADDRESS 0xaa +#define SVM1_INST_OBJECT_ADDRESS 0xa7 #define DECODE_SVM1_INST_OBJECT_ADDRESS(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_FIXNUM_TO_INTEGER 0xab +#define SVM1_INST_FIXNUM_TO_INTEGER 0xa8 #define DECODE_SVM1_INST_FIXNUM_TO_INTEGER(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_INTEGER_TO_FIXNUM 0xac +#define SVM1_INST_INTEGER_TO_FIXNUM 0xa9 #define DECODE_SVM1_INST_INTEGER_TO_FIXNUM(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_NOT 0xad +#define SVM1_INST_NOT 0xaa #define DECODE_SVM1_INST_NOT(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_FLONUM_ALIGN 0xae +#define SVM1_INST_FLONUM_ALIGN 0xab #define DECODE_SVM1_INST_FLONUM_ALIGN(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_FLONUM_LENGTH 0xaf +#define SVM1_INST_FLONUM_LENGTH 0xac #define DECODE_SVM1_INST_FLONUM_LENGTH(target, source) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source) -#define SVM1_INST_SQRT 0xb0 +#define SVM1_INST_SQRT 0xad #define DECODE_SVM1_INST_SQRT(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_ROUND 0xb1 +#define SVM1_INST_ROUND 0xae #define DECODE_SVM1_INST_ROUND(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_CEILING 0xb2 +#define SVM1_INST_CEILING 0xaf #define DECODE_SVM1_INST_CEILING(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_FLOOR 0xb3 +#define SVM1_INST_FLOOR 0xb0 #define DECODE_SVM1_INST_FLOOR(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_TRUNCATE 0xb4 +#define SVM1_INST_TRUNCATE 0xb1 #define DECODE_SVM1_INST_TRUNCATE(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_LOG 0xb5 +#define SVM1_INST_LOG 0xb2 #define DECODE_SVM1_INST_LOG(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_EXP 0xb6 +#define SVM1_INST_EXP 0xb3 #define DECODE_SVM1_INST_EXP(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_COS 0xb7 +#define SVM1_INST_COS 0xb4 #define DECODE_SVM1_INST_COS(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_SIN 0xb8 +#define SVM1_INST_SIN 0xb5 #define DECODE_SVM1_INST_SIN(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_TAN 0xb9 +#define SVM1_INST_TAN 0xb6 #define DECODE_SVM1_INST_TAN(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_ACOS 0xba +#define SVM1_INST_ACOS 0xb7 #define DECODE_SVM1_INST_ACOS(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_ASIN 0xbb +#define SVM1_INST_ASIN 0xb8 #define DECODE_SVM1_INST_ASIN(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_ATAN 0xbc +#define SVM1_INST_ATAN 0xb9 #define DECODE_SVM1_INST_ATAN(target, source) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source) -#define SVM1_INST_ADD_WR 0xbd +#define SVM1_INST_ADD_WR 0xba #define DECODE_SVM1_INST_ADD_WR(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_ADD_FR 0xbe +#define SVM1_INST_ADD_FR 0xbb #define DECODE_SVM1_INST_ADD_FR(target, source1, source2) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2) -#define SVM1_INST_SUBTRACT_WR 0xbf +#define SVM1_INST_SUBTRACT_WR 0xbc #define DECODE_SVM1_INST_SUBTRACT_WR(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_SUBTRACT_FR 0xc0 +#define SVM1_INST_SUBTRACT_FR 0xbd #define DECODE_SVM1_INST_SUBTRACT_FR(target, source1, source2) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2) -#define SVM1_INST_MULTIPLY_WR 0xc1 +#define SVM1_INST_MULTIPLY_WR 0xbe #define DECODE_SVM1_INST_MULTIPLY_WR(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_MULTIPLY_FR 0xc2 +#define SVM1_INST_MULTIPLY_FR 0xbf #define DECODE_SVM1_INST_MULTIPLY_FR(target, source1, source2) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2) -#define SVM1_INST_PRODUCT 0xc3 +#define SVM1_INST_PRODUCT 0xc0 #define DECODE_SVM1_INST_PRODUCT(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_QUOTIENT 0xc4 +#define SVM1_INST_QUOTIENT 0xc1 #define DECODE_SVM1_INST_QUOTIENT(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_REMAINDER 0xc5 +#define SVM1_INST_REMAINDER 0xc2 #define DECODE_SVM1_INST_REMAINDER(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_LSH 0xc6 +#define SVM1_INST_LSH 0xc3 #define DECODE_SVM1_INST_LSH(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_AND 0xc7 +#define SVM1_INST_AND 0xc4 #define DECODE_SVM1_INST_AND(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_ANDC 0xc8 +#define SVM1_INST_ANDC 0xc5 #define DECODE_SVM1_INST_ANDC(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_OR 0xc9 +#define SVM1_INST_OR 0xc6 #define DECODE_SVM1_INST_OR(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_XOR 0xca +#define SVM1_INST_XOR 0xc7 #define DECODE_SVM1_INST_XOR(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_MAX_UNSIGNED 0xcb +#define SVM1_INST_MAX_UNSIGNED 0xc8 #define DECODE_SVM1_INST_MAX_UNSIGNED(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_MIN_UNSIGNED 0xcc +#define SVM1_INST_MIN_UNSIGNED 0xc9 #define DECODE_SVM1_INST_MIN_UNSIGNED(target, source1, source2) \ DECODE_WORD_REGISTER (target); \ DECODE_WORD_REGISTER (source1); \ DECODE_WORD_REGISTER (source2) -#define SVM1_INST_DIVIDE 0xcd +#define SVM1_INST_DIVIDE 0xca #define DECODE_SVM1_INST_DIVIDE(target, source1, source2) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source1); \ DECODE_FLOAT_REGISTER (source2) -#define SVM1_INST_ATAN2 0xce +#define SVM1_INST_ATAN2 0xcb #define DECODE_SVM1_INST_ATAN2(target, source1, source2) \ DECODE_FLOAT_REGISTER (target); \ DECODE_FLOAT_REGISTER (source1); \ diff --git a/src/microcode/svm1-interp.c b/src/microcode/svm1-interp.c index a054340e6..72c59f073 100644 --- a/src/microcode/svm1-interp.c +++ b/src/microcode/svm1-interp.c @@ -466,27 +466,6 @@ DEFINE_INST (load_immediate_wr_s32) NEXT_PC; } -DEFINE_INST (load_immediate_wr_u8) -{ - DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_U8 (target, value); - WREG_SET (target, value); - NEXT_PC; -} - -DEFINE_INST (load_immediate_wr_u16) -{ - DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_U16 (target, value); - WREG_SET (target, value); - NEXT_PC; -} - -DEFINE_INST (load_immediate_wr_u32) -{ - DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_U32 (target, value); - WREG_SET (target, value); - NEXT_PC; -} - DEFINE_INST (load_immediate_fr_flt) { DECODE_SVM1_INST_LOAD_IMMEDIATE_FR_FLT (target, value); @@ -503,44 +482,44 @@ DEFINE_INST (load_immediate_fr_flt) #define X_OBJECT_ADDRESS(o) ((word_t) (OBJECT_ADDRESS (o))) -DEFINE_INST (load_non_pointer_tc_u8) +DEFINE_INST (load_non_pointer_tc_s8) { - DECODE_SVM1_INST_LOAD_NON_POINTER_TC_U8 (target, type, datum); + DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S8 (target, type, datum); WREG_SET (target, (X_MAKE_OBJECT (type, datum))); NEXT_PC; } -DEFINE_INST (load_non_pointer_tc_u16) +DEFINE_INST (load_non_pointer_tc_s16) { - DECODE_SVM1_INST_LOAD_NON_POINTER_TC_U16 (target, type, datum); + DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S16 (target, type, datum); WREG_SET (target, (X_MAKE_OBJECT (type, datum))); NEXT_PC; } -DEFINE_INST (load_non_pointer_tc_u32) +DEFINE_INST (load_non_pointer_tc_s32) { - DECODE_SVM1_INST_LOAD_NON_POINTER_TC_U32 (target, type, datum); + DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S32 (target, type, datum); WREG_SET (target, (X_MAKE_OBJECT (type, datum))); NEXT_PC; } -DEFINE_INST (load_non_pointer_wr_u8) +DEFINE_INST (load_non_pointer_wr_s8) { - DECODE_SVM1_INST_LOAD_NON_POINTER_WR_U8 (target, type, datum); + DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S8 (target, type, datum); WREG_SET (target, (X_MAKE_OBJECT ((WREG_REF (type)), datum))); NEXT_PC; } -DEFINE_INST (load_non_pointer_wr_u16) +DEFINE_INST (load_non_pointer_wr_s16) { - DECODE_SVM1_INST_LOAD_NON_POINTER_WR_U16 (target, type, datum); + DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S16 (target, type, datum); WREG_SET (target, (X_MAKE_OBJECT ((WREG_REF (type)), datum))); NEXT_PC; } -DEFINE_INST (load_non_pointer_wr_u32) +DEFINE_INST (load_non_pointer_wr_s32) { - DECODE_SVM1_INST_LOAD_NON_POINTER_WR_U32 (target, type, datum); + DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S32 (target, type, datum); WREG_SET (target, (X_MAKE_OBJECT ((WREG_REF (type)), datum))); NEXT_PC; } -- 2.25.1