From b8459248115daf063563b76de8214944436aa1d8 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Mon, 22 Jan 2024 21:28:30 +1100 Subject: [PATCH] Change expr,type to type:expr, mov rN,r0 to get rN, mov r0,rN to set Rn --- c_vm.c | 568 +++++++++++++++++++++++++++---------------------------- test.asm | 424 ++++++++++++++++++++--------------------- vm_asm.l | 3 +- vm_asm.t | 218 ++++++++++----------- vm_asm.y | 409 +++++++++++++++++++-------------------- 5 files changed, 812 insertions(+), 810 deletions(-) diff --git a/c_vm.c b/c_vm.c index f9b593c..be2b309 100644 --- a/c_vm.c +++ b/c_vm.c @@ -3,21 +3,21 @@ enum op { // the following are coded as OP_xxx OP_NOP = 0, - OP_ADD_EXPR_INT8_R1, - OP_ADD_EXPR_INT8_R2, - OP_ADD_EXPR_INT8_R3, - OP_ADD_EXPR_INT8_R4, - OP_ADD_EXPR_INT8_R5, - OP_ADD_EXPR_INT16_R1, - OP_ADD_EXPR_INT16_R2, - OP_ADD_EXPR_INT16_R3, - OP_ADD_EXPR_INT16_R4, - OP_ADD_EXPR_INT16_R5, - OP_ADD_EXPR_INT32_R1, - OP_ADD_EXPR_INT32_R2, - OP_ADD_EXPR_INT32_R3, - OP_ADD_EXPR_INT32_R4, - OP_ADD_EXPR_INT32_R5, + OP_ADD_INT8_EXPR_R1, + OP_ADD_INT8_EXPR_R2, + OP_ADD_INT8_EXPR_R3, + OP_ADD_INT8_EXPR_R4, + OP_ADD_INT8_EXPR_R5, + OP_ADD_INT16_EXPR_R1, + OP_ADD_INT16_EXPR_R2, + OP_ADD_INT16_EXPR_R3, + OP_ADD_INT16_EXPR_R4, + OP_ADD_INT16_EXPR_R5, + OP_ADD_INT32_EXPR_R1, + OP_ADD_INT32_EXPR_R2, + OP_ADD_INT32_EXPR_R3, + OP_ADD_INT32_EXPR_R4, + OP_ADD_INT32_EXPR_R5, OP_ADD_INT8, OP_ADD_INT16, OP_ADD_INT32, @@ -26,9 +26,9 @@ enum op { OP_AND_INT16, OP_AND_INT32, OP_CALL, - OP_CALL_EXPR_INT8, - OP_CALL_EXPR_INT16, - OP_CALL_EXPR_INT32, + OP_CALL_INT8_EXPR, + OP_CALL_INT16_EXPR, + OP_CALL_INT32_EXPR, OP_CVT_INT8_INT16, OP_CVT_INT8_INT32, OP_CVT_INT8_FLOAT32, @@ -79,66 +79,66 @@ enum op { OP_IMM_EXPR_8, OP_IMM_EXPR_16, OP_IMM_EXPR_32, - OP_JMPF_INT8_EXPR_INT8, - OP_JMPF_INT8_EXPR_INT16, - OP_JMPF_INT8_EXPR_INT32, - OP_JMPF_INT16_EXPR_INT8, - OP_JMPF_INT16_EXPR_INT16, - OP_JMPF_INT16_EXPR_INT32, - OP_JMPF_INT32_EXPR_INT8, - OP_JMPF_INT32_EXPR_INT16, - OP_JMPF_INT32_EXPR_INT32, - OP_JMPF_FLOAT32_EXPR_INT8, - OP_JMPF_FLOAT32_EXPR_INT16, - OP_JMPF_FLOAT32_EXPR_INT32, - OP_JMPF_R1_EXPR_INT8, - OP_JMPF_R1_EXPR_INT16, - OP_JMPF_R1_EXPR_INT32, - OP_JMPF_R2_EXPR_INT8, - OP_JMPF_R2_EXPR_INT16, - OP_JMPF_R2_EXPR_INT32, - OP_JMPF_R3_EXPR_INT8, - OP_JMPF_R3_EXPR_INT16, - OP_JMPF_R3_EXPR_INT32, - OP_JMPT_INT8_EXPR_INT8, - OP_JMPT_INT8_EXPR_INT16, - OP_JMPT_INT8_EXPR_INT32, - OP_JMPT_INT16_EXPR_INT8, - OP_JMPT_INT16_EXPR_INT16, - OP_JMPT_INT16_EXPR_INT32, - OP_JMPT_INT32_EXPR_INT8, - OP_JMPT_INT32_EXPR_INT16, - OP_JMPT_INT32_EXPR_INT32, - OP_JMPT_FLOAT32_EXPR_INT8, - OP_JMPT_FLOAT32_EXPR_INT16, - OP_JMPT_FLOAT32_EXPR_INT32, - OP_JMPT_R1_EXPR_INT8, - OP_JMPT_R1_EXPR_INT16, - OP_JMPT_R1_EXPR_INT32, - OP_JMPT_R2_EXPR_INT8, - OP_JMPT_R2_EXPR_INT16, - OP_JMPT_R2_EXPR_INT32, - OP_JMPT_R3_EXPR_INT8, - OP_JMPT_R3_EXPR_INT16, - OP_JMPT_R3_EXPR_INT32, + OP_JMPF_INT8_INT8_EXPR, + OP_JMPF_INT8_INT16_EXPR, + OP_JMPF_INT8_INT32_EXPR, + OP_JMPF_INT16_INT8_EXPR, + OP_JMPF_INT16_INT16_EXPR, + OP_JMPF_INT16_INT32_EXPR, + OP_JMPF_INT32_INT8_EXPR, + OP_JMPF_INT32_INT16_EXPR, + OP_JMPF_INT32_INT32_EXPR, + OP_JMPF_FLOAT32_INT8_EXPR, + OP_JMPF_FLOAT32_INT16_EXPR, + OP_JMPF_FLOAT32_INT32_EXPR, + OP_JMPF_R1_INT8_EXPR, + OP_JMPF_R1_INT16_EXPR, + OP_JMPF_R1_INT32_EXPR, + OP_JMPF_R2_INT8_EXPR, + OP_JMPF_R2_INT16_EXPR, + OP_JMPF_R2_INT32_EXPR, + OP_JMPF_R3_INT8_EXPR, + OP_JMPF_R3_INT16_EXPR, + OP_JMPF_R3_INT32_EXPR, + OP_JMPT_INT8_INT8_EXPR, + OP_JMPT_INT8_INT16_EXPR, + OP_JMPT_INT8_INT32_EXPR, + OP_JMPT_INT16_INT8_EXPR, + OP_JMPT_INT16_INT16_EXPR, + OP_JMPT_INT16_INT32_EXPR, + OP_JMPT_INT32_INT8_EXPR, + OP_JMPT_INT32_INT16_EXPR, + OP_JMPT_INT32_INT32_EXPR, + OP_JMPT_FLOAT32_INT8_EXPR, + OP_JMPT_FLOAT32_INT16_EXPR, + OP_JMPT_FLOAT32_INT32_EXPR, + OP_JMPT_R1_INT8_EXPR, + OP_JMPT_R1_INT16_EXPR, + OP_JMPT_R1_INT32_EXPR, + OP_JMPT_R2_INT8_EXPR, + OP_JMPT_R2_INT16_EXPR, + OP_JMPT_R2_INT32_EXPR, + OP_JMPT_R3_INT8_EXPR, + OP_JMPT_R3_INT16_EXPR, + OP_JMPT_R3_INT32_EXPR, OP_LD_8, OP_LD_16, OP_LD_32, - OP_LEA_EXPR_INT8_R1, - OP_LEA_EXPR_INT8_R2, - OP_LEA_EXPR_INT8_R3, - OP_LEA_EXPR_INT8_R4, - OP_LEA_EXPR_INT8_R5, - OP_LEA_EXPR_INT16_R1, - OP_LEA_EXPR_INT16_R2, - OP_LEA_EXPR_INT16_R3, - OP_LEA_EXPR_INT16_R4, - OP_LEA_EXPR_INT16_R5, - OP_LEA_EXPR_INT32_R1, - OP_LEA_EXPR_INT32_R2, - OP_LEA_EXPR_INT32_R3, - OP_LEA_EXPR_INT32_R4, - OP_LEA_EXPR_INT32_R5, + OP_LEA_INT8_EXPR_R1, + OP_LEA_INT8_EXPR_R2, + OP_LEA_INT8_EXPR_R3, + OP_LEA_INT8_EXPR_R4, + OP_LEA_INT8_EXPR_R5, + OP_LEA_INT16_EXPR_R1, + OP_LEA_INT16_EXPR_R2, + OP_LEA_INT16_EXPR_R3, + OP_LEA_INT16_EXPR_R4, + OP_LEA_INT16_EXPR_R5, + OP_LEA_INT32_EXPR_R1, + OP_LEA_INT32_EXPR_R2, + OP_LEA_INT32_EXPR_R3, + OP_LEA_INT32_EXPR_R4, + OP_LEA_INT32_EXPR_R5, OP_LE_INT8, OP_LE_INT16, OP_LE_INT32, @@ -165,16 +165,16 @@ enum op { OP_MOD_R_UINT8, OP_MOD_R_UINT16, OP_MOD_R_UINT32, - OP_MOV_R0_R1, - OP_MOV_R0_R2, - OP_MOV_R0_R3, - OP_MOV_R0_R4, - OP_MOV_R0_R5, - OP_MOV_R1_R0, - OP_MOV_R2_R0, - OP_MOV_R3_R0, - OP_MOV_R4_R0, - OP_MOV_R5_R0, + OP_SET_R1, + OP_SET_R2, + OP_SET_R3, + OP_SET_R4, + OP_SET_R5, + OP_GET_R1, + OP_GET_R2, + OP_GET_R3, + OP_GET_R4, + OP_GET_R5, OP_MUL_INT8, OP_MUL_INT16, OP_MUL_INT32, @@ -249,18 +249,18 @@ enum op { // the following are coded as 0xff, OP_xxx & 0xff // the commented items are for a system with 64-bit addressing - //OP_ADD_EXPR_INT64_R1 = 0x100, - //OP_ADD_EXPR_INT64_R2, - //OP_ADD_EXPR_INT64_R3, - //OP_ADD_EXPR_INT64_R4, - //OP_ADD_EXPR_INT64_R5, + //OP_ADD_INT64_EXPR_R1 = 0x100, + //OP_ADD_INT64_EXPR_R2, + //OP_ADD_INT64_EXPR_R3, + //OP_ADD_INT64_EXPR_R4, + //OP_ADD_INT64_EXPR_R5, OP_ADD_INT64 = 0x100, OP_ADD_INT128, OP_ADD_FLOAT64, OP_ADD_FLOAT128, OP_AND_INT64, OP_AND_INT128, - //OP_CALL_EXPR_INT64, + //OP_CALL_INT64_EXPR, OP_CVT_INT8_INT64, OP_CVT_INT8_INT128, OP_CVT_INT8_FLOAT64, @@ -347,59 +347,59 @@ enum op { OP_GT_FLOAT128, OP_IMM_EXPR_64, OP_IMM_EXPR_128, - //OP_JMPF_INT8_EXPR_INT64, - //OP_JMPF_INT16_EXPR_INT64, - //OP_JMPF_INT32_EXPR_INT64, - OP_JMPF_INT64_EXPR_INT8, - OP_JMPF_INT64_EXPR_INT16, - OP_JMPF_INT64_EXPR_INT32, - //OP_JMPF_INT64_EXPR_INT64, - OP_JMPF_INT128_EXPR_INT8, - OP_JMPF_INT128_EXPR_INT16, - OP_JMPF_INT128_EXPR_INT32, - //OP_JMPF_INT128_EXPR_INT64, - //OP_JMPF_FLOAT32_EXPR_INT64, - OP_JMPF_FLOAT64_EXPR_INT8, - OP_JMPF_FLOAT64_EXPR_INT16, - OP_JMPF_FLOAT64_EXPR_INT32, - //OP_JMPF_FLOAT64_EXPR_INT64, - OP_JMPF_FLOAT128_EXPR_INT8, - OP_JMPF_FLOAT128_EXPR_INT16, - OP_JMPF_FLOAT128_EXPR_INT32, - //OP_JMPF_FLOAT128_EXPR_INT64, - //OP_JMPF_R1_EXPR_INT64, - //OP_JMPF_R2_EXPR_INT64, - //OP_JMPF_R3_EXPR_INT64, - //OP_JMPT_INT8_EXPR_INT64, - //OP_JMPT_INT16_EXPR_INT64, - //OP_JMPT_INT32_EXPR_INT64, - OP_JMPT_INT64_EXPR_INT8, - OP_JMPT_INT64_EXPR_INT16, - OP_JMPT_INT64_EXPR_INT32, - //OP_JMPT_INT64_EXPR_INT64, - OP_JMPT_INT128_EXPR_INT8, - OP_JMPT_INT128_EXPR_INT16, - OP_JMPT_INT128_EXPR_INT32, - //OP_JMPT_INT128_EXPR_INT64, - //OP_JMPT_FLOAT32_EXPR_INT64, - OP_JMPT_FLOAT64_EXPR_INT8, - OP_JMPT_FLOAT64_EXPR_INT16, - OP_JMPT_FLOAT64_EXPR_INT32, - //OP_JMPT_FLOAT64_EXPR_INT64, - OP_JMPT_FLOAT128_EXPR_INT8, - OP_JMPT_FLOAT128_EXPR_INT16, - OP_JMPT_FLOAT128_EXPR_INT32, - //OP_JMPT_FLOAT128_EXPR_INT64, - //OP_JMPT_R1_EXPR_INT64, - //OP_JMPT_R2_EXPR_INT64, - //OP_JMPT_R3_EXPR_INT64, + //OP_JMPF_INT8_INT64_EXPR, + //OP_JMPF_INT16_INT64_EXPR, + //OP_JMPF_INT32_INT64_EXPR, + OP_JMPF_INT64_INT8_EXPR, + OP_JMPF_INT64_INT16_EXPR, + OP_JMPF_INT64_INT32_EXPR, + //OP_JMPF_INT64_INT64_EXPR, + OP_JMPF_INT128_INT8_EXPR, + OP_JMPF_INT128_INT16_EXPR, + OP_JMPF_INT128_INT32_EXPR, + //OP_JMPF_INT128_INT64_EXPR, + //OP_JMPF_FLOAT32_INT64_EXPR, + OP_JMPF_FLOAT64_INT8_EXPR, + OP_JMPF_FLOAT64_INT16_EXPR, + OP_JMPF_FLOAT64_INT32_EXPR, + //OP_JMPF_FLOAT64_INT64_EXPR, + OP_JMPF_FLOAT128_INT8_EXPR, + OP_JMPF_FLOAT128_INT16_EXPR, + OP_JMPF_FLOAT128_INT32_EXPR, + //OP_JMPF_FLOAT128_INT64_EXPR, + //OP_JMPF_R1_INT64_EXPR, + //OP_JMPF_R2_INT64_EXPR, + //OP_JMPF_R3_INT64_EXPR, + //OP_JMPT_INT8_INT64_EXPR, + //OP_JMPT_INT16_INT64_EXPR, + //OP_JMPT_INT32_INT64_EXPR, + OP_JMPT_INT64_INT8_EXPR, + OP_JMPT_INT64_INT16_EXPR, + OP_JMPT_INT64_INT32_EXPR, + //OP_JMPT_INT64_INT64_EXPR, + OP_JMPT_INT128_INT8_EXPR, + OP_JMPT_INT128_INT16_EXPR, + OP_JMPT_INT128_INT32_EXPR, + //OP_JMPT_INT128_INT64_EXPR, + //OP_JMPT_FLOAT32_INT64_EXPR, + OP_JMPT_FLOAT64_INT8_EXPR, + OP_JMPT_FLOAT64_INT16_EXPR, + OP_JMPT_FLOAT64_INT32_EXPR, + //OP_JMPT_FLOAT64_INT64_EXPR, + OP_JMPT_FLOAT128_INT8_EXPR, + OP_JMPT_FLOAT128_INT16_EXPR, + OP_JMPT_FLOAT128_INT32_EXPR, + //OP_JMPT_FLOAT128_INT64_EXPR, + //OP_JMPT_R1_INT64_EXPR, + //OP_JMPT_R2_INT64_EXPR, + //OP_JMPT_R3_INT64_EXPR, OP_LD_64, OP_LD_128, - //OP_LEA_EXPR_INT64_R1, - //OP_LEA_EXPR_INT64_R2, - //OP_LEA_EXPR_INT64_R3, - //OP_LEA_EXPR_INT64_R4, - //OP_LEA_EXPR_INT64_R5, + //OP_LEA_INT64_EXPR_R1, + //OP_LEA_INT64_EXPR_R2, + //OP_LEA_INT64_EXPR_R3, + //OP_LEA_INT64_EXPR_R4, + //OP_LEA_INT64_EXPR_R5, OP_LE_INT64, OP_LE_INT128, OP_LE_UINT64, @@ -470,21 +470,21 @@ enum op { int main(void) { printf("OP_NOP = 0x%x\n", OP_NOP); - printf("OP_ADD_EXPR_INT8_R1 = 0x%x\n", OP_ADD_EXPR_INT8_R1); - printf("OP_ADD_EXPR_INT8_R2 = 0x%x\n", OP_ADD_EXPR_INT8_R2); - printf("OP_ADD_EXPR_INT8_R3 = 0x%x\n", OP_ADD_EXPR_INT8_R3); - printf("OP_ADD_EXPR_INT8_R4 = 0x%x\n", OP_ADD_EXPR_INT8_R4); - printf("OP_ADD_EXPR_INT8_R5 = 0x%x\n", OP_ADD_EXPR_INT8_R5); - printf("OP_ADD_EXPR_INT16_R1 = 0x%x\n", OP_ADD_EXPR_INT16_R1); - printf("OP_ADD_EXPR_INT16_R2 = 0x%x\n", OP_ADD_EXPR_INT16_R2); - printf("OP_ADD_EXPR_INT16_R3 = 0x%x\n", OP_ADD_EXPR_INT16_R3); - printf("OP_ADD_EXPR_INT16_R4 = 0x%x\n", OP_ADD_EXPR_INT16_R4); - printf("OP_ADD_EXPR_INT16_R5 = 0x%x\n", OP_ADD_EXPR_INT16_R5); - printf("OP_ADD_EXPR_INT32_R1 = 0x%x\n", OP_ADD_EXPR_INT32_R1); - printf("OP_ADD_EXPR_INT32_R2 = 0x%x\n", OP_ADD_EXPR_INT32_R2); - printf("OP_ADD_EXPR_INT32_R3 = 0x%x\n", OP_ADD_EXPR_INT32_R3); - printf("OP_ADD_EXPR_INT32_R4 = 0x%x\n", OP_ADD_EXPR_INT32_R4); - printf("OP_ADD_EXPR_INT32_R5 = 0x%x\n", OP_ADD_EXPR_INT32_R5); + printf("OP_ADD_INT8_EXPR_R1 = 0x%x\n", OP_ADD_INT8_EXPR_R1); + printf("OP_ADD_INT8_EXPR_R2 = 0x%x\n", OP_ADD_INT8_EXPR_R2); + printf("OP_ADD_INT8_EXPR_R3 = 0x%x\n", OP_ADD_INT8_EXPR_R3); + printf("OP_ADD_INT8_EXPR_R4 = 0x%x\n", OP_ADD_INT8_EXPR_R4); + printf("OP_ADD_INT8_EXPR_R5 = 0x%x\n", OP_ADD_INT8_EXPR_R5); + printf("OP_ADD_INT16_EXPR_R1 = 0x%x\n", OP_ADD_INT16_EXPR_R1); + printf("OP_ADD_INT16_EXPR_R2 = 0x%x\n", OP_ADD_INT16_EXPR_R2); + printf("OP_ADD_INT16_EXPR_R3 = 0x%x\n", OP_ADD_INT16_EXPR_R3); + printf("OP_ADD_INT16_EXPR_R4 = 0x%x\n", OP_ADD_INT16_EXPR_R4); + printf("OP_ADD_INT16_EXPR_R5 = 0x%x\n", OP_ADD_INT16_EXPR_R5); + printf("OP_ADD_INT32_EXPR_R1 = 0x%x\n", OP_ADD_INT32_EXPR_R1); + printf("OP_ADD_INT32_EXPR_R2 = 0x%x\n", OP_ADD_INT32_EXPR_R2); + printf("OP_ADD_INT32_EXPR_R3 = 0x%x\n", OP_ADD_INT32_EXPR_R3); + printf("OP_ADD_INT32_EXPR_R4 = 0x%x\n", OP_ADD_INT32_EXPR_R4); + printf("OP_ADD_INT32_EXPR_R5 = 0x%x\n", OP_ADD_INT32_EXPR_R5); printf("OP_ADD_INT8 = 0x%x\n", OP_ADD_INT8); printf("OP_ADD_INT16 = 0x%x\n", OP_ADD_INT16); printf("OP_ADD_INT32 = 0x%x\n", OP_ADD_INT32); @@ -493,9 +493,9 @@ int main(void) { printf("OP_AND_INT16 = 0x%x\n", OP_AND_INT16); printf("OP_AND_INT32 = 0x%x\n", OP_AND_INT32); printf("OP_CALL = 0x%x\n", OP_CALL); - printf("OP_CALL_EXPR_INT8 = 0x%x\n", OP_CALL_EXPR_INT8); - printf("OP_CALL_EXPR_INT16 = 0x%x\n", OP_CALL_EXPR_INT16); - printf("OP_CALL_EXPR_INT32 = 0x%x\n", OP_CALL_EXPR_INT32); + printf("OP_CALL_INT8_EXPR = 0x%x\n", OP_CALL_INT8_EXPR); + printf("OP_CALL_INT16_EXPR = 0x%x\n", OP_CALL_INT16_EXPR); + printf("OP_CALL_INT32_EXPR = 0x%x\n", OP_CALL_INT32_EXPR); printf("OP_CVT_INT8_INT16 = 0x%x\n", OP_CVT_INT8_INT16); printf("OP_CVT_INT8_INT32 = 0x%x\n", OP_CVT_INT8_INT32); printf("OP_CVT_INT8_FLOAT32 = 0x%x\n", OP_CVT_INT8_FLOAT32); @@ -546,66 +546,66 @@ int main(void) { printf("OP_IMM_EXPR_8 = 0x%x\n", OP_IMM_EXPR_8); printf("OP_IMM_EXPR_16 = 0x%x\n", OP_IMM_EXPR_16); printf("OP_IMM_EXPR_32 = 0x%x\n", OP_IMM_EXPR_32); - printf("OP_JMPF_INT8_EXPR_INT8 = 0x%x\n", OP_JMPF_INT8_EXPR_INT8); - printf("OP_JMPF_INT8_EXPR_INT16 = 0x%x\n", OP_JMPF_INT8_EXPR_INT16); - printf("OP_JMPF_INT8_EXPR_INT32 = 0x%x\n", OP_JMPF_INT8_EXPR_INT32); - printf("OP_JMPF_INT16_EXPR_INT8 = 0x%x\n", OP_JMPF_INT16_EXPR_INT8); - printf("OP_JMPF_INT16_EXPR_INT16 = 0x%x\n", OP_JMPF_INT16_EXPR_INT16); - printf("OP_JMPF_INT16_EXPR_INT32 = 0x%x\n", OP_JMPF_INT16_EXPR_INT32); - printf("OP_JMPF_INT32_EXPR_INT8 = 0x%x\n", OP_JMPF_INT32_EXPR_INT8); - printf("OP_JMPF_INT32_EXPR_INT16 = 0x%x\n", OP_JMPF_INT32_EXPR_INT16); - printf("OP_JMPF_INT32_EXPR_INT32 = 0x%x\n", OP_JMPF_INT32_EXPR_INT32); - printf("OP_JMPF_FLOAT32_EXPR_INT8 = 0x%x\n", OP_JMPF_FLOAT32_EXPR_INT8); - printf("OP_JMPF_FLOAT32_EXPR_INT16 = 0x%x\n", OP_JMPF_FLOAT32_EXPR_INT16); - printf("OP_JMPF_FLOAT32_EXPR_INT32 = 0x%x\n", OP_JMPF_FLOAT32_EXPR_INT32); - printf("OP_JMPF_R1_EXPR_INT8 = 0x%x\n", OP_JMPF_R1_EXPR_INT8); - printf("OP_JMPF_R1_EXPR_INT16 = 0x%x\n", OP_JMPF_R1_EXPR_INT16); - printf("OP_JMPF_R1_EXPR_INT32 = 0x%x\n", OP_JMPF_R1_EXPR_INT32); - printf("OP_JMPF_R2_EXPR_INT8 = 0x%x\n", OP_JMPF_R2_EXPR_INT8); - printf("OP_JMPF_R2_EXPR_INT16 = 0x%x\n", OP_JMPF_R2_EXPR_INT16); - printf("OP_JMPF_R2_EXPR_INT32 = 0x%x\n", OP_JMPF_R2_EXPR_INT32); - printf("OP_JMPF_R3_EXPR_INT8 = 0x%x\n", OP_JMPF_R3_EXPR_INT8); - printf("OP_JMPF_R3_EXPR_INT16 = 0x%x\n", OP_JMPF_R3_EXPR_INT16); - printf("OP_JMPF_R3_EXPR_INT32 = 0x%x\n", OP_JMPF_R3_EXPR_INT32); - printf("OP_JMPT_INT8_EXPR_INT8 = 0x%x\n", OP_JMPT_INT8_EXPR_INT8); - printf("OP_JMPT_INT8_EXPR_INT16 = 0x%x\n", OP_JMPT_INT8_EXPR_INT16); - printf("OP_JMPT_INT8_EXPR_INT32 = 0x%x\n", OP_JMPT_INT8_EXPR_INT32); - printf("OP_JMPT_INT16_EXPR_INT8 = 0x%x\n", OP_JMPT_INT16_EXPR_INT8); - printf("OP_JMPT_INT16_EXPR_INT16 = 0x%x\n", OP_JMPT_INT16_EXPR_INT16); - printf("OP_JMPT_INT16_EXPR_INT32 = 0x%x\n", OP_JMPT_INT16_EXPR_INT32); - printf("OP_JMPT_INT32_EXPR_INT8 = 0x%x\n", OP_JMPT_INT32_EXPR_INT8); - printf("OP_JMPT_INT32_EXPR_INT16 = 0x%x\n", OP_JMPT_INT32_EXPR_INT16); - printf("OP_JMPT_INT32_EXPR_INT32 = 0x%x\n", OP_JMPT_INT32_EXPR_INT32); - printf("OP_JMPT_FLOAT32_EXPR_INT8 = 0x%x\n", OP_JMPT_FLOAT32_EXPR_INT8); - printf("OP_JMPT_FLOAT32_EXPR_INT16 = 0x%x\n", OP_JMPT_FLOAT32_EXPR_INT16); - printf("OP_JMPT_FLOAT32_EXPR_INT32 = 0x%x\n", OP_JMPT_FLOAT32_EXPR_INT32); - printf("OP_JMPT_R1_EXPR_INT8 = 0x%x\n", OP_JMPT_R1_EXPR_INT8); - printf("OP_JMPT_R1_EXPR_INT16 = 0x%x\n", OP_JMPT_R1_EXPR_INT16); - printf("OP_JMPT_R1_EXPR_INT32 = 0x%x\n", OP_JMPT_R1_EXPR_INT32); - printf("OP_JMPT_R2_EXPR_INT8 = 0x%x\n", OP_JMPT_R2_EXPR_INT8); - printf("OP_JMPT_R2_EXPR_INT16 = 0x%x\n", OP_JMPT_R2_EXPR_INT16); - printf("OP_JMPT_R2_EXPR_INT32 = 0x%x\n", OP_JMPT_R2_EXPR_INT32); - printf("OP_JMPT_R3_EXPR_INT8 = 0x%x\n", OP_JMPT_R3_EXPR_INT8); - printf("OP_JMPT_R3_EXPR_INT16 = 0x%x\n", OP_JMPT_R3_EXPR_INT16); - printf("OP_JMPT_R3_EXPR_INT32 = 0x%x\n", OP_JMPT_R3_EXPR_INT32); + printf("OP_JMPF_INT8_INT8_EXPR = 0x%x\n", OP_JMPF_INT8_INT8_EXPR); + printf("OP_JMPF_INT8_INT16_EXPR = 0x%x\n", OP_JMPF_INT8_INT16_EXPR); + printf("OP_JMPF_INT8_INT32_EXPR = 0x%x\n", OP_JMPF_INT8_INT32_EXPR); + printf("OP_JMPF_INT16_INT8_EXPR = 0x%x\n", OP_JMPF_INT16_INT8_EXPR); + printf("OP_JMPF_INT16_INT16_EXPR = 0x%x\n", OP_JMPF_INT16_INT16_EXPR); + printf("OP_JMPF_INT16_INT32_EXPR = 0x%x\n", OP_JMPF_INT16_INT32_EXPR); + printf("OP_JMPF_INT32_INT8_EXPR = 0x%x\n", OP_JMPF_INT32_INT8_EXPR); + printf("OP_JMPF_INT32_INT16_EXPR = 0x%x\n", OP_JMPF_INT32_INT16_EXPR); + printf("OP_JMPF_INT32_INT32_EXPR = 0x%x\n", OP_JMPF_INT32_INT32_EXPR); + printf("OP_JMPF_FLOAT32_INT8_EXPR = 0x%x\n", OP_JMPF_FLOAT32_INT8_EXPR); + printf("OP_JMPF_FLOAT32_INT16_EXPR = 0x%x\n", OP_JMPF_FLOAT32_INT16_EXPR); + printf("OP_JMPF_FLOAT32_INT32_EXPR = 0x%x\n", OP_JMPF_FLOAT32_INT32_EXPR); + printf("OP_JMPF_R1_INT8_EXPR = 0x%x\n", OP_JMPF_R1_INT8_EXPR); + printf("OP_JMPF_R1_INT16_EXPR = 0x%x\n", OP_JMPF_R1_INT16_EXPR); + printf("OP_JMPF_R1_INT32_EXPR = 0x%x\n", OP_JMPF_R1_INT32_EXPR); + printf("OP_JMPF_R2_INT8_EXPR = 0x%x\n", OP_JMPF_R2_INT8_EXPR); + printf("OP_JMPF_R2_INT16_EXPR = 0x%x\n", OP_JMPF_R2_INT16_EXPR); + printf("OP_JMPF_R2_INT32_EXPR = 0x%x\n", OP_JMPF_R2_INT32_EXPR); + printf("OP_JMPF_R3_INT8_EXPR = 0x%x\n", OP_JMPF_R3_INT8_EXPR); + printf("OP_JMPF_R3_INT16_EXPR = 0x%x\n", OP_JMPF_R3_INT16_EXPR); + printf("OP_JMPF_R3_INT32_EXPR = 0x%x\n", OP_JMPF_R3_INT32_EXPR); + printf("OP_JMPT_INT8_INT8_EXPR = 0x%x\n", OP_JMPT_INT8_INT8_EXPR); + printf("OP_JMPT_INT8_INT16_EXPR = 0x%x\n", OP_JMPT_INT8_INT16_EXPR); + printf("OP_JMPT_INT8_INT32_EXPR = 0x%x\n", OP_JMPT_INT8_INT32_EXPR); + printf("OP_JMPT_INT16_INT8_EXPR = 0x%x\n", OP_JMPT_INT16_INT8_EXPR); + printf("OP_JMPT_INT16_INT16_EXPR = 0x%x\n", OP_JMPT_INT16_INT16_EXPR); + printf("OP_JMPT_INT16_INT32_EXPR = 0x%x\n", OP_JMPT_INT16_INT32_EXPR); + printf("OP_JMPT_INT32_INT8_EXPR = 0x%x\n", OP_JMPT_INT32_INT8_EXPR); + printf("OP_JMPT_INT32_INT16_EXPR = 0x%x\n", OP_JMPT_INT32_INT16_EXPR); + printf("OP_JMPT_INT32_INT32_EXPR = 0x%x\n", OP_JMPT_INT32_INT32_EXPR); + printf("OP_JMPT_FLOAT32_INT8_EXPR = 0x%x\n", OP_JMPT_FLOAT32_INT8_EXPR); + printf("OP_JMPT_FLOAT32_INT16_EXPR = 0x%x\n", OP_JMPT_FLOAT32_INT16_EXPR); + printf("OP_JMPT_FLOAT32_INT32_EXPR = 0x%x\n", OP_JMPT_FLOAT32_INT32_EXPR); + printf("OP_JMPT_R1_INT8_EXPR = 0x%x\n", OP_JMPT_R1_INT8_EXPR); + printf("OP_JMPT_R1_INT16_EXPR = 0x%x\n", OP_JMPT_R1_INT16_EXPR); + printf("OP_JMPT_R1_INT32_EXPR = 0x%x\n", OP_JMPT_R1_INT32_EXPR); + printf("OP_JMPT_R2_INT8_EXPR = 0x%x\n", OP_JMPT_R2_INT8_EXPR); + printf("OP_JMPT_R2_INT16_EXPR = 0x%x\n", OP_JMPT_R2_INT16_EXPR); + printf("OP_JMPT_R2_INT32_EXPR = 0x%x\n", OP_JMPT_R2_INT32_EXPR); + printf("OP_JMPT_R3_INT8_EXPR = 0x%x\n", OP_JMPT_R3_INT8_EXPR); + printf("OP_JMPT_R3_INT16_EXPR = 0x%x\n", OP_JMPT_R3_INT16_EXPR); + printf("OP_JMPT_R3_INT32_EXPR = 0x%x\n", OP_JMPT_R3_INT32_EXPR); printf("OP_LD_8 = 0x%x\n", OP_LD_8); printf("OP_LD_16 = 0x%x\n", OP_LD_16); printf("OP_LD_32 = 0x%x\n", OP_LD_32); - printf("OP_LEA_EXPR_INT8_R1 = 0x%x\n", OP_LEA_EXPR_INT8_R1); - printf("OP_LEA_EXPR_INT8_R2 = 0x%x\n", OP_LEA_EXPR_INT8_R2); - printf("OP_LEA_EXPR_INT8_R3 = 0x%x\n", OP_LEA_EXPR_INT8_R3); - printf("OP_LEA_EXPR_INT8_R4 = 0x%x\n", OP_LEA_EXPR_INT8_R4); - printf("OP_LEA_EXPR_INT8_R5 = 0x%x\n", OP_LEA_EXPR_INT8_R5); - printf("OP_LEA_EXPR_INT16_R1 = 0x%x\n", OP_LEA_EXPR_INT16_R1); - printf("OP_LEA_EXPR_INT16_R2 = 0x%x\n", OP_LEA_EXPR_INT16_R2); - printf("OP_LEA_EXPR_INT16_R3 = 0x%x\n", OP_LEA_EXPR_INT16_R3); - printf("OP_LEA_EXPR_INT16_R4 = 0x%x\n", OP_LEA_EXPR_INT16_R4); - printf("OP_LEA_EXPR_INT16_R5 = 0x%x\n", OP_LEA_EXPR_INT16_R5); - printf("OP_LEA_EXPR_INT32_R1 = 0x%x\n", OP_LEA_EXPR_INT32_R1); - printf("OP_LEA_EXPR_INT32_R2 = 0x%x\n", OP_LEA_EXPR_INT32_R2); - printf("OP_LEA_EXPR_INT32_R3 = 0x%x\n", OP_LEA_EXPR_INT32_R3); - printf("OP_LEA_EXPR_INT32_R4 = 0x%x\n", OP_LEA_EXPR_INT32_R4); - printf("OP_LEA_EXPR_INT32_R5 = 0x%x\n", OP_LEA_EXPR_INT32_R5); + printf("OP_LEA_INT8_EXPR_R1 = 0x%x\n", OP_LEA_INT8_EXPR_R1); + printf("OP_LEA_INT8_EXPR_R2 = 0x%x\n", OP_LEA_INT8_EXPR_R2); + printf("OP_LEA_INT8_EXPR_R3 = 0x%x\n", OP_LEA_INT8_EXPR_R3); + printf("OP_LEA_INT8_EXPR_R4 = 0x%x\n", OP_LEA_INT8_EXPR_R4); + printf("OP_LEA_INT8_EXPR_R5 = 0x%x\n", OP_LEA_INT8_EXPR_R5); + printf("OP_LEA_INT16_EXPR_R1 = 0x%x\n", OP_LEA_INT16_EXPR_R1); + printf("OP_LEA_INT16_EXPR_R2 = 0x%x\n", OP_LEA_INT16_EXPR_R2); + printf("OP_LEA_INT16_EXPR_R3 = 0x%x\n", OP_LEA_INT16_EXPR_R3); + printf("OP_LEA_INT16_EXPR_R4 = 0x%x\n", OP_LEA_INT16_EXPR_R4); + printf("OP_LEA_INT16_EXPR_R5 = 0x%x\n", OP_LEA_INT16_EXPR_R5); + printf("OP_LEA_INT32_EXPR_R1 = 0x%x\n", OP_LEA_INT32_EXPR_R1); + printf("OP_LEA_INT32_EXPR_R2 = 0x%x\n", OP_LEA_INT32_EXPR_R2); + printf("OP_LEA_INT32_EXPR_R3 = 0x%x\n", OP_LEA_INT32_EXPR_R3); + printf("OP_LEA_INT32_EXPR_R4 = 0x%x\n", OP_LEA_INT32_EXPR_R4); + printf("OP_LEA_INT32_EXPR_R5 = 0x%x\n", OP_LEA_INT32_EXPR_R5); printf("OP_LE_INT8 = 0x%x\n", OP_LE_INT8); printf("OP_LE_INT16 = 0x%x\n", OP_LE_INT16); printf("OP_LE_INT32 = 0x%x\n", OP_LE_INT32); @@ -632,16 +632,16 @@ int main(void) { printf("OP_MOD_R_UINT8 = 0x%x\n", OP_MOD_R_UINT8); printf("OP_MOD_R_UINT16 = 0x%x\n", OP_MOD_R_UINT16); printf("OP_MOD_R_UINT32 = 0x%x\n", OP_MOD_R_UINT32); - printf("OP_MOV_R0_R1 = 0x%x\n", OP_MOV_R0_R1); - printf("OP_MOV_R0_R2 = 0x%x\n", OP_MOV_R0_R2); - printf("OP_MOV_R0_R3 = 0x%x\n", OP_MOV_R0_R3); - printf("OP_MOV_R0_R4 = 0x%x\n", OP_MOV_R0_R4); - printf("OP_MOV_R0_R5 = 0x%x\n", OP_MOV_R0_R5); - printf("OP_MOV_R1_R0 = 0x%x\n", OP_MOV_R1_R0); - printf("OP_MOV_R2_R0 = 0x%x\n", OP_MOV_R2_R0); - printf("OP_MOV_R3_R0 = 0x%x\n", OP_MOV_R3_R0); - printf("OP_MOV_R4_R0 = 0x%x\n", OP_MOV_R4_R0); - printf("OP_MOV_R5_R0 = 0x%x\n", OP_MOV_R5_R0); + printf("OP_SET_R1 = 0x%x\n", OP_SET_R1); + printf("OP_SET_R2 = 0x%x\n", OP_SET_R2); + printf("OP_SET_R3 = 0x%x\n", OP_SET_R3); + printf("OP_SET_R4 = 0x%x\n", OP_SET_R4); + printf("OP_SET_R5 = 0x%x\n", OP_SET_R5); + printf("OP_GET_R1 = 0x%x\n", OP_GET_R1); + printf("OP_GET_R2 = 0x%x\n", OP_GET_R2); + printf("OP_GET_R3 = 0x%x\n", OP_GET_R3); + printf("OP_GET_R4 = 0x%x\n", OP_GET_R4); + printf("OP_GET_R5 = 0x%x\n", OP_GET_R5); printf("OP_MUL_INT8 = 0x%x\n", OP_MUL_INT8); printf("OP_MUL_INT16 = 0x%x\n", OP_MUL_INT16); printf("OP_MUL_INT32 = 0x%x\n", OP_MUL_INT32); @@ -713,18 +713,18 @@ int main(void) { printf("OP_XOR_INT8 = 0x%x\n", OP_XOR_INT8); printf("OP_XOR_INT16 = 0x%x\n", OP_XOR_INT16); printf("OP_XOR_INT32 = 0x%x\n", OP_XOR_INT32); - //printf("OP_ADD_EXPR_INT64_R1 = 0x%x\n", OP_ADD_EXPR_INT64_R1); - //printf("OP_ADD_EXPR_INT64_R2 = 0x%x\n", OP_ADD_EXPR_INT64_R2); - //printf("OP_ADD_EXPR_INT64_R3 = 0x%x\n", OP_ADD_EXPR_INT64_R3); - //printf("OP_ADD_EXPR_INT64_R4 = 0x%x\n", OP_ADD_EXPR_INT64_R4); - //printf("OP_ADD_EXPR_INT64_R5 = 0x%x\n", OP_ADD_EXPR_INT64_R5); + //printf("OP_ADD_INT64_EXPR_R1 = 0x%x\n", OP_ADD_INT64_EXPR_R1); + //printf("OP_ADD_INT64_EXPR_R2 = 0x%x\n", OP_ADD_INT64_EXPR_R2); + //printf("OP_ADD_INT64_EXPR_R3 = 0x%x\n", OP_ADD_INT64_EXPR_R3); + //printf("OP_ADD_INT64_EXPR_R4 = 0x%x\n", OP_ADD_INT64_EXPR_R4); + //printf("OP_ADD_INT64_EXPR_R5 = 0x%x\n", OP_ADD_INT64_EXPR_R5); printf("OP_ADD_INT64 = 0x%x\n", OP_ADD_INT64); printf("OP_ADD_INT128 = 0x%x\n", OP_ADD_INT128); printf("OP_ADD_FLOAT64 = 0x%x\n", OP_ADD_FLOAT64); printf("OP_ADD_FLOAT128 = 0x%x\n", OP_ADD_FLOAT128); printf("OP_AND_INT64 = 0x%x\n", OP_AND_INT64); printf("OP_AND_INT128 = 0x%x\n", OP_AND_INT128); - //printf("OP_CALL_EXPR_INT64 = 0x%x\n", OP_CALL_EXPR_INT64); + //printf("OP_CALL_INT64_EXPR = 0x%x\n", OP_CALL_INT64_EXPR); printf("OP_CVT_INT8_INT64 = 0x%x\n", OP_CVT_INT8_INT64); printf("OP_CVT_INT8_INT128 = 0x%x\n", OP_CVT_INT8_INT128); printf("OP_CVT_INT8_FLOAT64 = 0x%x\n", OP_CVT_INT8_FLOAT64); @@ -811,59 +811,59 @@ int main(void) { printf("OP_GT_FLOAT128 = 0x%x\n", OP_GT_FLOAT128); printf("OP_IMM_EXPR_64 = 0x%x\n", OP_IMM_EXPR_64); printf("OP_IMM_EXPR_128 = 0x%x\n", OP_IMM_EXPR_128); - //printf("OP_JMPF_INT8_EXPR_INT64 = 0x%x\n", OP_JMPF_INT8_EXPR_INT64); - //printf("OP_JMPF_INT16_EXPR_INT64 = 0x%x\n", OP_JMPF_INT16_EXPR_INT64); - //printf("OP_JMPF_INT32_EXPR_INT64 = 0x%x\n", OP_JMPF_INT32_EXPR_INT64); - printf("OP_JMPF_INT64_EXPR_INT8 = 0x%x\n", OP_JMPF_INT64_EXPR_INT8); - printf("OP_JMPF_INT64_EXPR_INT16 = 0x%x\n", OP_JMPF_INT64_EXPR_INT16); - printf("OP_JMPF_INT64_EXPR_INT32 = 0x%x\n", OP_JMPF_INT64_EXPR_INT32); - //printf("OP_JMPF_INT64_EXPR_INT64 = 0x%x\n", OP_JMPF_INT64_EXPR_INT64); - printf("OP_JMPF_INT128_EXPR_INT8 = 0x%x\n", OP_JMPF_INT128_EXPR_INT8); - printf("OP_JMPF_INT128_EXPR_INT16 = 0x%x\n", OP_JMPF_INT128_EXPR_INT16); - printf("OP_JMPF_INT128_EXPR_INT32 = 0x%x\n", OP_JMPF_INT128_EXPR_INT32); - //printf("OP_JMPF_INT128_EXPR_INT64 = 0x%x\n", OP_JMPF_INT128_EXPR_INT64); - //printf("OP_JMPF_FLOAT32_EXPR_INT64 = 0x%x\n", OP_JMPF_FLOAT32_EXPR_INT64); - printf("OP_JMPF_FLOAT64_EXPR_INT8 = 0x%x\n", OP_JMPF_FLOAT64_EXPR_INT8); - printf("OP_JMPF_FLOAT64_EXPR_INT16 = 0x%x\n", OP_JMPF_FLOAT64_EXPR_INT16); - printf("OP_JMPF_FLOAT64_EXPR_INT32 = 0x%x\n", OP_JMPF_FLOAT64_EXPR_INT32); - //printf("OP_JMPF_FLOAT64_EXPR_INT64 = 0x%x\n", OP_JMPF_FLOAT64_EXPR_INT64); - printf("OP_JMPF_FLOAT128_EXPR_INT8 = 0x%x\n", OP_JMPF_FLOAT128_EXPR_INT8); - printf("OP_JMPF_FLOAT128_EXPR_INT16 = 0x%x\n", OP_JMPF_FLOAT128_EXPR_INT16); - printf("OP_JMPF_FLOAT128_EXPR_INT32 = 0x%x\n", OP_JMPF_FLOAT128_EXPR_INT32); - //printf("OP_JMPF_FLOAT128_EXPR_INT64 = 0x%x\n", OP_JMPF_FLOAT128_EXPR_INT64); - //printf("OP_JMPF_R1_EXPR_INT64 = 0x%x\n", OP_JMPF_R1_EXPR_INT64); - //printf("OP_JMPF_R2_EXPR_INT64 = 0x%x\n", OP_JMPF_R2_EXPR_INT64); - //printf("OP_JMPF_R3_EXPR_INT64 = 0x%x\n", OP_JMPF_R3_EXPR_INT64); - //printf("OP_JMPT_INT8_EXPR_INT64 = 0x%x\n", OP_JMPT_INT8_EXPR_INT64); - //printf("OP_JMPT_INT16_EXPR_INT64 = 0x%x\n", OP_JMPT_INT16_EXPR_INT64); - //printf("OP_JMPT_INT32_EXPR_INT64 = 0x%x\n", OP_JMPT_INT32_EXPR_INT64); - printf("OP_JMPT_INT64_EXPR_INT8 = 0x%x\n", OP_JMPT_INT64_EXPR_INT8); - printf("OP_JMPT_INT64_EXPR_INT16 = 0x%x\n", OP_JMPT_INT64_EXPR_INT16); - printf("OP_JMPT_INT64_EXPR_INT32 = 0x%x\n", OP_JMPT_INT64_EXPR_INT32); - //printf("OP_JMPT_INT64_EXPR_INT64 = 0x%x\n", OP_JMPT_INT64_EXPR_INT64); - printf("OP_JMPT_INT128_EXPR_INT8 = 0x%x\n", OP_JMPT_INT128_EXPR_INT8); - printf("OP_JMPT_INT128_EXPR_INT16 = 0x%x\n", OP_JMPT_INT128_EXPR_INT16); - printf("OP_JMPT_INT128_EXPR_INT32 = 0x%x\n", OP_JMPT_INT128_EXPR_INT32); - //printf("OP_JMPT_INT128_EXPR_INT64 = 0x%x\n", OP_JMPT_INT128_EXPR_INT64); - //printf("OP_JMPT_FLOAT32_EXPR_INT64 = 0x%x\n", OP_JMPT_FLOAT32_EXPR_INT64); - printf("OP_JMPT_FLOAT64_EXPR_INT8 = 0x%x\n", OP_JMPT_FLOAT64_EXPR_INT8); - printf("OP_JMPT_FLOAT64_EXPR_INT16 = 0x%x\n", OP_JMPT_FLOAT64_EXPR_INT16); - printf("OP_JMPT_FLOAT64_EXPR_INT32 = 0x%x\n", OP_JMPT_FLOAT64_EXPR_INT32); - //printf("OP_JMPT_FLOAT64_EXPR_INT64 = 0x%x\n", OP_JMPT_FLOAT64_EXPR_INT64); - printf("OP_JMPT_FLOAT128_EXPR_INT8 = 0x%x\n", OP_JMPT_FLOAT128_EXPR_INT8); - printf("OP_JMPT_FLOAT128_EXPR_INT16 = 0x%x\n", OP_JMPT_FLOAT128_EXPR_INT16); - printf("OP_JMPT_FLOAT128_EXPR_INT32 = 0x%x\n", OP_JMPT_FLOAT128_EXPR_INT32); - //printf("OP_JMPT_FLOAT128_EXPR_INT64 = 0x%x\n", OP_JMPT_FLOAT128_EXPR_INT64); - //printf("OP_JMPT_R1_EXPR_INT64 = 0x%x\n", OP_JMPT_R1_EXPR_INT64); - //printf("OP_JMPT_R2_EXPR_INT64 = 0x%x\n", OP_JMPT_R2_EXPR_INT64); - //printf("OP_JMPT_R3_EXPR_INT64 = 0x%x\n", OP_JMPT_R3_EXPR_INT64); + //printf("OP_JMPF_INT8_INT64_EXPR = 0x%x\n", OP_JMPF_INT8_INT64_EXPR); + //printf("OP_JMPF_INT16_INT64_EXPR = 0x%x\n", OP_JMPF_INT16_INT64_EXPR); + //printf("OP_JMPF_INT32_INT64_EXPR = 0x%x\n", OP_JMPF_INT32_INT64_EXPR); + printf("OP_JMPF_INT64_INT8_EXPR = 0x%x\n", OP_JMPF_INT64_INT8_EXPR); + printf("OP_JMPF_INT64_INT16_EXPR = 0x%x\n", OP_JMPF_INT64_INT16_EXPR); + printf("OP_JMPF_INT64_INT32_EXPR = 0x%x\n", OP_JMPF_INT64_INT32_EXPR); + //printf("OP_JMPF_INT64_INT64_EXPR = 0x%x\n", OP_JMPF_INT64_INT64_EXPR); + printf("OP_JMPF_INT128_INT8_EXPR = 0x%x\n", OP_JMPF_INT128_INT8_EXPR); + printf("OP_JMPF_INT128_INT16_EXPR = 0x%x\n", OP_JMPF_INT128_INT16_EXPR); + printf("OP_JMPF_INT128_INT32_EXPR = 0x%x\n", OP_JMPF_INT128_INT32_EXPR); + //printf("OP_JMPF_INT128_INT64_EXPR = 0x%x\n", OP_JMPF_INT128_INT64_EXPR); + //printf("OP_JMPF_FLOAT32_INT64_EXPR = 0x%x\n", OP_JMPF_FLOAT32_INT64_EXPR); + printf("OP_JMPF_FLOAT64_INT8_EXPR = 0x%x\n", OP_JMPF_FLOAT64_INT8_EXPR); + printf("OP_JMPF_FLOAT64_INT16_EXPR = 0x%x\n", OP_JMPF_FLOAT64_INT16_EXPR); + printf("OP_JMPF_FLOAT64_INT32_EXPR = 0x%x\n", OP_JMPF_FLOAT64_INT32_EXPR); + //printf("OP_JMPF_FLOAT64_INT64_EXPR = 0x%x\n", OP_JMPF_FLOAT64_INT64_EXPR); + printf("OP_JMPF_FLOAT128_INT8_EXPR = 0x%x\n", OP_JMPF_FLOAT128_INT8_EXPR); + printf("OP_JMPF_FLOAT128_INT16_EXPR = 0x%x\n", OP_JMPF_FLOAT128_INT16_EXPR); + printf("OP_JMPF_FLOAT128_INT32_EXPR = 0x%x\n", OP_JMPF_FLOAT128_INT32_EXPR); + //printf("OP_JMPF_FLOAT128_INT64_EXPR = 0x%x\n", OP_JMPF_FLOAT128_INT64_EXPR); + //printf("OP_JMPF_R1_INT64_EXPR = 0x%x\n", OP_JMPF_R1_INT64_EXPR); + //printf("OP_JMPF_R2_INT64_EXPR = 0x%x\n", OP_JMPF_R2_INT64_EXPR); + //printf("OP_JMPF_R3_INT64_EXPR = 0x%x\n", OP_JMPF_R3_INT64_EXPR); + //printf("OP_JMPT_INT8_INT64_EXPR = 0x%x\n", OP_JMPT_INT8_INT64_EXPR); + //printf("OP_JMPT_INT16_INT64_EXPR = 0x%x\n", OP_JMPT_INT16_INT64_EXPR); + //printf("OP_JMPT_INT32_INT64_EXPR = 0x%x\n", OP_JMPT_INT32_INT64_EXPR); + printf("OP_JMPT_INT64_INT8_EXPR = 0x%x\n", OP_JMPT_INT64_INT8_EXPR); + printf("OP_JMPT_INT64_INT16_EXPR = 0x%x\n", OP_JMPT_INT64_INT16_EXPR); + printf("OP_JMPT_INT64_INT32_EXPR = 0x%x\n", OP_JMPT_INT64_INT32_EXPR); + //printf("OP_JMPT_INT64_INT64_EXPR = 0x%x\n", OP_JMPT_INT64_INT64_EXPR); + printf("OP_JMPT_INT128_INT8_EXPR = 0x%x\n", OP_JMPT_INT128_INT8_EXPR); + printf("OP_JMPT_INT128_INT16_EXPR = 0x%x\n", OP_JMPT_INT128_INT16_EXPR); + printf("OP_JMPT_INT128_INT32_EXPR = 0x%x\n", OP_JMPT_INT128_INT32_EXPR); + //printf("OP_JMPT_INT128_INT64_EXPR = 0x%x\n", OP_JMPT_INT128_INT64_EXPR); + //printf("OP_JMPT_FLOAT32_INT64_EXPR = 0x%x\n", OP_JMPT_FLOAT32_INT64_EXPR); + printf("OP_JMPT_FLOAT64_INT8_EXPR = 0x%x\n", OP_JMPT_FLOAT64_INT8_EXPR); + printf("OP_JMPT_FLOAT64_INT16_EXPR = 0x%x\n", OP_JMPT_FLOAT64_INT16_EXPR); + printf("OP_JMPT_FLOAT64_INT32_EXPR = 0x%x\n", OP_JMPT_FLOAT64_INT32_EXPR); + //printf("OP_JMPT_FLOAT64_INT64_EXPR = 0x%x\n", OP_JMPT_FLOAT64_INT64_EXPR); + printf("OP_JMPT_FLOAT128_INT8_EXPR = 0x%x\n", OP_JMPT_FLOAT128_INT8_EXPR); + printf("OP_JMPT_FLOAT128_INT16_EXPR = 0x%x\n", OP_JMPT_FLOAT128_INT16_EXPR); + printf("OP_JMPT_FLOAT128_INT32_EXPR = 0x%x\n", OP_JMPT_FLOAT128_INT32_EXPR); + //printf("OP_JMPT_FLOAT128_INT64_EXPR = 0x%x\n", OP_JMPT_FLOAT128_INT64_EXPR); + //printf("OP_JMPT_R1_INT64_EXPR = 0x%x\n", OP_JMPT_R1_INT64_EXPR); + //printf("OP_JMPT_R2_INT64_EXPR = 0x%x\n", OP_JMPT_R2_INT64_EXPR); + //printf("OP_JMPT_R3_INT64_EXPR = 0x%x\n", OP_JMPT_R3_INT64_EXPR); printf("OP_LD_64 = 0x%x\n", OP_LD_64); printf("OP_LD_128 = 0x%x\n", OP_LD_128); - //printf("OP_LEA_EXPR_INT64_R1 = 0x%x\n", OP_LEA_EXPR_INT64_R1); - //printf("OP_LEA_EXPR_INT64_R2 = 0x%x\n", OP_LEA_EXPR_INT64_R2); - //printf("OP_LEA_EXPR_INT64_R3 = 0x%x\n", OP_LEA_EXPR_INT64_R3); - //printf("OP_LEA_EXPR_INT64_R4 = 0x%x\n", OP_LEA_EXPR_INT64_R4); - //printf("OP_LEA_EXPR_INT64_R5 = 0x%x\n", OP_LEA_EXPR_INT64_R5); + //printf("OP_LEA_INT64_EXPR_R1 = 0x%x\n", OP_LEA_INT64_EXPR_R1); + //printf("OP_LEA_INT64_EXPR_R2 = 0x%x\n", OP_LEA_INT64_EXPR_R2); + //printf("OP_LEA_INT64_EXPR_R3 = 0x%x\n", OP_LEA_INT64_EXPR_R3); + //printf("OP_LEA_INT64_EXPR_R4 = 0x%x\n", OP_LEA_INT64_EXPR_R4); + //printf("OP_LEA_INT64_EXPR_R5 = 0x%x\n", OP_LEA_INT64_EXPR_R5); printf("OP_LE_INT64 = 0x%x\n", OP_LE_INT64); printf("OP_LE_INT128 = 0x%x\n", OP_LE_INT128); printf("OP_LE_UINT64 = 0x%x\n", OP_LE_UINT64); diff --git a/test.asm b/test.asm index 9bd028e..af9eff8 100644 --- a/test.asm +++ b/test.asm @@ -4,110 +4,110 @@ putchar = -3 main: ; stack alignment 0x10 ; printing test - imm hello_world,pcr32 - call print_str,pcr32 + imm pcr32:hello_world + call pcr32:print_str - imm 0x01234567,int32 - call print_hex_int32,pcr32 - call print_newline,pcr32 + imm int32:0x01234567 + call pcr32:print_hex_int32 + call pcr32:print_newline - imm 0,int32 - call print_dec_int32,pcr32 - call print_newline,pcr32 + imm int32:0 + call pcr32:print_dec_int32 + call pcr32:print_newline - imm 123456789,int32 - call print_dec_int32,pcr32 - call print_newline,pcr32 + imm int32:123456789 + call pcr32:print_dec_int32 + call pcr32:print_newline - imm -123456789,int32 - call print_dec_int32,pcr32 - call print_newline,pcr32 + imm int32:-123456789 + call pcr32:print_dec_int32 + call pcr32:print_newline - imm 0,float32 - call print_sci_float32,pcr32 - call print_newline,pcr32 + imm float32:0 + call pcr32:print_sci_float32 + call pcr32:print_newline - imm 1.23456789e19,float32 - call print_sci_float32,pcr32 - call print_newline,pcr32 + imm float32:1.23456789e19 + call pcr32:print_sci_float32 + call pcr32:print_newline - imm -1.23456789e-19,float32 - call print_sci_float32,pcr32 - call print_newline,pcr32 + imm float32:-1.23456789e-19 + call pcr32:print_sci_float32 + call pcr32:print_newline - imm 1.40129846e-45,float32 - call print_sci_float32,pcr32 - call print_newline,pcr32 + imm float32:1.40129846e-45 + call pcr32:print_sci_float32 + call pcr32:print_newline ; square root calculation tests ; the square root routine is C-style (takes argument on stack) - add -8,int32,sp - imm 2,float32 + add int32:-8,sp + imm float32:2 push 32 - call sqrt_float32,pcr32 - add 0xc,int32,sp - call print_sci_float32,pcr32 - call print_newline,pcr32 + call pcr32:sqrt_float32 + add int32:0xc,sp + call pcr32:print_sci_float32 + call pcr32:print_newline - add -8,int32,sp - imm 1000,float32 + add int32:-8,sp + imm float32:1000 push 32 - call sqrt_float32,pcr32 - add 0xc,int32,sp - call print_sci_float32,pcr32 - call print_newline,pcr32 + call pcr32:sqrt_float32 + add int32:0xc,sp + call pcr32:print_sci_float32 + call pcr32:print_newline ; done - imm 0,int32 + imm int32:0 push 32 - call exit,pcr32 + call pcr32:exit hello_world: - .data 'h',int8 - .data 'e',int8 - .data 'l',int8 - .data 'l',int8 - .data 'o',int8 - .data ',',int8 - .data ' ',int8 - .data 'w',int8 - .data 'o',int8 - .data 'r',int8 - .data 'l',int8 - .data 'd',int8 - .data '\n',int8 - .data 0,int8 + .data int8:'h' + .data int8:'e' + .data int8:'l' + .data int8:'l' + .data int8:'o' + .data int8:',' + .data int8:' ' + .data int8:'w' + .data int8:'o' + .data int8:'r' + .data int8:'l' + .data int8:'d' + .data int8:'\n' + .data int8:0 print_str: - mov r0,r2 + set r2 ld 8 - jmpf int8,print_str_done,pcr32 + jmpf int8,pcr32:print_str_done print_str_loop: cvt int8,int32 push 32 - call putchar,pcr32 - add 4,int32,sp - add 1,int32,r2 - mov r2,r0 + call pcr32:putchar + add int32:4,sp + add int32:1,r2 + get r2 ld 8 - jmpt int8,print_str_loop,pcr32 + jmpt int8,pcr32:print_str_loop print_str_done: ret print_newline: - imm 0xa,int32 + imm int32:0xa push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp ret print_hex_int32: push 32 push 32 - imm 16,int8 + imm int8:16 shr uint32 - call print_hex_int16,pcr32 + call pcr32:print_hex_int16 pop 32 ; fallthru @@ -116,10 +116,10 @@ print_hex_int16: push 16 push 16 - imm 8,int8 + imm int8:8 shr uint16 - call print_hex_int8,pcr32 - add 2,int32,sp + call pcr32:print_hex_int8 + add int32:2,sp pop 16 ; fallthru @@ -128,104 +128,104 @@ print_hex_int8: push 8 push 8 - imm 4,int8 + imm int8:4 shr uint8 - call print_hex_nibble,pcr32 - add 3,int32,sp + call pcr32:print_hex_nibble + add int32:3,sp pop 8 ; fallthru print_hex_nibble: push 8 - imm 0xf,int8 + imm int8:0xf and int8 cvt int8,int32 push 8 - imm print_hex_table,pcr32 + imm pcr32:print_hex_table add int8 ld 8 cvt int8,int32 push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp ret print_hex_table: - .data '0',int8 - .data '1',int8 - .data '2',int8 - .data '3',int8 - .data '4',int8 - .data '5',int8 - .data '6',int8 - .data '7',int8 - .data '8',int8 - .data '9',int8 - .data 'a',int8 - .data 'b',int8 - .data 'c',int8 - .data 'd',int8 - .data 'e',int8 - .data 'f',int8 + .data int8:'0' + .data int8:'1' + .data int8:'2' + .data int8:'3' + .data int8:'4' + .data int8:'5' + .data int8:'6' + .data int8:'7' + .data int8:'8' + .data int8:'9' + .data int8:'a' + .data int8:'b' + .data int8:'c' + .data int8:'d' + .data int8:'e' + .data int8:'f' print_dec_int32: ; stack alignment 8 push 32 push 32 - imm 0,int32 + imm int32:0 lt int32 - jmpf int8,print_dec_pos,pcr32 + jmpf int8,pcr32:print_dec_pos - imm '-',int32 + imm int32:'-' push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp pop 32 neg int32 push 32 print_dec_pos: - imm print_dec_buf_end,pcr32 - mov r0,r2 + imm pcr32:print_dec_buf_end + set r2 pop 32 print_dec_loop0: push 32 push 32 - imm 10,int32 + imm int32:10 mod uint32 push 8 - imm '0',int8 + imm int8:'0' add int8 push 8 - add -1,int32,r2 - mov r2,r0 + add int32:-1,r2 + get r2 st_r 8 - imm 10,int32 + imm int32:10 div uint32 - jmpt int32,print_dec_loop0,pcr32 + jmpt int32,pcr32:print_dec_loop0 print_dec_loop1: - mov r2,r0 + get r2 ld 8 cvt int8,int32 push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp - add 1,int32,r2 - mov r2,r0 + add int32:1,r2 + get r2 push 32 - imm print_dec_buf_end,pcr32 + imm pcr32:print_dec_buf_end lt uint32 - jmpt int8,print_dec_loop1,pcr32 + jmpt int8,pcr32:print_dec_loop1 ret @@ -236,14 +236,14 @@ print_sci_float32: push 32 push 32 - imm 0,float32 + imm float32:0 lt float32 - jmpf int8,print_sci_pos,pcr32 + jmpf int8,pcr32:print_sci_pos - imm '-',int32 + imm int32:'-' push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp pop 32 neg float32 @@ -255,8 +255,8 @@ print_sci_pos: ; entry is struct with threshold value (> 1) then scaling value (< 1) ; when multiplying it up: ; entry is struct with scaling value (> 1) then threshold value (< 1) - imm print_sci_table,pcr32 - mov r0,r2 + imm pcr32:print_sci_table + set r2 ; if number is >= 1, exponent is positive and we'll divide it down ; if number is < 1, exponent is negative and we'll multiply it up @@ -264,15 +264,15 @@ print_sci_pos: push 32 push 32 - imm 1,float32 + imm float32:1 lt float32 - jmpt int8,print_sci_multiply,pcr32 + jmpt int8,pcr32:print_sci_multiply ; dividing it down case ; r3 is shift register for exponent bits - imm 0,int32 - mov r0,r3 + imm int32:0 + set r3 print_sci_loop0: ; calculate next exponent bit @@ -280,7 +280,7 @@ print_sci_loop0: push 32 push 32 - mov r2,r0 + get r2 ld 32 ge float32 push 8 @@ -288,41 +288,41 @@ print_sci_loop0: ; shift exponent bit into r3 cvt int8,int32 push 32 - mov r3,r0 + get r3 push 32 - imm 1,int8 + imm int8:1 shl int32 or int32 - mov r0,r3 - add 3,int32,sp + set r3 + add int32:3,sp ; if exponent bit is 1, divide pop 8 - jmpf int8,print_sci_no_div,pcr32 + jmpf int8,pcr32:print_sci_no_div - lea 4,int32,r2 + lea int32:4,r2 ld 32 mul float32 push 32 print_sci_no_div: - add 8,int32,r2 - mov r2,r0 + add int32:8,r2 + get r2 push 32 - imm print_sci_table_end,pcr32 + imm pcr32:print_sci_table_end lt uint32 - jmpt int8,print_sci_loop0,pcr32 + jmpt int8,pcr32:print_sci_loop0 - imm 1e8,float32 ; factor to shift left by 8 decimal places - jmp print_sci_normalized,pcr32 + imm float32:1e8 ; factor to shift left by 8 decimal places + jmp pcr32:print_sci_normalized print_sci_multiply: ; multiplying it up case ; r3 is shift register for exponent bits ; we will build negative exponent directly, starting with all ones - imm -1,int32 - mov r0,r3 + imm int32:-1 + set r3 print_sci_loop1: ; calculate next exponent bit @@ -330,7 +330,7 @@ print_sci_loop1: push 32 push 32 - lea 4,int32,r2 + lea int32:4,r2 ld 32 ge float32 push 8 @@ -338,138 +338,138 @@ print_sci_loop1: ; shift exponent bit into r3 cvt int8,int32 push 32 - mov r3,r0 + get r3 push 32 - imm 1,int8 + imm int8:1 shl int32 or int32 - mov r0,r3 - add 3,int32,sp + set r3 + add int32:3,sp ; if exponent bit is 0, multiply pop 8 - jmpt int8,print_sci_no_mul,pcr32 + jmpt int8,pcr32:print_sci_no_mul - mov r2,r0 + get r2 ld 32 mul float32 push 32 print_sci_no_mul: - add 8,int32,r2 - mov r2,r0 + add int32:8,r2 + get r2 push 32 - imm print_sci_table_end,pcr32 + imm pcr32:print_sci_table_end lt uint32 - jmpt int8,print_sci_loop1,pcr32 + jmpt int8,pcr32:print_sci_loop1 ; at this point the number is still < 1, do final multiply by 10 ; we used "not exponent" rather than "neg exponent" for extra -1 - imm 1e9,float32 ; 10 * factor to shift left by 8 decimal places + imm float32:1e9 ; 10 * factor to shift left by 8 decimal places print_sci_normalized: ; convert mantissa to 9 digit integer with 8 decimal places mul float32 push 32 - imm .5,float32 + imm float32:.5 add float32 cvt float32,int32 push 32 ; if mantissa is zero, zero out exponent as well - jmpt int32,print_sci_not_zero,pcr32 + jmpt int32,pcr32:print_sci_not_zero - imm 0,int32 - mov r0,r3 - jmp print_sci_no_overflow,pcr32 + imm int32:0 + set r3 + jmp pcr32:print_sci_no_overflow print_sci_not_zero: ; check for 10-digit integer (rounding overflow) push 32 - imm 1000000000,int32 + imm int32:1000000000 ge uint32 - jmpf int8,print_sci_no_overflow,pcr32 + jmpf int8,pcr32:print_sci_no_overflow ; move along one digit position and bump exponent ; note: no rounding is needed, as low order digit must be 0 - imm 10,int32 + imm int32:10 div uint32 push 32 - add 1,int32,r3 + add int32:1,r3 print_sci_no_overflow: ; render all 9 digits backwards into buffer - imm print_sci_buf_end,pcr32 - mov r0,r2 + imm pcr32:print_sci_buf_end + set r2 print_sci_loop2: pop 32 push 32 push 32 - imm 10,int32 + imm int32:10 mod uint32 push 8 - imm '0',int8 + imm int8:'0' add int8 push 8 - add -1,int32,r2 - mov r2,r0 + add int32:-1,r2 + get r2 st_r 8 - imm 10,int32 + imm int32:10 div uint32 push 32 - mov r2,r0 + get r2 push 32 - imm print_sci_buf,pcr32 + imm pcr32:print_sci_buf gt uint32 - jmpt int8,print_sci_loop2,pcr32 + jmpt int8,pcr32:print_sci_loop2 pop 32 ; should be 0, discard ; print first digit - mov r2,r0 + get r2 ld 8 cvt int8,int32 push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp - add 1,int32,r2 + add int32:1,r2 ; print decimal point - imm '.',int32 + imm int32:'.' push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp ; print remaining digits print_sci_loop3: - mov r2,r0 + get r2 ld 8 cvt int8,int32 push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp - add 1,int32,r2 - mov r2,r0 + add int32:1,r2 + get r2 push 32 - imm print_sci_buf_end,pcr32 + imm pcr32:print_sci_buf_end lt uint32 - jmpt int8,print_sci_loop3,pcr32 + jmpt int8,pcr32:print_sci_loop3 ; print exponent part - imm 'e',int32 + imm int32:'e' push 32 - call putchar,pcr32 - add 4,int32,sp + call pcr32:putchar + add int32:4,sp - mov r3,r0 - jmp print_dec_int32,pcr32 + get r3 + jmp pcr32:print_dec_int32 print_sci_buf: .space 9 @@ -477,18 +477,18 @@ print_sci_buf_end: .align 4 print_sci_table: - .data 1e32,float32 - .data 1e-32,float32 - .data 1e16,float32 - .data 1e-16,float32 - .data 1e8,float32 - .data 1e-8,float32 - .data 1e4,float32 - .data 1e-4,float32 - .data 1e2,float32 - .data 1e-2,float32 - .data 1e1,float32 - .data 1e-1,float32 + .data float32:1e32 + .data float32:1e-32 + .data float32:1e16 + .data float32:1e-16 + .data float32:1e8 + .data float32:1e-8 + .data float32:1e4 + .data float32:1e-4 + .data float32:1e2 + .data float32:1e-2 + .data float32:1e1 + .data float32:1e-1 print_sci_table_end: ; this routine is C-style @@ -497,37 +497,37 @@ print_sci_table_end: ; it preserves r2 register (r3 register is not used) sqrt_float32: ; prologue - mov r2,r0 + get r2 push 32 - imm 8,int32 ; iterations - mov r0,r2 + imm int32:8 ; iterations + set r2 - imm 1,float32 ; initial estimate + imm float32:1 ; initial estimate push 32 sqrt_loop: pop 32 push 32 push 32 - lea 0x10,int32,sp + lea int32:0x10,sp ld 32 div_r float32 add float32 push 32 - imm .5,float32 + imm float32:.5 mul float32 push 32 - add -1,int32,r2 - mov r2,r0 - jmpt int32,sqrt_loop,pcr32 + add int32:-1,r2 + get r2 + jmpt int32,pcr32:sqrt_loop ; epilogue (return value is on stack) - lea 4,int32,sp + lea int32:4,sp ld 32 - mov r0,r2 + set r2 pop 32 - add 4,int32,sp + add int32:4,sp ret diff --git a/vm_asm.l b/vm_asm.l index a3c4e9e..5de15a5 100644 --- a/vm_asm.l +++ b/vm_asm.l @@ -90,7 +90,8 @@ le return y_tab.LE lt return y_tab.LT mod return y_tab.MOD mod_r return y_tab.MOD_R -mov return y_tab.MOV +get return y_tab.GET +set return y_tab.SET mul return y_tab.MUL ne return y_tab.NE neg return y_tab.NEG diff --git a/vm_asm.t b/vm_asm.t index 22cab23..7d99b9a 100644 --- a/vm_asm.t +++ b/vm_asm.t @@ -24,21 +24,21 @@ gmpy2.get_context().precision = 128 OP_NOP = 0x0 - OP_ADD_EXPR_INT8_R1 = 0x1 - OP_ADD_EXPR_INT8_R2 = 0x2 - OP_ADD_EXPR_INT8_R3 = 0x3 - OP_ADD_EXPR_INT8_R4 = 0x4 - OP_ADD_EXPR_INT8_R5 = 0x5 - OP_ADD_EXPR_INT16_R1 = 0x6 - OP_ADD_EXPR_INT16_R2 = 0x7 - OP_ADD_EXPR_INT16_R3 = 0x8 - OP_ADD_EXPR_INT16_R4 = 0x9 - OP_ADD_EXPR_INT16_R5 = 0xa - OP_ADD_EXPR_INT32_R1 = 0xb - OP_ADD_EXPR_INT32_R2 = 0xc - OP_ADD_EXPR_INT32_R3 = 0xd - OP_ADD_EXPR_INT32_R4 = 0xe - OP_ADD_EXPR_INT32_R5 = 0xf + OP_ADD_INT8_EXPR_R1 = 0x1 + OP_ADD_INT8_EXPR_R2 = 0x2 + OP_ADD_INT8_EXPR_R3 = 0x3 + OP_ADD_INT8_EXPR_R4 = 0x4 + OP_ADD_INT8_EXPR_R5 = 0x5 + OP_ADD_INT16_EXPR_R1 = 0x6 + OP_ADD_INT16_EXPR_R2 = 0x7 + OP_ADD_INT16_EXPR_R3 = 0x8 + OP_ADD_INT16_EXPR_R4 = 0x9 + OP_ADD_INT16_EXPR_R5 = 0xa + OP_ADD_INT32_EXPR_R1 = 0xb + OP_ADD_INT32_EXPR_R2 = 0xc + OP_ADD_INT32_EXPR_R3 = 0xd + OP_ADD_INT32_EXPR_R4 = 0xe + OP_ADD_INT32_EXPR_R5 = 0xf OP_ADD_INT8 = 0x10 OP_ADD_INT16 = 0x11 OP_ADD_INT32 = 0x12 @@ -47,9 +47,9 @@ OP_AND_INT16 = 0x15 OP_AND_INT32 = 0x16 OP_CALL = 0x17 - OP_CALL_EXPR_INT8 = 0x18 - OP_CALL_EXPR_INT16 = 0x19 - OP_CALL_EXPR_INT32 = 0x1a + OP_CALL_INT8_EXPR = 0x18 + OP_CALL_INT16_EXPR = 0x19 + OP_CALL_INT32_EXPR = 0x1a OP_CVT_INT8_INT16 = 0x1b OP_CVT_INT8_INT32 = 0x1c OP_CVT_INT8_FLOAT32 = 0x1d @@ -100,66 +100,66 @@ OP_IMM_EXPR_8 = 0x4a OP_IMM_EXPR_16 = 0x4b OP_IMM_EXPR_32 = 0x4c - OP_JMPF_INT8_EXPR_INT8 = 0x4d - OP_JMPF_INT8_EXPR_INT16 = 0x4e - OP_JMPF_INT8_EXPR_INT32 = 0x4f - OP_JMPF_INT16_EXPR_INT8 = 0x50 - OP_JMPF_INT16_EXPR_INT16 = 0x51 - OP_JMPF_INT16_EXPR_INT32 = 0x52 - OP_JMPF_INT32_EXPR_INT8 = 0x53 - OP_JMPF_INT32_EXPR_INT16 = 0x54 - OP_JMPF_INT32_EXPR_INT32 = 0x55 - OP_JMPF_FLOAT32_EXPR_INT8 = 0x56 - OP_JMPF_FLOAT32_EXPR_INT16 = 0x57 - OP_JMPF_FLOAT32_EXPR_INT32 = 0x58 - OP_JMPF_R1_EXPR_INT8 = 0x59 - OP_JMPF_R1_EXPR_INT16 = 0x5a - OP_JMPF_R1_EXPR_INT32 = 0x5b - OP_JMPF_R2_EXPR_INT8 = 0x5c - OP_JMPF_R2_EXPR_INT16 = 0x5d - OP_JMPF_R2_EXPR_INT32 = 0x5e - OP_JMPF_R3_EXPR_INT8 = 0x5f - OP_JMPF_R3_EXPR_INT16 = 0x60 - OP_JMPF_R3_EXPR_INT32 = 0x61 - OP_JMPT_INT8_EXPR_INT8 = 0x62 - OP_JMPT_INT8_EXPR_INT16 = 0x63 - OP_JMPT_INT8_EXPR_INT32 = 0x64 - OP_JMPT_INT16_EXPR_INT8 = 0x65 - OP_JMPT_INT16_EXPR_INT16 = 0x66 - OP_JMPT_INT16_EXPR_INT32 = 0x67 - OP_JMPT_INT32_EXPR_INT8 = 0x68 - OP_JMPT_INT32_EXPR_INT16 = 0x69 - OP_JMPT_INT32_EXPR_INT32 = 0x6a - OP_JMPT_FLOAT32_EXPR_INT8 = 0x6b - OP_JMPT_FLOAT32_EXPR_INT16 = 0x6c - OP_JMPT_FLOAT32_EXPR_INT32 = 0x6d - OP_JMPT_R1_EXPR_INT8 = 0x6e - OP_JMPT_R1_EXPR_INT16 = 0x6f - OP_JMPT_R1_EXPR_INT32 = 0x70 - OP_JMPT_R2_EXPR_INT8 = 0x71 - OP_JMPT_R2_EXPR_INT16 = 0x72 - OP_JMPT_R2_EXPR_INT32 = 0x73 - OP_JMPT_R3_EXPR_INT8 = 0x74 - OP_JMPT_R3_EXPR_INT16 = 0x75 - OP_JMPT_R3_EXPR_INT32 = 0x76 + OP_JMPF_INT8_INT8_EXPR = 0x4d + OP_JMPF_INT8_INT16_EXPR = 0x4e + OP_JMPF_INT8_INT32_EXPR = 0x4f + OP_JMPF_INT16_INT8_EXPR = 0x50 + OP_JMPF_INT16_INT16_EXPR = 0x51 + OP_JMPF_INT16_INT32_EXPR = 0x52 + OP_JMPF_INT32_INT8_EXPR = 0x53 + OP_JMPF_INT32_INT16_EXPR = 0x54 + OP_JMPF_INT32_INT32_EXPR = 0x55 + OP_JMPF_FLOAT32_INT8_EXPR = 0x56 + OP_JMPF_FLOAT32_INT16_EXPR = 0x57 + OP_JMPF_FLOAT32_INT32_EXPR = 0x58 + OP_JMPF_R1_INT8_EXPR = 0x59 + OP_JMPF_R1_INT16_EXPR = 0x5a + OP_JMPF_R1_INT32_EXPR = 0x5b + OP_JMPF_R2_INT8_EXPR = 0x5c + OP_JMPF_R2_INT16_EXPR = 0x5d + OP_JMPF_R2_INT32_EXPR = 0x5e + OP_JMPF_R3_INT8_EXPR = 0x5f + OP_JMPF_R3_INT16_EXPR = 0x60 + OP_JMPF_R3_INT32_EXPR = 0x61 + OP_JMPT_INT8_INT8_EXPR = 0x62 + OP_JMPT_INT8_INT16_EXPR = 0x63 + OP_JMPT_INT8_INT32_EXPR = 0x64 + OP_JMPT_INT16_INT8_EXPR = 0x65 + OP_JMPT_INT16_INT16_EXPR = 0x66 + OP_JMPT_INT16_INT32_EXPR = 0x67 + OP_JMPT_INT32_INT8_EXPR = 0x68 + OP_JMPT_INT32_INT16_EXPR = 0x69 + OP_JMPT_INT32_INT32_EXPR = 0x6a + OP_JMPT_FLOAT32_INT8_EXPR = 0x6b + OP_JMPT_FLOAT32_INT16_EXPR = 0x6c + OP_JMPT_FLOAT32_INT32_EXPR = 0x6d + OP_JMPT_R1_INT8_EXPR = 0x6e + OP_JMPT_R1_INT16_EXPR = 0x6f + OP_JMPT_R1_INT32_EXPR = 0x70 + OP_JMPT_R2_INT8_EXPR = 0x71 + OP_JMPT_R2_INT16_EXPR = 0x72 + OP_JMPT_R2_INT32_EXPR = 0x73 + OP_JMPT_R3_INT8_EXPR = 0x74 + OP_JMPT_R3_INT16_EXPR = 0x75 + OP_JMPT_R3_INT32_EXPR = 0x76 OP_LD_8 = 0x77 OP_LD_16 = 0x78 OP_LD_32 = 0x79 - OP_LEA_EXPR_INT8_R1 = 0x7a - OP_LEA_EXPR_INT8_R2 = 0x7b - OP_LEA_EXPR_INT8_R3 = 0x7c - OP_LEA_EXPR_INT8_R4 = 0x7d - OP_LEA_EXPR_INT8_R5 = 0x7e - OP_LEA_EXPR_INT16_R1 = 0x7f - OP_LEA_EXPR_INT16_R2 = 0x80 - OP_LEA_EXPR_INT16_R3 = 0x81 - OP_LEA_EXPR_INT16_R4 = 0x82 - OP_LEA_EXPR_INT16_R5 = 0x83 - OP_LEA_EXPR_INT32_R1 = 0x84 - OP_LEA_EXPR_INT32_R2 = 0x85 - OP_LEA_EXPR_INT32_R3 = 0x86 - OP_LEA_EXPR_INT32_R4 = 0x87 - OP_LEA_EXPR_INT32_R5 = 0x88 + OP_LEA_INT8_EXPR_R1 = 0x7a + OP_LEA_INT8_EXPR_R2 = 0x7b + OP_LEA_INT8_EXPR_R3 = 0x7c + OP_LEA_INT8_EXPR_R4 = 0x7d + OP_LEA_INT8_EXPR_R5 = 0x7e + OP_LEA_INT16_EXPR_R1 = 0x7f + OP_LEA_INT16_EXPR_R2 = 0x80 + OP_LEA_INT16_EXPR_R3 = 0x81 + OP_LEA_INT16_EXPR_R4 = 0x82 + OP_LEA_INT16_EXPR_R5 = 0x83 + OP_LEA_INT32_EXPR_R1 = 0x84 + OP_LEA_INT32_EXPR_R2 = 0x85 + OP_LEA_INT32_EXPR_R3 = 0x86 + OP_LEA_INT32_EXPR_R4 = 0x87 + OP_LEA_INT32_EXPR_R5 = 0x88 OP_LE_INT8 = 0x89 OP_LE_INT16 = 0x8a OP_LE_INT32 = 0x8b @@ -186,16 +186,16 @@ OP_MOD_R_UINT8 = 0xa0 OP_MOD_R_UINT16 = 0xa1 OP_MOD_R_UINT32 = 0xa2 - OP_MOV_R0_R1 = 0xa3 - OP_MOV_R0_R2 = 0xa4 - OP_MOV_R0_R3 = 0xa5 - OP_MOV_R0_R4 = 0xa6 - OP_MOV_R0_R5 = 0xa7 - OP_MOV_R1_R0 = 0xa8 - OP_MOV_R2_R0 = 0xa9 - OP_MOV_R3_R0 = 0xaa - OP_MOV_R4_R0 = 0xab - OP_MOV_R5_R0 = 0xac + OP_SET_R1 = 0xa3 + OP_SET_R2 = 0xa4 + OP_SET_R3 = 0xa5 + OP_SET_R4 = 0xa6 + OP_SET_R5 = 0xa7 + OP_GET_R1 = 0xa8 + OP_GET_R2 = 0xa9 + OP_GET_R3 = 0xaa + OP_GET_R4 = 0xab + OP_GET_R5 = 0xac OP_MUL_INT8 = 0xad OP_MUL_INT16 = 0xae OP_MUL_INT32 = 0xaf @@ -359,30 +359,30 @@ OP_GT_FLOAT128 = 0x159 OP_IMM_EXPR_64 = 0x15a OP_IMM_EXPR_128 = 0x15b - OP_JMPF_INT64_EXPR_INT8 = 0x15c - OP_JMPF_INT64_EXPR_INT16 = 0x15d - OP_JMPF_INT64_EXPR_INT32 = 0x15e - OP_JMPF_INT128_EXPR_INT8 = 0x15f - OP_JMPF_INT128_EXPR_INT16 = 0x160 - OP_JMPF_INT128_EXPR_INT32 = 0x161 - OP_JMPF_FLOAT64_EXPR_INT8 = 0x162 - OP_JMPF_FLOAT64_EXPR_INT16 = 0x163 - OP_JMPF_FLOAT64_EXPR_INT32 = 0x164 - OP_JMPF_FLOAT128_EXPR_INT8 = 0x165 - OP_JMPF_FLOAT128_EXPR_INT16 = 0x166 - OP_JMPF_FLOAT128_EXPR_INT32 = 0x167 - OP_JMPT_INT64_EXPR_INT8 = 0x168 - OP_JMPT_INT64_EXPR_INT16 = 0x169 - OP_JMPT_INT64_EXPR_INT32 = 0x16a - OP_JMPT_INT128_EXPR_INT8 = 0x16b - OP_JMPT_INT128_EXPR_INT16 = 0x16c - OP_JMPT_INT128_EXPR_INT32 = 0x16d - OP_JMPT_FLOAT64_EXPR_INT8 = 0x16e - OP_JMPT_FLOAT64_EXPR_INT16 = 0x16f - OP_JMPT_FLOAT64_EXPR_INT32 = 0x170 - OP_JMPT_FLOAT128_EXPR_INT8 = 0x171 - OP_JMPT_FLOAT128_EXPR_INT16 = 0x172 - OP_JMPT_FLOAT128_EXPR_INT32 = 0x173 + OP_JMPF_INT64_INT8_EXPR = 0x15c + OP_JMPF_INT64_INT16_EXPR = 0x15d + OP_JMPF_INT64_INT32_EXPR = 0x15e + OP_JMPF_INT128_INT8_EXPR = 0x15f + OP_JMPF_INT128_INT16_EXPR = 0x160 + OP_JMPF_INT128_INT32_EXPR = 0x161 + OP_JMPF_FLOAT64_INT8_EXPR = 0x162 + OP_JMPF_FLOAT64_INT16_EXPR = 0x163 + OP_JMPF_FLOAT64_INT32_EXPR = 0x164 + OP_JMPF_FLOAT128_INT8_EXPR = 0x165 + OP_JMPF_FLOAT128_INT16_EXPR = 0x166 + OP_JMPF_FLOAT128_INT32_EXPR = 0x167 + OP_JMPT_INT64_INT8_EXPR = 0x168 + OP_JMPT_INT64_INT16_EXPR = 0x169 + OP_JMPT_INT64_INT32_EXPR = 0x16a + OP_JMPT_INT128_INT8_EXPR = 0x16b + OP_JMPT_INT128_INT16_EXPR = 0x16c + OP_JMPT_INT128_INT32_EXPR = 0x16d + OP_JMPT_FLOAT64_INT8_EXPR = 0x16e + OP_JMPT_FLOAT64_INT16_EXPR = 0x16f + OP_JMPT_FLOAT64_INT32_EXPR = 0x170 + OP_JMPT_FLOAT128_INT8_EXPR = 0x171 + OP_JMPT_FLOAT128_INT16_EXPR = 0x172 + OP_JMPT_FLOAT128_INT32_EXPR = 0x173 OP_LD_64 = 0x174 OP_LD_128 = 0x175 OP_LE_INT64 = 0x176 diff --git a/vm_asm.y b/vm_asm.y index 1619463..2ca7120 100644 --- a/vm_asm.y +++ b/vm_asm.y @@ -34,7 +34,8 @@ %token LT %token MOD %token MOD_R -%token MOV +%token GET +%token SET %token MUL %token NE %token NEG @@ -219,31 +220,31 @@ input_line | %space (?E{t_def.Label}identifier ':') | %space (?E{t_def.Equate}identifier '=' expression) | %space (?E{t_def.DotAlign}DOT_ALIGN expression) - | %space (?E{t_def.DotDataI, size = 8}DOT_DATA expression ',' INT8) - | %space (?E{t_def.DotDataI, size = 16}DOT_DATA expression ',' INT16) - | %space (?E{t_def.DotDataI, size = 32}DOT_DATA expression ',' INT32) - | %space (?E{t_def.DotDataI, size = 64}DOT_DATA expression ',' INT64) - | %space (?E{t_def.DotDataI, size = 128}DOT_DATA expression ',' INT128) - | %space (?E{t_def.DotDataF, size = 32}DOT_DATA expression ',' FLOAT32) - | %space (?E{t_def.DotDataF, size = 64}DOT_DATA expression ',' FLOAT64) - | %space (?E{t_def.DotDataF, size = 128}DOT_DATA expression ',' FLOAT128) + | %space (?E{t_def.DotDataI, size = 8}DOT_DATA INT8 ':' expression) + | %space (?E{t_def.DotDataI, size = 16}DOT_DATA INT16 ':' expression) + | %space (?E{t_def.DotDataI, size = 32}DOT_DATA INT32 ':' expression) + | %space (?E{t_def.DotDataI, size = 64}DOT_DATA INT64 ':' expression) + | %space (?E{t_def.DotDataI, size = 128}DOT_DATA INT128 ':' expression) + | %space (?E{t_def.DotDataF, size = 32}DOT_DATA FLOAT32 ':' expression) + | %space (?E{t_def.DotDataF, size = 64}DOT_DATA FLOAT64 ':' expression) + | %space (?E{t_def.DotDataF, size = 128}DOT_DATA FLOAT128 ':' expression) | %space (?E{t_def.DotSpace}DOT_SPACE expression) | %space (?E{t_def.Op, op = t_def.OP_NOP}NOP) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT8_R1, size = 8}ADD expression ',' INT8 ',' R1) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT8_R2, size = 8}ADD expression ',' INT8 ',' R2) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT8_R3, size = 8}ADD expression ',' INT8 ',' R3) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT8_R4, size = 8}ADD expression ',' INT8 ',' R4) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT8_R5, size = 8}ADD expression ',' INT8 ',' R5) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT16_R1, size = 16}ADD expression ',' INT16 ',' R1) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT16_R2, size = 16}ADD expression ',' INT16 ',' R2) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT16_R3, size = 16}ADD expression ',' INT16 ',' R3) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT16_R4, size = 16}ADD expression ',' INT16 ',' R4) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT16_R5, size = 16}ADD expression ',' INT16 ',' R5) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT32_R1, size = 32}ADD expression ',' INT32 ',' R1) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT32_R2, size = 32}ADD expression ',' INT32 ',' R2) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT32_R3, size = 32}ADD expression ',' INT32 ',' R3) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT32_R4, size = 32}ADD expression ',' INT32 ',' R4) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT32_R5, size = 32}ADD expression ',' INT32 ',' R5) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT8_EXPR_R1, size = 8}ADD INT8 ':' expression ',' R1) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT8_EXPR_R2, size = 8}ADD INT8 ':' expression ',' R2) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT8_EXPR_R3, size = 8}ADD INT8 ':' expression ',' R3) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT8_EXPR_R4, size = 8}ADD INT8 ':' expression ',' R4) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT8_EXPR_R5, size = 8}ADD INT8 ':' expression ',' R5) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT16_EXPR_R1, size = 16}ADD INT16 ':' expression ',' R1) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT16_EXPR_R2, size = 16}ADD INT16 ':' expression ',' R2) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT16_EXPR_R3, size = 16}ADD INT16 ':' expression ',' R3) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT16_EXPR_R4, size = 16}ADD INT16 ':' expression ',' R4) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT16_EXPR_R5, size = 16}ADD INT16 ':' expression ',' R5) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT32_EXPR_R1, size = 32}ADD INT32 ':' expression ',' R1) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT32_EXPR_R2, size = 32}ADD INT32 ':' expression ',' R2) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT32_EXPR_R3, size = 32}ADD INT32 ':' expression ',' R3) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT32_EXPR_R4, size = 32}ADD INT32 ':' expression ',' R4) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT32_EXPR_R5, size = 32}ADD INT32 ':' expression ',' R5) | %space (?E{t_def.Op, op = t_def.OP_ADD_INT8}ADD INT8) | %space (?E{t_def.Op, op = t_def.OP_ADD_INT16}ADD INT16) | %space (?E{t_def.Op, op = t_def.OP_ADD_INT32}ADD INT32) @@ -258,12 +259,12 @@ input_line | %space (?E{t_def.Op, op = t_def.OP_AND_INT64}AND INT64) | %space (?E{t_def.Op, op = t_def.OP_AND_INT128}AND INT128) | %space (?E{t_def.Op, op = t_def.OP_CALL}CALL) - | %space (?E{t_def.OpI, op = t_def.OP_CALL_EXPR_INT8, size = 8}CALL expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_CALL_EXPR_INT16, size = 16}CALL expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_CALL_EXPR_INT32, size = 32}CALL expression ',' INT32) - | %space (?E{t_def.OpPCR, op = t_def.OP_CALL_EXPR_INT8, size = 8}CALL expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_CALL_EXPR_INT16, size = 16}CALL expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_CALL_EXPR_INT32, size = 32}CALL expression ',' PCR32) + | %space (?E{t_def.OpI, op = t_def.OP_CALL_INT8_EXPR, size = 8}CALL INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_CALL_INT16_EXPR, size = 16}CALL INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_CALL_INT32_EXPR, size = 32}CALL INT32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_CALL_INT8_EXPR, size = 8}CALL PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_CALL_INT16_EXPR, size = 16}CALL PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_CALL_INT32_EXPR, size = 32}CALL PCR32 ':' expression) | %space (?E{t_def.Op, op = t_def.OP_CVT_INT8_INT16}CVT INT8 ',' INT16) | %space (?E{t_def.Op, op = t_def.OP_CVT_INT8_INT32}CVT INT8 ',' INT32) | %space (?E{t_def.Op, op = t_def.OP_CVT_INT8_INT64}CVT INT8 ',' INT64) @@ -395,180 +396,180 @@ input_line | %space (?E{t_def.Op, op = t_def.OP_GT_FLOAT32}GT FLOAT32) | %space (?E{t_def.Op, op = t_def.OP_GT_FLOAT64}GT FLOAT64) | %space (?E{t_def.Op, op = t_def.OP_GT_FLOAT128}GT FLOAT128) - | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_8, size = 8}IMM expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_16, size = 16}IMM expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_32, size = 32}IMM expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_64, size = 64}IMM expression ',' INT64) - | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_128, size = 128}IMM expression ',' INT128) - | %space (?E{t_def.OpF, op = t_def.OP_IMM_EXPR_32, size = 32}IMM expression ',' FLOAT32) - | %space (?E{t_def.OpF, op = t_def.OP_IMM_EXPR_64, size = 64}IMM expression ',' FLOAT64) - | %space (?E{t_def.OpF, op = t_def.OP_IMM_EXPR_128, size = 128}IMM expression ',' FLOAT128) + | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_8, size = 8}IMM INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_16, size = 16}IMM INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_32, size = 32}IMM INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_64, size = 64}IMM INT64 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_IMM_EXPR_128, size = 128}IMM INT128 ':' expression) + | %space (?E{t_def.OpF, op = t_def.OP_IMM_EXPR_32, size = 32}IMM FLOAT32 ':' expression) + | %space (?E{t_def.OpF, op = t_def.OP_IMM_EXPR_64, size = 64}IMM FLOAT64 ':' expression) + | %space (?E{t_def.OpF, op = t_def.OP_IMM_EXPR_128, size = 128}IMM FLOAT128 ':' expression) /* imm XXX,pcrY is a synonym for lea XXX,pcrY,r5 */ - | %space (?E{t_def.OpPCR, op = t_def.OP_LEA_EXPR_INT8_R5, size = 8}IMM expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_LEA_EXPR_INT16_R5, size = 16}IMM expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_LEA_EXPR_INT32_R5, size = 32}IMM expression ',' PCR32) + | %space (?E{t_def.OpPCR, op = t_def.OP_LEA_INT8_EXPR_R5, size = 8}IMM PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_LEA_INT16_EXPR_R5, size = 16}IMM PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_LEA_INT32_EXPR_R5, size = 32}IMM PCR32 ':' expression) /* jmp XXX,YYY is a synonym for add XXX,YYY,r5 */ - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT8_R5, size = 8}JMP expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT16_R5, size = 16}JMP expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_ADD_EXPR_INT32_R5, size = 32}JMP expression ',' INT32) - | %space (?E{t_def.OpPCR, op = t_def.OP_ADD_EXPR_INT8_R5, size = 8}JMP expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_ADD_EXPR_INT16_R5, size = 16}JMP expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_ADD_EXPR_INT32_R5, size = 32}JMP expression ',' PCR32) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT8_EXPR_R5, size = 8}JMP INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT16_EXPR_R5, size = 16}JMP INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_ADD_INT32_EXPR_R5, size = 32}JMP INT32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_ADD_INT8_EXPR_R5, size = 8}JMP PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_ADD_INT16_EXPR_R5, size = 16}JMP PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_ADD_INT32_EXPR_R5, size = 32}JMP PCR32 ':' expression) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT8_EXPR_INT8, size = 8}JMPF INT8 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT8_EXPR_INT16, size = 16}JMPF INT8 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT8_EXPR_INT32, size = 32}JMPF INT8 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT16_EXPR_INT8, size = 8}JMPF INT16 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT16_EXPR_INT16, size = 16}JMPF INT16 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT16_EXPR_INT32, size = 32}JMPF INT16 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT32_EXPR_INT8, size = 8}JMPF INT32 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT32_EXPR_INT16, size = 16}JMPF INT32 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT32_EXPR_INT32, size = 32}JMPF INT32 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT64_EXPR_INT8, size = 8}JMPF INT64 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT64_EXPR_INT16, size = 16}JMPF INT64 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT64_EXPR_INT32, size = 32}JMPF INT64 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT128_EXPR_INT8, size = 8}JMPF INT128 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT128_EXPR_INT16, size = 16}JMPF INT128 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT128_EXPR_INT32, size = 32}JMPF INT128 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT32_EXPR_INT8, size = 8}JMPF FLOAT32 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT32_EXPR_INT16, size = 16}JMPF FLOAT32 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT32_EXPR_INT32, size = 32}JMPF FLOAT32 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT64_EXPR_INT8, size = 8}JMPF FLOAT64 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT64_EXPR_INT16, size = 16}JMPF FLOAT64 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT64_EXPR_INT32, size = 32}JMPF FLOAT64 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT128_EXPR_INT8, size = 8}JMPF FLOAT128 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT128_EXPR_INT16, size = 16}JMPF FLOAT128 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT128_EXPR_INT32, size = 32}JMPF FLOAT128 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R1_EXPR_INT8, size = 8}JMPF R1 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R1_EXPR_INT16, size = 16}JMPF R1 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R1_EXPR_INT32, size = 32}JMPF R1 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R2_EXPR_INT8, size = 8}JMPF R2 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R2_EXPR_INT16, size = 16}JMPF R2 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R2_EXPR_INT32, size = 32}JMPF R2 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R3_EXPR_INT8, size = 8}JMPF R3 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R3_EXPR_INT16, size = 16}JMPF R3 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R3_EXPR_INT32, size = 32}JMPF R3 ',' expression ',' INT32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT8_EXPR_INT8, size = 8}JMPF INT8 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT8_EXPR_INT16, size = 16}JMPF INT8 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT8_EXPR_INT32, size = 32}JMPF INT8 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT16_EXPR_INT8, size = 8}JMPF INT16 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT16_EXPR_INT16, size = 16}JMPF INT16 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT16_EXPR_INT32, size = 32}JMPF INT16 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT32_EXPR_INT8, size = 8}JMPF INT32 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT32_EXPR_INT16, size = 16}JMPF INT32 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT32_EXPR_INT32, size = 32}JMPF INT32 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT64_EXPR_INT8, size = 8}JMPF INT64 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT64_EXPR_INT16, size = 16}JMPF INT64 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT64_EXPR_INT32, size = 32}JMPF INT64 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT128_EXPR_INT8, size = 8}JMPF INT128 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT128_EXPR_INT16, size = 16}JMPF INT128 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT128_EXPR_INT32, size = 32}JMPF INT128 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT32_EXPR_INT8, size = 8}JMPF FLOAT32 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT32_EXPR_INT16, size = 16}JMPF FLOAT32 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT32_EXPR_INT32, size = 32}JMPF FLOAT32 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT64_EXPR_INT8, size = 8}JMPF FLOAT64 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT64_EXPR_INT16, size = 16}JMPF FLOAT64 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT64_EXPR_INT32, size = 32}JMPF FLOAT64 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT128_EXPR_INT8, size = 8}JMPF FLOAT128 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT128_EXPR_INT16, size = 16}JMPF FLOAT128 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT128_EXPR_INT32, size = 32}JMPF FLOAT128 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R1_EXPR_INT8, size = 8}JMPF R1 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R1_EXPR_INT16, size = 16}JMPF R1 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R1_EXPR_INT32, size = 32}JMPF R1 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R2_EXPR_INT8, size = 8}JMPF R2 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R2_EXPR_INT16, size = 16}JMPF R2 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R2_EXPR_INT32, size = 32}JMPF R2 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R3_EXPR_INT8, size = 8}JMPF R3 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R3_EXPR_INT16, size = 16}JMPF R3 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R3_EXPR_INT32, size = 32}JMPF R3 ',' expression ',' PCR32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT8_EXPR_INT8, size = 8}JMPT INT8 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT8_EXPR_INT16, size = 16}JMPT INT8 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT8_EXPR_INT32, size = 32}JMPT INT8 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT16_EXPR_INT8, size = 8}JMPT INT16 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT16_EXPR_INT16, size = 16}JMPT INT16 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT16_EXPR_INT32, size = 32}JMPT INT16 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT32_EXPR_INT8, size = 8}JMPT INT32 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT32_EXPR_INT16, size = 16}JMPT INT32 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT32_EXPR_INT32, size = 32}JMPT INT32 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT64_EXPR_INT8, size = 8}JMPT INT64 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT64_EXPR_INT16, size = 16}JMPT INT64 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT64_EXPR_INT32, size = 32}JMPT INT64 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT128_EXPR_INT8, size = 8}JMPT INT128 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT128_EXPR_INT16, size = 16}JMPT INT128 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT128_EXPR_INT32, size = 32}JMPT INT128 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT32_EXPR_INT8, size = 8}JMPT FLOAT32 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT32_EXPR_INT16, size = 16}JMPT FLOAT32 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT32_EXPR_INT32, size = 32}JMPT FLOAT32 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT64_EXPR_INT8, size = 8}JMPT FLOAT64 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT64_EXPR_INT16, size = 16}JMPT FLOAT64 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT64_EXPR_INT32, size = 32}JMPT FLOAT64 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT128_EXPR_INT8, size = 8}JMPT FLOAT128 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT128_EXPR_INT16, size = 16}JMPT FLOAT128 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT128_EXPR_INT32, size = 32}JMPT FLOAT128 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R1_EXPR_INT8, size = 8}JMPT R1 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R1_EXPR_INT16, size = 16}JMPT R1 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R1_EXPR_INT32, size = 32}JMPT R1 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R2_EXPR_INT8, size = 8}JMPT R2 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R2_EXPR_INT16, size = 16}JMPT R2 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R2_EXPR_INT32, size = 32}JMPT R2 ',' expression ',' INT32) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R3_EXPR_INT8, size = 8}JMPT R3 ',' expression ',' INT8) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R3_EXPR_INT16, size = 16}JMPT R3 ',' expression ',' INT16) - | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R3_EXPR_INT32, size = 32}JMPT R3 ',' expression ',' INT32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT8_EXPR_INT8, size = 8}JMPT INT8 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT8_EXPR_INT16, size = 16}JMPT INT8 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT8_EXPR_INT32, size = 32}JMPT INT8 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT16_EXPR_INT8, size = 8}JMPT INT16 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT16_EXPR_INT16, size = 16}JMPT INT16 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT16_EXPR_INT32, size = 32}JMPT INT16 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT32_EXPR_INT8, size = 8}JMPT INT32 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT32_EXPR_INT16, size = 16}JMPT INT32 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT32_EXPR_INT32, size = 32}JMPT INT32 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT64_EXPR_INT8, size = 8}JMPT INT64 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT64_EXPR_INT16, size = 16}JMPT INT64 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT64_EXPR_INT32, size = 32}JMPT INT64 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT128_EXPR_INT8, size = 8}JMPT INT128 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT128_EXPR_INT16, size = 16}JMPT INT128 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT128_EXPR_INT32, size = 32}JMPT INT128 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT32_EXPR_INT8, size = 8}JMPT FLOAT32 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT32_EXPR_INT16, size = 16}JMPT FLOAT32 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT32_EXPR_INT32, size = 32}JMPT FLOAT32 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT64_EXPR_INT8, size = 8}JMPT FLOAT64 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT64_EXPR_INT16, size = 16}JMPT FLOAT64 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT64_EXPR_INT32, size = 32}JMPT FLOAT64 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT128_EXPR_INT8, size = 8}JMPT FLOAT128 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT128_EXPR_INT16, size = 16}JMPT FLOAT128 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT128_EXPR_INT32, size = 32}JMPT FLOAT128 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R1_EXPR_INT8, size = 8}JMPT R1 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R1_EXPR_INT16, size = 16}JMPT R1 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R1_EXPR_INT32, size = 32}JMPT R1 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R2_EXPR_INT8, size = 8}JMPT R2 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R2_EXPR_INT16, size = 16}JMPT R2 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R2_EXPR_INT32, size = 32}JMPT R2 ',' expression ',' PCR32) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R3_EXPR_INT8, size = 8}JMPT R3 ',' expression ',' PCR8) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R3_EXPR_INT16, size = 16}JMPT R3 ',' expression ',' PCR16) - | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R3_EXPR_INT32, size = 32}JMPT R3 ',' expression ',' PCR32) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT8_INT8_EXPR, size = 8}JMPF INT8 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT8_INT16_EXPR, size = 16}JMPF INT8 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT8_INT32_EXPR, size = 32}JMPF INT8 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT16_INT8_EXPR, size = 8}JMPF INT16 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT16_INT16_EXPR, size = 16}JMPF INT16 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT16_INT32_EXPR, size = 32}JMPF INT16 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT32_INT8_EXPR, size = 8}JMPF INT32 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT32_INT16_EXPR, size = 16}JMPF INT32 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT32_INT32_EXPR, size = 32}JMPF INT32 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT64_INT8_EXPR, size = 8}JMPF INT64 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT64_INT16_EXPR, size = 16}JMPF INT64 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT64_INT32_EXPR, size = 32}JMPF INT64 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT128_INT8_EXPR, size = 8}JMPF INT128 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT128_INT16_EXPR, size = 16}JMPF INT128 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_INT128_INT32_EXPR, size = 32}JMPF INT128 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT32_INT8_EXPR, size = 8}JMPF FLOAT32 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT32_INT16_EXPR, size = 16}JMPF FLOAT32 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT32_INT32_EXPR, size = 32}JMPF FLOAT32 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT64_INT8_EXPR, size = 8}JMPF FLOAT64 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT64_INT16_EXPR, size = 16}JMPF FLOAT64 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT64_INT32_EXPR, size = 32}JMPF FLOAT64 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT128_INT8_EXPR, size = 8}JMPF FLOAT128 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT128_INT16_EXPR, size = 16}JMPF FLOAT128 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_FLOAT128_INT32_EXPR, size = 32}JMPF FLOAT128 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R1_INT8_EXPR, size = 8}JMPF R1 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R1_INT16_EXPR, size = 16}JMPF R1 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R1_INT32_EXPR, size = 32}JMPF R1 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R2_INT8_EXPR, size = 8}JMPF R2 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R2_INT16_EXPR, size = 16}JMPF R2 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R2_INT32_EXPR, size = 32}JMPF R2 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R3_INT8_EXPR, size = 8}JMPF R3 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R3_INT16_EXPR, size = 16}JMPF R3 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPF_R3_INT32_EXPR, size = 32}JMPF R3 ',' INT32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT8_INT8_EXPR, size = 8}JMPF INT8 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT8_INT16_EXPR, size = 16}JMPF INT8 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT8_INT32_EXPR, size = 32}JMPF INT8 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT16_INT8_EXPR, size = 8}JMPF INT16 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT16_INT16_EXPR, size = 16}JMPF INT16 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT16_INT32_EXPR, size = 32}JMPF INT16 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT32_INT8_EXPR, size = 8}JMPF INT32 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT32_INT16_EXPR, size = 16}JMPF INT32 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT32_INT32_EXPR, size = 32}JMPF INT32 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT64_INT8_EXPR, size = 8}JMPF INT64 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT64_INT16_EXPR, size = 16}JMPF INT64 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT64_INT32_EXPR, size = 32}JMPF INT64 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT128_INT8_EXPR, size = 8}JMPF INT128 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT128_INT16_EXPR, size = 16}JMPF INT128 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_INT128_INT32_EXPR, size = 32}JMPF INT128 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT32_INT8_EXPR, size = 8}JMPF FLOAT32 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT32_INT16_EXPR, size = 16}JMPF FLOAT32 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT32_INT32_EXPR, size = 32}JMPF FLOAT32 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT64_INT8_EXPR, size = 8}JMPF FLOAT64 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT64_INT16_EXPR, size = 16}JMPF FLOAT64 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT64_INT32_EXPR, size = 32}JMPF FLOAT64 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT128_INT8_EXPR, size = 8}JMPF FLOAT128 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT128_INT16_EXPR, size = 16}JMPF FLOAT128 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_FLOAT128_INT32_EXPR, size = 32}JMPF FLOAT128 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R1_INT8_EXPR, size = 8}JMPF R1 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R1_INT16_EXPR, size = 16}JMPF R1 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R1_INT32_EXPR, size = 32}JMPF R1 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R2_INT8_EXPR, size = 8}JMPF R2 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R2_INT16_EXPR, size = 16}JMPF R2 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R2_INT32_EXPR, size = 32}JMPF R2 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R3_INT8_EXPR, size = 8}JMPF R3 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R3_INT16_EXPR, size = 16}JMPF R3 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPF_R3_INT32_EXPR, size = 32}JMPF R3 ',' PCR32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT8_INT8_EXPR, size = 8}JMPT INT8 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT8_INT16_EXPR, size = 16}JMPT INT8 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT8_INT32_EXPR, size = 32}JMPT INT8 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT16_INT8_EXPR, size = 8}JMPT INT16 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT16_INT16_EXPR, size = 16}JMPT INT16 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT16_INT32_EXPR, size = 32}JMPT INT16 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT32_INT8_EXPR, size = 8}JMPT INT32 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT32_INT16_EXPR, size = 16}JMPT INT32 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT32_INT32_EXPR, size = 32}JMPT INT32 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT64_INT8_EXPR, size = 8}JMPT INT64 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT64_INT16_EXPR, size = 16}JMPT INT64 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT64_INT32_EXPR, size = 32}JMPT INT64 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT128_INT8_EXPR, size = 8}JMPT INT128 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT128_INT16_EXPR, size = 16}JMPT INT128 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_INT128_INT32_EXPR, size = 32}JMPT INT128 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT32_INT8_EXPR, size = 8}JMPT FLOAT32 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT32_INT16_EXPR, size = 16}JMPT FLOAT32 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT32_INT32_EXPR, size = 32}JMPT FLOAT32 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT64_INT8_EXPR, size = 8}JMPT FLOAT64 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT64_INT16_EXPR, size = 16}JMPT FLOAT64 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT64_INT32_EXPR, size = 32}JMPT FLOAT64 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT128_INT8_EXPR, size = 8}JMPT FLOAT128 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT128_INT16_EXPR, size = 16}JMPT FLOAT128 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_FLOAT128_INT32_EXPR, size = 32}JMPT FLOAT128 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R1_INT8_EXPR, size = 8}JMPT R1 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R1_INT16_EXPR, size = 16}JMPT R1 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R1_INT32_EXPR, size = 32}JMPT R1 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R2_INT8_EXPR, size = 8}JMPT R2 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R2_INT16_EXPR, size = 16}JMPT R2 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R2_INT32_EXPR, size = 32}JMPT R2 ',' INT32 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R3_INT8_EXPR, size = 8}JMPT R3 ',' INT8 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R3_INT16_EXPR, size = 16}JMPT R3 ',' INT16 ':' expression) + | %space (?E{t_def.OpI, op = t_def.OP_JMPT_R3_INT32_EXPR, size = 32}JMPT R3 ',' INT32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT8_INT8_EXPR, size = 8}JMPT INT8 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT8_INT16_EXPR, size = 16}JMPT INT8 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT8_INT32_EXPR, size = 32}JMPT INT8 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT16_INT8_EXPR, size = 8}JMPT INT16 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT16_INT16_EXPR, size = 16}JMPT INT16 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT16_INT32_EXPR, size = 32}JMPT INT16 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT32_INT8_EXPR, size = 8}JMPT INT32 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT32_INT16_EXPR, size = 16}JMPT INT32 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT32_INT32_EXPR, size = 32}JMPT INT32 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT64_INT8_EXPR, size = 8}JMPT INT64 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT64_INT16_EXPR, size = 16}JMPT INT64 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT64_INT32_EXPR, size = 32}JMPT INT64 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT128_INT8_EXPR, size = 8}JMPT INT128 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT128_INT16_EXPR, size = 16}JMPT INT128 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_INT128_INT32_EXPR, size = 32}JMPT INT128 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT32_INT8_EXPR, size = 8}JMPT FLOAT32 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT32_INT16_EXPR, size = 16}JMPT FLOAT32 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT32_INT32_EXPR, size = 32}JMPT FLOAT32 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT64_INT8_EXPR, size = 8}JMPT FLOAT64 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT64_INT16_EXPR, size = 16}JMPT FLOAT64 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT64_INT32_EXPR, size = 32}JMPT FLOAT64 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT128_INT8_EXPR, size = 8}JMPT FLOAT128 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT128_INT16_EXPR, size = 16}JMPT FLOAT128 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_FLOAT128_INT32_EXPR, size = 32}JMPT FLOAT128 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R1_INT8_EXPR, size = 8}JMPT R1 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R1_INT16_EXPR, size = 16}JMPT R1 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R1_INT32_EXPR, size = 32}JMPT R1 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R2_INT8_EXPR, size = 8}JMPT R2 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R2_INT16_EXPR, size = 16}JMPT R2 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R2_INT32_EXPR, size = 32}JMPT R2 ',' PCR32 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R3_INT8_EXPR, size = 8}JMPT R3 ',' PCR8 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R3_INT16_EXPR, size = 16}JMPT R3 ',' PCR16 ':' expression) + | %space (?E{t_def.OpPCR, op = t_def.OP_JMPT_R3_INT32_EXPR, size = 32}JMPT R3 ',' PCR32 ':' expression) | %space (?E{t_def.Op, op = t_def.OP_LD_8}LD_8) | %space (?E{t_def.Op, op = t_def.OP_LD_16}LD_16) | %space (?E{t_def.Op, op = t_def.OP_LD_32}LD_32) | %space (?E{t_def.Op, op = t_def.OP_LD_64}LD_64) | %space (?E{t_def.Op, op = t_def.OP_LD_128}LD_128) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT8_R1, size = 8}LEA expression ',' INT8 ',' R1) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT8_R2, size = 8}LEA expression ',' INT8 ',' R2) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT8_R3, size = 8}LEA expression ',' INT8 ',' R3) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT8_R4, size = 8}LEA expression ',' INT8 ',' R4) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT8_R5, size = 8}LEA expression ',' INT8 ',' R5) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT16_R1, size = 16}LEA expression ',' INT16 ',' R1) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT16_R2, size = 16}LEA expression ',' INT16 ',' R2) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT16_R3, size = 16}LEA expression ',' INT16 ',' R3) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT16_R4, size = 16}LEA expression ',' INT16 ',' R4) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT16_R5, size = 16}LEA expression ',' INT16 ',' R5) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT32_R1, size = 32}LEA expression ',' INT32 ',' R1) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT32_R2, size = 32}LEA expression ',' INT32 ',' R2) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT32_R3, size = 32}LEA expression ',' INT32 ',' R3) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT32_R4, size = 32}LEA expression ',' INT32 ',' R4) - | %space (?E{t_def.OpI, op = t_def.OP_LEA_EXPR_INT32_R5, size = 32}LEA expression ',' INT32 ',' R5) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT8_EXPR_R1, size = 8}LEA INT8 ':' expression ',' R1) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT8_EXPR_R2, size = 8}LEA INT8 ':' expression ',' R2) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT8_EXPR_R3, size = 8}LEA INT8 ':' expression ',' R3) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT8_EXPR_R4, size = 8}LEA INT8 ':' expression ',' R4) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT8_EXPR_R5, size = 8}LEA INT8 ':' expression ',' R5) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT16_EXPR_R1, size = 16}LEA INT16 ':' expression ',' R1) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT16_EXPR_R2, size = 16}LEA INT16 ':' expression ',' R2) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT16_EXPR_R3, size = 16}LEA INT16 ':' expression ',' R3) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT16_EXPR_R4, size = 16}LEA INT16 ':' expression ',' R4) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT16_EXPR_R5, size = 16}LEA INT16 ':' expression ',' R5) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT32_EXPR_R1, size = 32}LEA INT32 ':' expression ',' R1) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT32_EXPR_R2, size = 32}LEA INT32 ':' expression ',' R2) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT32_EXPR_R3, size = 32}LEA INT32 ':' expression ',' R3) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT32_EXPR_R4, size = 32}LEA INT32 ':' expression ',' R4) + | %space (?E{t_def.OpI, op = t_def.OP_LEA_INT32_EXPR_R5, size = 32}LEA INT32 ':' expression ',' R5) | %space (?E{t_def.Op, op = t_def.OP_LE_INT8}LE INT8) | %space (?E{t_def.Op, op = t_def.OP_LE_INT16}LE INT16) | %space (?E{t_def.Op, op = t_def.OP_LE_INT32}LE INT32) @@ -615,16 +616,16 @@ input_line | %space (?E{t_def.Op, op = t_def.OP_MOD_R_UINT32}MOD_R UINT32) | %space (?E{t_def.Op, op = t_def.OP_MOD_R_UINT64}MOD_R UINT64) | %space (?E{t_def.Op, op = t_def.OP_MOD_R_UINT128}MOD_R UINT128) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R0_R1}MOV R0 ',' R1) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R0_R2}MOV R0 ',' R2) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R0_R3}MOV R0 ',' R3) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R0_R4}MOV R0 ',' R4) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R0_R5}MOV R0 ',' R5) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R1_R0}MOV R1 ',' R0) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R2_R0}MOV R2 ',' R0) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R3_R0}MOV R3 ',' R0) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R4_R0}MOV R4 ',' R0) - | %space (?E{t_def.Op, op = t_def.OP_MOV_R5_R0}MOV R5 ',' R0) + | %space (?E{t_def.Op, op = t_def.OP_SET_R1}SET R1) + | %space (?E{t_def.Op, op = t_def.OP_SET_R2}SET R2) + | %space (?E{t_def.Op, op = t_def.OP_SET_R3}SET R3) + | %space (?E{t_def.Op, op = t_def.OP_SET_R4}SET R4) + | %space (?E{t_def.Op, op = t_def.OP_SET_R5}SET R5) + | %space (?E{t_def.Op, op = t_def.OP_GET_R1}GET R1) + | %space (?E{t_def.Op, op = t_def.OP_GET_R2}GET R2) + | %space (?E{t_def.Op, op = t_def.OP_GET_R3}GET R3) + | %space (?E{t_def.Op, op = t_def.OP_GET_R4}GET R4) + | %space (?E{t_def.Op, op = t_def.OP_GET_R5}GET R5) | %space (?E{t_def.Op, op = t_def.OP_MUL_INT8}MUL INT8) | %space (?E{t_def.Op, op = t_def.OP_MUL_INT16}MUL INT16) | %space (?E{t_def.Op, op = t_def.OP_MUL_INT32}MUL INT32) -- 2.34.1