diff options
Diffstat (limited to 'opcodes/mep-ibld.c')
-rw-r--r-- | opcodes/mep-ibld.c | 738 |
1 files changed, 738 insertions, 0 deletions
diff --git a/opcodes/mep-ibld.c b/opcodes/mep-ibld.c index 422a90d..69fedea 100644 --- a/opcodes/mep-ibld.c +++ b/opcodes/mep-ibld.c @@ -736,6 +736,24 @@ mep_cgen_insert_operand (CGEN_CPU_DESC cd, break; } break; + case MEP_OPERAND_CROC : + errmsg = insert_normal (cd, fields->f_ivc2_5u7, 0, 0, 7, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_CROP : + errmsg = insert_normal (cd, fields->f_ivc2_5u23, 0, 0, 23, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_CRPC : + errmsg = insert_normal (cd, fields->f_ivc2_5u26, 0, 0, 26, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_CRPP : + errmsg = insert_normal (cd, fields->f_ivc2_5u18, 0, 0, 18, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_CRQC : + errmsg = insert_normal (cd, fields->f_ivc2_5u21, 0, 0, 21, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_CRQP : + errmsg = insert_normal (cd, fields->f_ivc2_5u13, 0, 0, 13, 5, 32, total_length, buffer); + break; case MEP_OPERAND_CSRN : { { @@ -774,6 +792,123 @@ mep_cgen_insert_operand (CGEN_CPU_DESC cd, break; case MEP_OPERAND_HI : break; + case MEP_OPERAND_IMM16P0 : + { +{ + FLD (f_ivc2_8u0) = ((((unsigned int) (FLD (f_ivc2_imm16p0)) >> (8))) & (255)); + FLD (f_ivc2_8u20) = ((FLD (f_ivc2_imm16p0)) & (255)); +} + errmsg = insert_normal (cd, fields->f_ivc2_8u0, 0, 0, 0, 8, 32, total_length, buffer); + if (errmsg) + break; + errmsg = insert_normal (cd, fields->f_ivc2_8u20, 0, 0, 20, 8, 32, total_length, buffer); + if (errmsg) + break; + } + break; + case MEP_OPERAND_IMM3P12 : + errmsg = insert_normal (cd, fields->f_ivc2_3u12, 0, 0, 12, 3, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM3P25 : + errmsg = insert_normal (cd, fields->f_ivc2_3u25, 0, 0, 25, 3, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM3P4 : + errmsg = insert_normal (cd, fields->f_ivc2_3u4, 0, 0, 4, 3, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM3P5 : + errmsg = insert_normal (cd, fields->f_ivc2_3u5, 0, 0, 5, 3, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM3P9 : + errmsg = insert_normal (cd, fields->f_ivc2_3u9, 0, 0, 9, 3, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM4P10 : + errmsg = insert_normal (cd, fields->f_ivc2_4u10, 0, 0, 10, 4, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM4P4 : + errmsg = insert_normal (cd, fields->f_ivc2_4u4, 0, 0, 4, 4, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM4P8 : + errmsg = insert_normal (cd, fields->f_ivc2_4u8, 0, 0, 8, 4, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM5P23 : + errmsg = insert_normal (cd, fields->f_ivc2_5u23, 0, 0, 23, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM5P3 : + errmsg = insert_normal (cd, fields->f_ivc2_5u3, 0, 0, 3, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM5P7 : + errmsg = insert_normal (cd, fields->f_ivc2_5u7, 0, 0, 7, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM5P8 : + errmsg = insert_normal (cd, fields->f_ivc2_5u8, 0, 0, 8, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM6P2 : + errmsg = insert_normal (cd, fields->f_ivc2_6u2, 0, 0, 2, 6, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM6P6 : + errmsg = insert_normal (cd, fields->f_ivc2_6u6, 0, 0, 6, 6, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM8P0 : + errmsg = insert_normal (cd, fields->f_ivc2_8u0, 0, 0, 0, 8, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM8P20 : + errmsg = insert_normal (cd, fields->f_ivc2_8u20, 0, 0, 20, 8, 32, total_length, buffer); + break; + case MEP_OPERAND_IMM8P4 : + errmsg = insert_normal (cd, fields->f_ivc2_8u4, 0, 0, 4, 8, 32, total_length, buffer); + break; + case MEP_OPERAND_IVC_X_0_2 : + errmsg = insert_normal (cd, fields->f_ivc2_2u0, 0, 0, 0, 2, 32, total_length, buffer); + break; + case MEP_OPERAND_IVC_X_0_3 : + errmsg = insert_normal (cd, fields->f_ivc2_3u0, 0, 0, 0, 3, 32, total_length, buffer); + break; + case MEP_OPERAND_IVC_X_0_4 : + errmsg = insert_normal (cd, fields->f_ivc2_4u0, 0, 0, 0, 4, 32, total_length, buffer); + break; + case MEP_OPERAND_IVC_X_0_5 : + errmsg = insert_normal (cd, fields->f_ivc2_5u0, 0, 0, 0, 5, 32, total_length, buffer); + break; + case MEP_OPERAND_IVC_X_6_1 : + errmsg = insert_normal (cd, fields->f_ivc2_1u6, 0, 0, 6, 1, 32, total_length, buffer); + break; + case MEP_OPERAND_IVC_X_6_2 : + errmsg = insert_normal (cd, fields->f_ivc2_2u6, 0, 0, 6, 2, 32, total_length, buffer); + break; + case MEP_OPERAND_IVC_X_6_3 : + errmsg = insert_normal (cd, fields->f_ivc2_3u6, 0, 0, 6, 3, 32, total_length, buffer); + break; + case MEP_OPERAND_IVC2CCRN : + { +{ + FLD (f_ivc2_ccrn_h2) = ((((unsigned int) (FLD (f_ivc2_ccrn)) >> (4))) & (3)); + FLD (f_ivc2_ccrn_lo) = ((FLD (f_ivc2_ccrn)) & (15)); +} + errmsg = insert_normal (cd, fields->f_ivc2_ccrn_h2, 0, 0, 20, 2, 32, total_length, buffer); + if (errmsg) + break; + errmsg = insert_normal (cd, fields->f_ivc2_ccrn_lo, 0, 0, 0, 4, 32, total_length, buffer); + if (errmsg) + break; + } + break; + case MEP_OPERAND_IVC2CRN : + { +{ + FLD (f_ivc2_ccrn_h1) = ((((unsigned int) (FLD (f_ivc2_crnx)) >> (4))) & (1)); + FLD (f_ivc2_ccrn_lo) = ((FLD (f_ivc2_crnx)) & (15)); +} + errmsg = insert_normal (cd, fields->f_ivc2_ccrn_h1, 0, 0, 20, 1, 32, total_length, buffer); + if (errmsg) + break; + errmsg = insert_normal (cd, fields->f_ivc2_ccrn_lo, 0, 0, 0, 4, 32, total_length, buffer); + if (errmsg) + break; + } + break; + case MEP_OPERAND_IVC2RM : + errmsg = insert_normal (cd, fields->f_ivc2_crm, 0, 0, 4, 4, 32, total_length, buffer); + break; case MEP_OPERAND_LO : break; case MEP_OPERAND_LP : @@ -908,12 +1043,32 @@ mep_cgen_insert_operand (CGEN_CPU_DESC cd, case MEP_OPERAND_SIMM16 : errmsg = insert_normal (cd, fields->f_16s16, 0|(1<<CGEN_IFLD_SIGNED), 0, 16, 16, 32, total_length, buffer); break; + case MEP_OPERAND_SIMM16P0 : + { +{ + FLD (f_ivc2_8u0) = ((((unsigned int) (FLD (f_ivc2_simm16p0)) >> (8))) & (255)); + FLD (f_ivc2_8u20) = ((FLD (f_ivc2_simm16p0)) & (255)); +} + errmsg = insert_normal (cd, fields->f_ivc2_8u0, 0, 0, 0, 8, 32, total_length, buffer); + if (errmsg) + break; + errmsg = insert_normal (cd, fields->f_ivc2_8u20, 0, 0, 20, 8, 32, total_length, buffer); + if (errmsg) + break; + } + break; case MEP_OPERAND_SIMM6 : errmsg = insert_normal (cd, fields->f_6s8, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 6, 32, total_length, buffer); break; case MEP_OPERAND_SIMM8 : errmsg = insert_normal (cd, fields->f_8s8, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 8, 32, total_length, buffer); break; + case MEP_OPERAND_SIMM8P0 : + errmsg = insert_normal (cd, fields->f_ivc2_8s0, 0|(1<<CGEN_IFLD_SIGNED), 0, 0, 8, 32, total_length, buffer); + break; + case MEP_OPERAND_SIMM8P4 : + errmsg = insert_normal (cd, fields->f_ivc2_8s4, 0|(1<<CGEN_IFLD_SIGNED), 0, 4, 8, 32, total_length, buffer); + break; case MEP_OPERAND_SP : break; case MEP_OPERAND_SPR : @@ -1158,6 +1313,24 @@ mep_cgen_extract_operand (CGEN_CPU_DESC cd, FLD (f_crnx) = ((((FLD (f_crnx_hi)) << (4))) | (FLD (f_crnx_lo))); } break; + case MEP_OPERAND_CROC : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 7, 5, 32, total_length, pc, & fields->f_ivc2_5u7); + break; + case MEP_OPERAND_CROP : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 23, 5, 32, total_length, pc, & fields->f_ivc2_5u23); + break; + case MEP_OPERAND_CRPC : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 26, 5, 32, total_length, pc, & fields->f_ivc2_5u26); + break; + case MEP_OPERAND_CRPP : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 18, 5, 32, total_length, pc, & fields->f_ivc2_5u18); + break; + case MEP_OPERAND_CRQC : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 21, 5, 32, total_length, pc, & fields->f_ivc2_5u21); + break; + case MEP_OPERAND_CRQP : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 13, 5, 32, total_length, pc, & fields->f_ivc2_5u13); + break; case MEP_OPERAND_CSRN : { length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 1, 32, total_length, pc, & fields->f_csrn_hi); @@ -1186,6 +1359,110 @@ mep_cgen_extract_operand (CGEN_CPU_DESC cd, break; case MEP_OPERAND_HI : break; + case MEP_OPERAND_IMM16P0 : + { + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 8, 32, total_length, pc, & fields->f_ivc2_8u0); + if (length <= 0) break; + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 8, 32, total_length, pc, & fields->f_ivc2_8u20); + if (length <= 0) break; +{ + FLD (f_ivc2_imm16p0) = ((FLD (f_ivc2_8u20)) | (((FLD (f_ivc2_8u0)) << (8)))); +} + } + break; + case MEP_OPERAND_IMM3P12 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 12, 3, 32, total_length, pc, & fields->f_ivc2_3u12); + break; + case MEP_OPERAND_IMM3P25 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 25, 3, 32, total_length, pc, & fields->f_ivc2_3u25); + break; + case MEP_OPERAND_IMM3P4 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 4, 3, 32, total_length, pc, & fields->f_ivc2_3u4); + break; + case MEP_OPERAND_IMM3P5 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 5, 3, 32, total_length, pc, & fields->f_ivc2_3u5); + break; + case MEP_OPERAND_IMM3P9 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 9, 3, 32, total_length, pc, & fields->f_ivc2_3u9); + break; + case MEP_OPERAND_IMM4P10 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 10, 4, 32, total_length, pc, & fields->f_ivc2_4u10); + break; + case MEP_OPERAND_IMM4P4 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 4, 4, 32, total_length, pc, & fields->f_ivc2_4u4); + break; + case MEP_OPERAND_IMM4P8 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 4, 32, total_length, pc, & fields->f_ivc2_4u8); + break; + case MEP_OPERAND_IMM5P23 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 23, 5, 32, total_length, pc, & fields->f_ivc2_5u23); + break; + case MEP_OPERAND_IMM5P3 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 3, 5, 32, total_length, pc, & fields->f_ivc2_5u3); + break; + case MEP_OPERAND_IMM5P7 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 7, 5, 32, total_length, pc, & fields->f_ivc2_5u7); + break; + case MEP_OPERAND_IMM5P8 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 5, 32, total_length, pc, & fields->f_ivc2_5u8); + break; + case MEP_OPERAND_IMM6P2 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 2, 6, 32, total_length, pc, & fields->f_ivc2_6u2); + break; + case MEP_OPERAND_IMM6P6 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 6, 6, 32, total_length, pc, & fields->f_ivc2_6u6); + break; + case MEP_OPERAND_IMM8P0 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 8, 32, total_length, pc, & fields->f_ivc2_8u0); + break; + case MEP_OPERAND_IMM8P20 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 8, 32, total_length, pc, & fields->f_ivc2_8u20); + break; + case MEP_OPERAND_IMM8P4 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 4, 8, 32, total_length, pc, & fields->f_ivc2_8u4); + break; + case MEP_OPERAND_IVC_X_0_2 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 2, 32, total_length, pc, & fields->f_ivc2_2u0); + break; + case MEP_OPERAND_IVC_X_0_3 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 3, 32, total_length, pc, & fields->f_ivc2_3u0); + break; + case MEP_OPERAND_IVC_X_0_4 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 4, 32, total_length, pc, & fields->f_ivc2_4u0); + break; + case MEP_OPERAND_IVC_X_0_5 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 5, 32, total_length, pc, & fields->f_ivc2_5u0); + break; + case MEP_OPERAND_IVC_X_6_1 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 6, 1, 32, total_length, pc, & fields->f_ivc2_1u6); + break; + case MEP_OPERAND_IVC_X_6_2 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 6, 2, 32, total_length, pc, & fields->f_ivc2_2u6); + break; + case MEP_OPERAND_IVC_X_6_3 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 6, 3, 32, total_length, pc, & fields->f_ivc2_3u6); + break; + case MEP_OPERAND_IVC2CCRN : + { + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 2, 32, total_length, pc, & fields->f_ivc2_ccrn_h2); + if (length <= 0) break; + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 4, 32, total_length, pc, & fields->f_ivc2_ccrn_lo); + if (length <= 0) break; + FLD (f_ivc2_ccrn) = ((((FLD (f_ivc2_ccrn_h2)) << (4))) | (FLD (f_ivc2_ccrn_lo))); + } + break; + case MEP_OPERAND_IVC2CRN : + { + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 1, 32, total_length, pc, & fields->f_ivc2_ccrn_h1); + if (length <= 0) break; + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 4, 32, total_length, pc, & fields->f_ivc2_ccrn_lo); + if (length <= 0) break; + FLD (f_ivc2_crnx) = ((((FLD (f_ivc2_ccrn_h1)) << (4))) | (FLD (f_ivc2_ccrn_lo))); + } + break; + case MEP_OPERAND_IVC2RM : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 4, 4, 32, total_length, pc, & fields->f_ivc2_crm); + break; case MEP_OPERAND_LO : break; case MEP_OPERAND_LP : @@ -1312,12 +1589,29 @@ mep_cgen_extract_operand (CGEN_CPU_DESC cd, case MEP_OPERAND_SIMM16 : length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 16, 16, 32, total_length, pc, & fields->f_16s16); break; + case MEP_OPERAND_SIMM16P0 : + { + length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 8, 32, total_length, pc, & fields->f_ivc2_8u0); + if (length <= 0) break; + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 8, 32, total_length, pc, & fields->f_ivc2_8u20); + if (length <= 0) break; +{ + FLD (f_ivc2_simm16p0) = ((FLD (f_ivc2_8u20)) | (((FLD (f_ivc2_8u0)) << (8)))); +} + } + break; case MEP_OPERAND_SIMM6 : length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 6, 32, total_length, pc, & fields->f_6s8); break; case MEP_OPERAND_SIMM8 : length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 8, 32, total_length, pc, & fields->f_8s8); break; + case MEP_OPERAND_SIMM8P0 : + length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 0, 8, 32, total_length, pc, & fields->f_ivc2_8s0); + break; + case MEP_OPERAND_SIMM8P4 : + length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 4, 8, 32, total_length, pc, & fields->f_ivc2_8s4); + break; case MEP_OPERAND_SP : break; case MEP_OPERAND_SPR : @@ -1480,6 +1774,24 @@ mep_cgen_get_int_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_CRNX64 : value = fields->f_crnx; break; + case MEP_OPERAND_CROC : + value = fields->f_ivc2_5u7; + break; + case MEP_OPERAND_CROP : + value = fields->f_ivc2_5u23; + break; + case MEP_OPERAND_CRPC : + value = fields->f_ivc2_5u26; + break; + case MEP_OPERAND_CRPP : + value = fields->f_ivc2_5u18; + break; + case MEP_OPERAND_CRQC : + value = fields->f_ivc2_5u21; + break; + case MEP_OPERAND_CRQP : + value = fields->f_ivc2_5u13; + break; case MEP_OPERAND_CSRN : value = fields->f_csrn; break; @@ -1501,6 +1813,90 @@ mep_cgen_get_int_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_HI : value = 0; break; + case MEP_OPERAND_IMM16P0 : + value = fields->f_ivc2_imm16p0; + break; + case MEP_OPERAND_IMM3P12 : + value = fields->f_ivc2_3u12; + break; + case MEP_OPERAND_IMM3P25 : + value = fields->f_ivc2_3u25; + break; + case MEP_OPERAND_IMM3P4 : + value = fields->f_ivc2_3u4; + break; + case MEP_OPERAND_IMM3P5 : + value = fields->f_ivc2_3u5; + break; + case MEP_OPERAND_IMM3P9 : + value = fields->f_ivc2_3u9; + break; + case MEP_OPERAND_IMM4P10 : + value = fields->f_ivc2_4u10; + break; + case MEP_OPERAND_IMM4P4 : + value = fields->f_ivc2_4u4; + break; + case MEP_OPERAND_IMM4P8 : + value = fields->f_ivc2_4u8; + break; + case MEP_OPERAND_IMM5P23 : + value = fields->f_ivc2_5u23; + break; + case MEP_OPERAND_IMM5P3 : + value = fields->f_ivc2_5u3; + break; + case MEP_OPERAND_IMM5P7 : + value = fields->f_ivc2_5u7; + break; + case MEP_OPERAND_IMM5P8 : + value = fields->f_ivc2_5u8; + break; + case MEP_OPERAND_IMM6P2 : + value = fields->f_ivc2_6u2; + break; + case MEP_OPERAND_IMM6P6 : + value = fields->f_ivc2_6u6; + break; + case MEP_OPERAND_IMM8P0 : + value = fields->f_ivc2_8u0; + break; + case MEP_OPERAND_IMM8P20 : + value = fields->f_ivc2_8u20; + break; + case MEP_OPERAND_IMM8P4 : + value = fields->f_ivc2_8u4; + break; + case MEP_OPERAND_IVC_X_0_2 : + value = fields->f_ivc2_2u0; + break; + case MEP_OPERAND_IVC_X_0_3 : + value = fields->f_ivc2_3u0; + break; + case MEP_OPERAND_IVC_X_0_4 : + value = fields->f_ivc2_4u0; + break; + case MEP_OPERAND_IVC_X_0_5 : + value = fields->f_ivc2_5u0; + break; + case MEP_OPERAND_IVC_X_6_1 : + value = fields->f_ivc2_1u6; + break; + case MEP_OPERAND_IVC_X_6_2 : + value = fields->f_ivc2_2u6; + break; + case MEP_OPERAND_IVC_X_6_3 : + value = fields->f_ivc2_3u6; + break; + case MEP_OPERAND_IVC2CCRN : + value = fields->f_ivc2_ccrn; + break; + case MEP_OPERAND_IVC2CRN : + value = fields->f_ivc2_crnx; + break; + case MEP_OPERAND_IVC2RM : + value = fields->f_ivc2_crm; + break; case MEP_OPERAND_LO : value = 0; break; @@ -1612,12 +2008,21 @@ mep_cgen_get_int_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_SIMM16 : value = fields->f_16s16; break; + case MEP_OPERAND_SIMM16P0 : + value = fields->f_ivc2_simm16p0; + break; case MEP_OPERAND_SIMM6 : value = fields->f_6s8; break; case MEP_OPERAND_SIMM8 : value = fields->f_8s8; break; + case MEP_OPERAND_SIMM8P0 : + value = fields->f_ivc2_8s0; + break; + case MEP_OPERAND_SIMM8P4 : + value = fields->f_ivc2_8s4; + break; case MEP_OPERAND_SP : value = 0; break; @@ -1746,6 +2151,24 @@ mep_cgen_get_vma_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_CRNX64 : value = fields->f_crnx; break; + case MEP_OPERAND_CROC : + value = fields->f_ivc2_5u7; + break; + case MEP_OPERAND_CROP : + value = fields->f_ivc2_5u23; + break; + case MEP_OPERAND_CRPC : + value = fields->f_ivc2_5u26; + break; + case MEP_OPERAND_CRPP : + value = fields->f_ivc2_5u18; + break; + case MEP_OPERAND_CRQC : + value = fields->f_ivc2_5u21; + break; + case MEP_OPERAND_CRQP : + value = fields->f_ivc2_5u13; + break; case MEP_OPERAND_CSRN : value = fields->f_csrn; break; @@ -1767,6 +2190,90 @@ mep_cgen_get_vma_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_HI : value = 0; break; + case MEP_OPERAND_IMM16P0 : + value = fields->f_ivc2_imm16p0; + break; + case MEP_OPERAND_IMM3P12 : + value = fields->f_ivc2_3u12; + break; + case MEP_OPERAND_IMM3P25 : + value = fields->f_ivc2_3u25; + break; + case MEP_OPERAND_IMM3P4 : + value = fields->f_ivc2_3u4; + break; + case MEP_OPERAND_IMM3P5 : + value = fields->f_ivc2_3u5; + break; + case MEP_OPERAND_IMM3P9 : + value = fields->f_ivc2_3u9; + break; + case MEP_OPERAND_IMM4P10 : + value = fields->f_ivc2_4u10; + break; + case MEP_OPERAND_IMM4P4 : + value = fields->f_ivc2_4u4; + break; + case MEP_OPERAND_IMM4P8 : + value = fields->f_ivc2_4u8; + break; + case MEP_OPERAND_IMM5P23 : + value = fields->f_ivc2_5u23; + break; + case MEP_OPERAND_IMM5P3 : + value = fields->f_ivc2_5u3; + break; + case MEP_OPERAND_IMM5P7 : + value = fields->f_ivc2_5u7; + break; + case MEP_OPERAND_IMM5P8 : + value = fields->f_ivc2_5u8; + break; + case MEP_OPERAND_IMM6P2 : + value = fields->f_ivc2_6u2; + break; + case MEP_OPERAND_IMM6P6 : + value = fields->f_ivc2_6u6; + break; + case MEP_OPERAND_IMM8P0 : + value = fields->f_ivc2_8u0; + break; + case MEP_OPERAND_IMM8P20 : + value = fields->f_ivc2_8u20; + break; + case MEP_OPERAND_IMM8P4 : + value = fields->f_ivc2_8u4; + break; + case MEP_OPERAND_IVC_X_0_2 : + value = fields->f_ivc2_2u0; + break; + case MEP_OPERAND_IVC_X_0_3 : + value = fields->f_ivc2_3u0; + break; + case MEP_OPERAND_IVC_X_0_4 : + value = fields->f_ivc2_4u0; + break; + case MEP_OPERAND_IVC_X_0_5 : + value = fields->f_ivc2_5u0; + break; + case MEP_OPERAND_IVC_X_6_1 : + value = fields->f_ivc2_1u6; + break; + case MEP_OPERAND_IVC_X_6_2 : + value = fields->f_ivc2_2u6; + break; + case MEP_OPERAND_IVC_X_6_3 : + value = fields->f_ivc2_3u6; + break; + case MEP_OPERAND_IVC2CCRN : + value = fields->f_ivc2_ccrn; + break; + case MEP_OPERAND_IVC2CRN : + value = fields->f_ivc2_crnx; + break; + case MEP_OPERAND_IVC2RM : + value = fields->f_ivc2_crm; + break; case MEP_OPERAND_LO : value = 0; break; @@ -1878,12 +2385,21 @@ mep_cgen_get_vma_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_SIMM16 : value = fields->f_16s16; break; + case MEP_OPERAND_SIMM16P0 : + value = fields->f_ivc2_simm16p0; + break; case MEP_OPERAND_SIMM6 : value = fields->f_6s8; break; case MEP_OPERAND_SIMM8 : value = fields->f_8s8; break; + case MEP_OPERAND_SIMM8P0 : + value = fields->f_ivc2_8s0; + break; + case MEP_OPERAND_SIMM8P4 : + value = fields->f_ivc2_8s4; + break; case MEP_OPERAND_SP : value = 0; break; @@ -2018,6 +2534,24 @@ mep_cgen_set_int_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_CRNX64 : fields->f_crnx = value; break; + case MEP_OPERAND_CROC : + fields->f_ivc2_5u7 = value; + break; + case MEP_OPERAND_CROP : + fields->f_ivc2_5u23 = value; + break; + case MEP_OPERAND_CRPC : + fields->f_ivc2_5u26 = value; + break; + case MEP_OPERAND_CRPP : + fields->f_ivc2_5u18 = value; + break; + case MEP_OPERAND_CRQC : + fields->f_ivc2_5u21 = value; + break; + case MEP_OPERAND_CRQP : + fields->f_ivc2_5u13 = value; + break; case MEP_OPERAND_CSRN : fields->f_csrn = value; break; @@ -2034,6 +2568,90 @@ mep_cgen_set_int_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, break; case MEP_OPERAND_HI : break; + case MEP_OPERAND_IMM16P0 : + fields->f_ivc2_imm16p0 = value; + break; + case MEP_OPERAND_IMM3P12 : + fields->f_ivc2_3u12 = value; + break; + case MEP_OPERAND_IMM3P25 : + fields->f_ivc2_3u25 = value; + break; + case MEP_OPERAND_IMM3P4 : + fields->f_ivc2_3u4 = value; + break; + case MEP_OPERAND_IMM3P5 : + fields->f_ivc2_3u5 = value; + break; + case MEP_OPERAND_IMM3P9 : + fields->f_ivc2_3u9 = value; + break; + case MEP_OPERAND_IMM4P10 : + fields->f_ivc2_4u10 = value; + break; + case MEP_OPERAND_IMM4P4 : + fields->f_ivc2_4u4 = value; + break; + case MEP_OPERAND_IMM4P8 : + fields->f_ivc2_4u8 = value; + break; + case MEP_OPERAND_IMM5P23 : + fields->f_ivc2_5u23 = value; + break; + case MEP_OPERAND_IMM5P3 : + fields->f_ivc2_5u3 = value; + break; + case MEP_OPERAND_IMM5P7 : + fields->f_ivc2_5u7 = value; + break; + case MEP_OPERAND_IMM5P8 : + fields->f_ivc2_5u8 = value; + break; + case MEP_OPERAND_IMM6P2 : + fields->f_ivc2_6u2 = value; + break; + case MEP_OPERAND_IMM6P6 : + fields->f_ivc2_6u6 = value; + break; + case MEP_OPERAND_IMM8P0 : + fields->f_ivc2_8u0 = value; + break; + case MEP_OPERAND_IMM8P20 : + fields->f_ivc2_8u20 = value; + break; + case MEP_OPERAND_IMM8P4 : + fields->f_ivc2_8u4 = value; + break; + case MEP_OPERAND_IVC_X_0_2 : + fields->f_ivc2_2u0 = value; + break; + case MEP_OPERAND_IVC_X_0_3 : + fields->f_ivc2_3u0 = value; + break; + case MEP_OPERAND_IVC_X_0_4 : + fields->f_ivc2_4u0 = value; + break; + case MEP_OPERAND_IVC_X_0_5 : + fields->f_ivc2_5u0 = value; + break; + case MEP_OPERAND_IVC_X_6_1 : + fields->f_ivc2_1u6 = value; + break; + case MEP_OPERAND_IVC_X_6_2 : + fields->f_ivc2_2u6 = value; + break; + case MEP_OPERAND_IVC_X_6_3 : + fields->f_ivc2_3u6 = value; + break; + case MEP_OPERAND_IVC2CCRN : + fields->f_ivc2_ccrn = value; + break; + case MEP_OPERAND_IVC2CRN : + fields->f_ivc2_crnx = value; + break; + case MEP_OPERAND_IVC2RM : + fields->f_ivc2_crm = value; + break; case MEP_OPERAND_LO : break; case MEP_OPERAND_LP : @@ -2133,12 +2751,21 @@ mep_cgen_set_int_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_SIMM16 : fields->f_16s16 = value; break; + case MEP_OPERAND_SIMM16P0 : + fields->f_ivc2_simm16p0 = value; + break; case MEP_OPERAND_SIMM6 : fields->f_6s8 = value; break; case MEP_OPERAND_SIMM8 : fields->f_8s8 = value; break; + case MEP_OPERAND_SIMM8P0 : + fields->f_ivc2_8s0 = value; + break; + case MEP_OPERAND_SIMM8P4 : + fields->f_ivc2_8s4 = value; + break; case MEP_OPERAND_SP : break; case MEP_OPERAND_SPR : @@ -2258,6 +2885,24 @@ mep_cgen_set_vma_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_CRNX64 : fields->f_crnx = value; break; + case MEP_OPERAND_CROC : + fields->f_ivc2_5u7 = value; + break; + case MEP_OPERAND_CROP : + fields->f_ivc2_5u23 = value; + break; + case MEP_OPERAND_CRPC : + fields->f_ivc2_5u26 = value; + break; + case MEP_OPERAND_CRPP : + fields->f_ivc2_5u18 = value; + break; + case MEP_OPERAND_CRQC : + fields->f_ivc2_5u21 = value; + break; + case MEP_OPERAND_CRQP : + fields->f_ivc2_5u13 = value; + break; case MEP_OPERAND_CSRN : fields->f_csrn = value; break; @@ -2274,6 +2919,90 @@ mep_cgen_set_vma_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, break; case MEP_OPERAND_HI : break; + case MEP_OPERAND_IMM16P0 : + fields->f_ivc2_imm16p0 = value; + break; + case MEP_OPERAND_IMM3P12 : + fields->f_ivc2_3u12 = value; + break; + case MEP_OPERAND_IMM3P25 : + fields->f_ivc2_3u25 = value; + break; + case MEP_OPERAND_IMM3P4 : + fields->f_ivc2_3u4 = value; + break; + case MEP_OPERAND_IMM3P5 : + fields->f_ivc2_3u5 = value; + break; + case MEP_OPERAND_IMM3P9 : + fields->f_ivc2_3u9 = value; + break; + case MEP_OPERAND_IMM4P10 : + fields->f_ivc2_4u10 = value; + break; + case MEP_OPERAND_IMM4P4 : + fields->f_ivc2_4u4 = value; + break; + case MEP_OPERAND_IMM4P8 : + fields->f_ivc2_4u8 = value; + break; + case MEP_OPERAND_IMM5P23 : + fields->f_ivc2_5u23 = value; + break; + case MEP_OPERAND_IMM5P3 : + fields->f_ivc2_5u3 = value; + break; + case MEP_OPERAND_IMM5P7 : + fields->f_ivc2_5u7 = value; + break; + case MEP_OPERAND_IMM5P8 : + fields->f_ivc2_5u8 = value; + break; + case MEP_OPERAND_IMM6P2 : + fields->f_ivc2_6u2 = value; + break; + case MEP_OPERAND_IMM6P6 : + fields->f_ivc2_6u6 = value; + break; + case MEP_OPERAND_IMM8P0 : + fields->f_ivc2_8u0 = value; + break; + case MEP_OPERAND_IMM8P20 : + fields->f_ivc2_8u20 = value; + break; + case MEP_OPERAND_IMM8P4 : + fields->f_ivc2_8u4 = value; + break; + case MEP_OPERAND_IVC_X_0_2 : + fields->f_ivc2_2u0 = value; + break; + case MEP_OPERAND_IVC_X_0_3 : + fields->f_ivc2_3u0 = value; + break; + case MEP_OPERAND_IVC_X_0_4 : + fields->f_ivc2_4u0 = value; + break; + case MEP_OPERAND_IVC_X_0_5 : + fields->f_ivc2_5u0 = value; + break; + case MEP_OPERAND_IVC_X_6_1 : + fields->f_ivc2_1u6 = value; + break; + case MEP_OPERAND_IVC_X_6_2 : + fields->f_ivc2_2u6 = value; + break; + case MEP_OPERAND_IVC_X_6_3 : + fields->f_ivc2_3u6 = value; + break; + case MEP_OPERAND_IVC2CCRN : + fields->f_ivc2_ccrn = value; + break; + case MEP_OPERAND_IVC2CRN : + fields->f_ivc2_crnx = value; + break; + case MEP_OPERAND_IVC2RM : + fields->f_ivc2_crm = value; + break; case MEP_OPERAND_LO : break; case MEP_OPERAND_LP : @@ -2373,12 +3102,21 @@ mep_cgen_set_vma_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case MEP_OPERAND_SIMM16 : fields->f_16s16 = value; break; + case MEP_OPERAND_SIMM16P0 : + fields->f_ivc2_simm16p0 = value; + break; case MEP_OPERAND_SIMM6 : fields->f_6s8 = value; break; case MEP_OPERAND_SIMM8 : fields->f_8s8 = value; break; + case MEP_OPERAND_SIMM8P0 : + fields->f_ivc2_8s0 = value; + break; + case MEP_OPERAND_SIMM8P4 : + fields->f_ivc2_8s4 = value; + break; case MEP_OPERAND_SP : break; case MEP_OPERAND_SPR : |