From 6a1254af0134aaf22d57bbe15b96744391077a06 Mon Sep 17 00:00:00 2001 From: Dave Brolley Date: Tue, 17 Nov 1998 00:23:03 +0000 Subject: [PATCH] Mon Nov 16 19:21:48 1998 Dave Brolley * fr30-opc.c: Regenerated. * fr30-opc.h: Regenerated. * fr30-dis.c: Regenerated. * fr30-asm.c: Regenerated. --- opcodes/ChangeLog | 7 + opcodes/fr30-asm.c | 90 +++++-- opcodes/fr30-dis.c | 85 +++++- opcodes/fr30-opc.c | 629 ++++++++++++++++++++++++++++++++++----------- opcodes/fr30-opc.h | 68 +++-- 5 files changed, 671 insertions(+), 208 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 0bbb9a26823..3a187a71729 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,4 +1,11 @@ start-sanitize-fr30 +Mon Nov 16 19:21:48 1998 Dave Brolley + + * fr30-opc.c: Regenerated. + * fr30-opc.h: Regenerated. + * fr30-dis.c: Regenerated. + * fr30-asm.c: Regenerated. + Thu Nov 12 19:24:18 1998 Dave Brolley * po/opcodes.pot: Regenerated. diff --git a/opcodes/fr30-asm.c b/opcodes/fr30-asm.c index 22f452cf043..75e20fb0d6a 100644 --- a/opcodes/fr30-asm.c +++ b/opcodes/fr30-asm.c @@ -91,20 +91,41 @@ fr30_cgen_parse_operand (od, opindex, strp, fields) case FR30_OPERAND_RS2 : errmsg = cgen_parse_keyword (od, strp, & fr30_cgen_opval_h_dr, & fields->f_Rs2); break; + case FR30_OPERAND_R13 : + errmsg = cgen_parse_keyword (od, strp, & fr30_cgen_opval_h_r13, & fields->f_nil); + break; + case FR30_OPERAND_R14 : + errmsg = cgen_parse_keyword (od, strp, & fr30_cgen_opval_h_r14, & fields->f_nil); + break; + case FR30_OPERAND_R15 : + errmsg = cgen_parse_keyword (od, strp, & fr30_cgen_opval_h_r15, & fields->f_nil); + break; + case FR30_OPERAND_PS : + errmsg = cgen_parse_keyword (od, strp, & fr30_cgen_opval_h_ps, & fields->f_nil); + break; case FR30_OPERAND_U4 : errmsg = cgen_parse_unsigned_integer (od, strp, FR30_OPERAND_U4, &fields->f_u4); break; case FR30_OPERAND_M4 : errmsg = cgen_parse_unsigned_integer (od, strp, FR30_OPERAND_M4, &fields->f_m4); break; + case FR30_OPERAND_U8 : + errmsg = cgen_parse_unsigned_integer (od, strp, FR30_OPERAND_U8, &fields->f_u8); + break; case FR30_OPERAND_I8 : errmsg = cgen_parse_unsigned_integer (od, strp, FR30_OPERAND_I8, &fields->f_i8); break; - case FR30_OPERAND_U8 : - errmsg = cgen_parse_unsigned_integer (od, strp, FR30_OPERAND_U8, &fields->f_u8); + case FR30_OPERAND_UDISP6 : + errmsg = cgen_parse_unsigned_integer (od, strp, FR30_OPERAND_UDISP6, &fields->f_udisp6); + break; + case FR30_OPERAND_DISP8 : + errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_DISP8, &fields->f_disp8); break; - case FR30_OPERAND_O8 : - errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_O8, &fields->f_o8); + case FR30_OPERAND_DISP9 : + errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_DISP9, &fields->f_disp9); + break; + case FR30_OPERAND_DISP10 : + errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_DISP10, &fields->f_disp10); break; case FR30_OPERAND_S10 : errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_S10, &fields->f_s10); @@ -122,10 +143,10 @@ fr30_cgen_parse_operand (od, opindex, strp, fields) errmsg = cgen_parse_unsigned_integer (od, strp, FR30_OPERAND_DIR10, &fields->f_dir10); break; case FR30_OPERAND_LABEL9 : - errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_LABEL9, &fields->f_rel8); + errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_LABEL9, &fields->f_rel9); break; case FR30_OPERAND_LABEL12 : - errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_LABEL12, &fields->f_rel11); + errmsg = cgen_parse_signed_integer (od, strp, FR30_OPERAND_LABEL12, &fields->f_rel12); break; case FR30_OPERAND_CC : errmsg = cgen_parse_unsigned_integer (od, strp, FR30_OPERAND_CC, &fields->f_cc); @@ -179,6 +200,18 @@ fr30_cgen_insert_operand (od, opindex, fields, buffer, pc) case FR30_OPERAND_RS2 : errmsg = insert_normal (od, fields->f_Rs2, 0|(1<f_nil, 0, 0, 0, CGEN_FIELDS_BITSIZE (fields), buffer); + break; + case FR30_OPERAND_R14 : + errmsg = insert_normal (od, fields->f_nil, 0, 0, 0, CGEN_FIELDS_BITSIZE (fields), buffer); + break; + case FR30_OPERAND_R15 : + errmsg = insert_normal (od, fields->f_nil, 0, 0, 0, CGEN_FIELDS_BITSIZE (fields), buffer); + break; + case FR30_OPERAND_PS : + errmsg = insert_normal (od, fields->f_nil, 0, 0, 0, CGEN_FIELDS_BITSIZE (fields), buffer); + break; case FR30_OPERAND_U4 : errmsg = insert_normal (od, fields->f_u4, 0|(1<f_u8, 0|(1<f_i8, 0|(1<f_u8, 0|(1<f_udisp6; + value = ((unsigned int) (value) >> (2)); + errmsg = insert_normal (od, value, 0|(1<f_disp8, 0|(1<f_o8, 0|(1<f_disp9; + value = ((int) (value) >> (1)); + errmsg = insert_normal (od, value, 0|(1<f_disp10; + value = ((int) (value) >> (2)); + errmsg = insert_normal (od, value, 0|(1<f_s10; - value = ((((unsigned int) (value) >> (2))) & (255)); + value = ((int) (value) >> (2)); errmsg = insert_normal (od, value, 0|(1<f_u10; - value = ((((unsigned int) (value) >> (2))) & (255)); + value = ((unsigned int) (value) >> (2)); errmsg = insert_normal (od, value, 0|(1<f_dir9; - value = ((((unsigned int) (value) >> (1))) & (255)); + value = ((unsigned int) (value) >> (1)); errmsg = insert_normal (od, value, 0|(1<f_dir10; - value = ((((unsigned int) (value) >> (2))) & (255)); + value = ((unsigned int) (value) >> (2)); errmsg = insert_normal (od, value, 0|(1<f_rel8; - value = ((((unsigned int) (value) >> (1))) & (255)); + long value = fields->f_rel9; + value = ((int) (((value) - (((pc) & (-2))))) >> (1)); errmsg = insert_normal (od, value, 0|(1<f_rel11; - value = ((((unsigned int) (value) >> (1))) & (2047)); + long value = fields->f_rel12; + value = ((int) (((value) - (((pc) & (-2))))) >> (1)); errmsg = insert_normal (od, value, 0|(1<f_Rs2); break; + case FR30_OPERAND_R13 : + length = extract_normal (od, ex_info, insn_value, 0, 0, 0, CGEN_FIELDS_BITSIZE (fields), & fields->f_nil); + break; + case FR30_OPERAND_R14 : + length = extract_normal (od, ex_info, insn_value, 0, 0, 0, CGEN_FIELDS_BITSIZE (fields), & fields->f_nil); + break; + case FR30_OPERAND_R15 : + length = extract_normal (od, ex_info, insn_value, 0, 0, 0, CGEN_FIELDS_BITSIZE (fields), & fields->f_nil); + break; + case FR30_OPERAND_PS : + length = extract_normal (od, ex_info, insn_value, 0, 0, 0, CGEN_FIELDS_BITSIZE (fields), & fields->f_nil); + break; case FR30_OPERAND_U4 : length = extract_normal (od, ex_info, insn_value, 0|(1<f_u4); break; @@ -112,14 +124,38 @@ fr30_cgen_extract_operand (od, opindex, ex_info, insn_value, fields, pc) fields->f_m4 = value; } break; + case FR30_OPERAND_U8 : + length = extract_normal (od, ex_info, insn_value, 0|(1<f_u8); + break; case FR30_OPERAND_I8 : length = extract_normal (od, ex_info, insn_value, 0|(1<f_i8); break; - case FR30_OPERAND_U8 : - length = extract_normal (od, ex_info, insn_value, 0|(1<f_u8); + case FR30_OPERAND_UDISP6 : + { + long value; + length = extract_normal (od, ex_info, insn_value, 0|(1<f_udisp6 = value; + } + break; + case FR30_OPERAND_DISP8 : + length = extract_normal (od, ex_info, insn_value, 0|(1<f_disp8); break; - case FR30_OPERAND_O8 : - length = extract_normal (od, ex_info, insn_value, 0|(1<f_o8); + case FR30_OPERAND_DISP9 : + { + long value; + length = extract_normal (od, ex_info, insn_value, 0|(1<f_disp9 = value; + } + break; + case FR30_OPERAND_DISP10 : + { + long value; + length = extract_normal (od, ex_info, insn_value, 0|(1<f_disp10 = value; + } break; case FR30_OPERAND_S10 : { @@ -160,16 +196,16 @@ fr30_cgen_extract_operand (od, opindex, ex_info, insn_value, fields, pc) { long value; length = extract_normal (od, ex_info, insn_value, 0|(1<f_rel8 = value; + value = ((((value) << (1))) + (((pc) & (-2)))); + fields->f_rel9 = value; } break; case FR30_OPERAND_LABEL12 : { long value; length = extract_normal (od, ex_info, insn_value, 0|(1<f_rel11 = value; + value = ((((value) << (1))) + (((pc) & (-2)))); + fields->f_rel12 = value; } break; case FR30_OPERAND_CC : @@ -224,20 +260,41 @@ fr30_cgen_print_operand (od, opindex, info, fields, attrs, pc, length) case FR30_OPERAND_RS2 : print_keyword (od, info, & fr30_cgen_opval_h_dr, fields->f_Rs2, 0|(1<f_nil, 0); + break; + case FR30_OPERAND_R14 : + print_keyword (od, info, & fr30_cgen_opval_h_r14, fields->f_nil, 0); + break; + case FR30_OPERAND_R15 : + print_keyword (od, info, & fr30_cgen_opval_h_r15, fields->f_nil, 0); + break; + case FR30_OPERAND_PS : + print_keyword (od, info, & fr30_cgen_opval_h_ps, fields->f_nil, 0); + break; case FR30_OPERAND_U4 : print_normal (od, info, fields->f_u4, 0|(1<f_m4, 0|(1<f_u8, 0|(1<f_i8, 0|(1<f_u8, 0|(1<f_udisp6, 0|(1<f_disp8, 0|(1<f_disp9, 0|(1<f_o8, 0|(1<f_disp10, 0|(1<f_s10, 0|(1<f_dir10, 0|(1<f_rel8, 0|(1<f_rel9, 0|(1<f_rel11, 0|(1<f_rel12, 0|(1<f_cc, 0|(1<f_Rs2; break; + case FR30_OPERAND_R13 : + value = fields->f_nil; + break; + case FR30_OPERAND_R14 : + value = fields->f_nil; + break; + case FR30_OPERAND_R15 : + value = fields->f_nil; + break; + case FR30_OPERAND_PS : + value = fields->f_nil; + break; case FR30_OPERAND_U4 : value = fields->f_u4; break; case FR30_OPERAND_M4 : value = fields->f_m4; break; + case FR30_OPERAND_U8 : + value = fields->f_u8; + break; case FR30_OPERAND_I8 : value = fields->f_i8; break; - case FR30_OPERAND_U8 : - value = fields->f_u8; + case FR30_OPERAND_UDISP6 : + value = fields->f_udisp6; break; - case FR30_OPERAND_O8 : - value = fields->f_o8; + case FR30_OPERAND_DISP8 : + value = fields->f_disp8; + break; + case FR30_OPERAND_DISP9 : + value = fields->f_disp9; + break; + case FR30_OPERAND_DISP10 : + value = fields->f_disp10; break; case FR30_OPERAND_S10 : value = fields->f_s10; @@ -2037,10 +2291,10 @@ fr30_cgen_get_int_operand (opindex, fields) value = fields->f_dir10; break; case FR30_OPERAND_LABEL9 : - value = fields->f_rel8; + value = fields->f_rel9; break; case FR30_OPERAND_LABEL12 : - value = fields->f_rel11; + value = fields->f_rel12; break; case FR30_OPERAND_CC : value = fields->f_cc; @@ -2077,20 +2331,41 @@ fr30_cgen_get_vma_operand (opindex, fields) case FR30_OPERAND_RS2 : value = fields->f_Rs2; break; + case FR30_OPERAND_R13 : + value = fields->f_nil; + break; + case FR30_OPERAND_R14 : + value = fields->f_nil; + break; + case FR30_OPERAND_R15 : + value = fields->f_nil; + break; + case FR30_OPERAND_PS : + value = fields->f_nil; + break; case FR30_OPERAND_U4 : value = fields->f_u4; break; case FR30_OPERAND_M4 : value = fields->f_m4; break; + case FR30_OPERAND_U8 : + value = fields->f_u8; + break; case FR30_OPERAND_I8 : value = fields->f_i8; break; - case FR30_OPERAND_U8 : - value = fields->f_u8; + case FR30_OPERAND_UDISP6 : + value = fields->f_udisp6; break; - case FR30_OPERAND_O8 : - value = fields->f_o8; + case FR30_OPERAND_DISP8 : + value = fields->f_disp8; + break; + case FR30_OPERAND_DISP9 : + value = fields->f_disp9; + break; + case FR30_OPERAND_DISP10 : + value = fields->f_disp10; break; case FR30_OPERAND_S10 : value = fields->f_s10; @@ -2108,10 +2383,10 @@ fr30_cgen_get_vma_operand (opindex, fields) value = fields->f_dir10; break; case FR30_OPERAND_LABEL9 : - value = fields->f_rel8; + value = fields->f_rel9; break; case FR30_OPERAND_LABEL12 : - value = fields->f_rel11; + value = fields->f_rel12; break; case FR30_OPERAND_CC : value = fields->f_cc; @@ -2152,20 +2427,41 @@ fr30_cgen_set_int_operand (opindex, fields, value) case FR30_OPERAND_RS2 : fields->f_Rs2 = value; break; + case FR30_OPERAND_R13 : + fields->f_nil = value; + break; + case FR30_OPERAND_R14 : + fields->f_nil = value; + break; + case FR30_OPERAND_R15 : + fields->f_nil = value; + break; + case FR30_OPERAND_PS : + fields->f_nil = value; + break; case FR30_OPERAND_U4 : fields->f_u4 = value; break; case FR30_OPERAND_M4 : fields->f_m4 = value; break; + case FR30_OPERAND_U8 : + fields->f_u8 = value; + break; case FR30_OPERAND_I8 : fields->f_i8 = value; break; - case FR30_OPERAND_U8 : - fields->f_u8 = value; + case FR30_OPERAND_UDISP6 : + fields->f_udisp6 = value; + break; + case FR30_OPERAND_DISP8 : + fields->f_disp8 = value; break; - case FR30_OPERAND_O8 : - fields->f_o8 = value; + case FR30_OPERAND_DISP9 : + fields->f_disp9 = value; + break; + case FR30_OPERAND_DISP10 : + fields->f_disp10 = value; break; case FR30_OPERAND_S10 : fields->f_s10 = value; @@ -2183,10 +2479,10 @@ fr30_cgen_set_int_operand (opindex, fields, value) fields->f_dir10 = value; break; case FR30_OPERAND_LABEL9 : - fields->f_rel8 = value; + fields->f_rel9 = value; break; case FR30_OPERAND_LABEL12 : - fields->f_rel11 = value; + fields->f_rel12 = value; break; case FR30_OPERAND_CC : fields->f_cc = value; @@ -2220,20 +2516,41 @@ fr30_cgen_set_vma_operand (opindex, fields, value) case FR30_OPERAND_RS2 : fields->f_Rs2 = value; break; + case FR30_OPERAND_R13 : + fields->f_nil = value; + break; + case FR30_OPERAND_R14 : + fields->f_nil = value; + break; + case FR30_OPERAND_R15 : + fields->f_nil = value; + break; + case FR30_OPERAND_PS : + fields->f_nil = value; + break; case FR30_OPERAND_U4 : fields->f_u4 = value; break; case FR30_OPERAND_M4 : fields->f_m4 = value; break; + case FR30_OPERAND_U8 : + fields->f_u8 = value; + break; case FR30_OPERAND_I8 : fields->f_i8 = value; break; - case FR30_OPERAND_U8 : - fields->f_u8 = value; + case FR30_OPERAND_UDISP6 : + fields->f_udisp6 = value; + break; + case FR30_OPERAND_DISP8 : + fields->f_disp8 = value; + break; + case FR30_OPERAND_DISP9 : + fields->f_disp9 = value; break; - case FR30_OPERAND_O8 : - fields->f_o8 = value; + case FR30_OPERAND_DISP10 : + fields->f_disp10 = value; break; case FR30_OPERAND_S10 : fields->f_s10 = value; @@ -2251,10 +2568,10 @@ fr30_cgen_set_vma_operand (opindex, fields, value) fields->f_dir10 = value; break; case FR30_OPERAND_LABEL9 : - fields->f_rel8 = value; + fields->f_rel9 = value; break; case FR30_OPERAND_LABEL12 : - fields->f_rel11 = value; + fields->f_rel12 = value; break; case FR30_OPERAND_CC : fields->f_cc = value; diff --git a/opcodes/fr30-opc.h b/opcodes/fr30-opc.h index 2a8259aae18..d272b2cba18 100644 --- a/opcodes/fr30-opc.h +++ b/opcodes/fr30-opc.h @@ -113,19 +113,36 @@ typedef enum h_dr { , H_DR_MDH, H_DR_MDL } H_DR; -/* Enum declaration for control registers. */ -typedef enum h_cr { - H_CR_PC, H_CR_PS -} H_CR; +/* Enum declaration for program status. */ +typedef enum h_ps { + H_PS_PS = 1 +} H_PS; + +/* Enum declaration for General Register 13 explicitely required. */ +typedef enum h_r13 { + H_R13_R13 = 13 +} H_R13; + +/* Enum declaration for General Register 14 explicitely required. */ +typedef enum h_r14 { + H_R14_R14 = 14 +} H_R14; + +/* Enum declaration for General Register 15 explicitely required. */ +typedef enum h_r15 { + H_R15_R15 = 15 +} H_R15; /* Enum declaration for fr30 operand types. */ typedef enum cgen_operand_type { FR30_OPERAND_PC, FR30_OPERAND_RI, FR30_OPERAND_RJ, FR30_OPERAND_RS1 - , FR30_OPERAND_RS2, FR30_OPERAND_PS, FR30_OPERAND_U4, FR30_OPERAND_M4 - , FR30_OPERAND_I8, FR30_OPERAND_U8, FR30_OPERAND_O8, FR30_OPERAND_S10 - , FR30_OPERAND_U10, FR30_OPERAND_DIR8, FR30_OPERAND_DIR9, FR30_OPERAND_DIR10 - , FR30_OPERAND_LABEL9, FR30_OPERAND_LABEL12, FR30_OPERAND_CC, FR30_OPERAND_NBIT - , FR30_OPERAND_VBIT, FR30_OPERAND_ZBIT, FR30_OPERAND_CBIT, FR30_OPERAND_MAX + , FR30_OPERAND_RS2, FR30_OPERAND_R13, FR30_OPERAND_R14, FR30_OPERAND_R15 + , FR30_OPERAND_PS, FR30_OPERAND_U4, FR30_OPERAND_M4, FR30_OPERAND_U8 + , FR30_OPERAND_I8, FR30_OPERAND_UDISP6, FR30_OPERAND_DISP8, FR30_OPERAND_DISP9 + , FR30_OPERAND_DISP10, FR30_OPERAND_S10, FR30_OPERAND_U10, FR30_OPERAND_DIR8 + , FR30_OPERAND_DIR9, FR30_OPERAND_DIR10, FR30_OPERAND_LABEL9, FR30_OPERAND_LABEL12 + , FR30_OPERAND_CC, FR30_OPERAND_NBIT, FR30_OPERAND_VBIT, FR30_OPERAND_ZBIT + , FR30_OPERAND_CBIT, FR30_OPERAND_MAX } CGEN_OPERAND_TYPE; /* Non-boolean attributes. */ @@ -196,16 +213,21 @@ typedef enum cgen_insn_type { , FR30_INSN_STR13B, FR30_INSN_STR14, FR30_INSN_STR14H, FR30_INSN_STR14B , FR30_INSN_STR15, FR30_INSN_STR15GR, FR30_INSN_STR15DR, FR30_INSN_STR15PS , FR30_INSN_MOV, FR30_INSN_MOVDR, FR30_INSN_MOVPS, FR30_INSN_MOV2DR - , FR30_INSN_MOV2PS, FR30_INSN_JMP, FR30_INSN_CALL, FR30_INSN_CALLR - , FR30_INSN_RET, FR30_INSN_INT, FR30_INSN_INTE, FR30_INSN_RETI + , FR30_INSN_MOV2PS, FR30_INSN_JMP, FR30_INSN_JMPD, FR30_INSN_CALL + , FR30_INSN_CALLD, FR30_INSN_CALLR, FR30_INSN_CALLRD, FR30_INSN_RET + , FR30_INSN_RETD, FR30_INSN_INT, FR30_INSN_INTE, FR30_INSN_RETI , FR30_INSN_BRA, FR30_INSN_BNO, FR30_INSN_BEQ, FR30_INSN_BNE , FR30_INSN_BC, FR30_INSN_BNC, FR30_INSN_BN, FR30_INSN_BP , FR30_INSN_BV, FR30_INSN_BNV, FR30_INSN_BLT, FR30_INSN_BGE , FR30_INSN_BLE, FR30_INSN_BGT, FR30_INSN_BLS, FR30_INSN_BHI + , FR30_INSN_BRAD, FR30_INSN_BNOD, FR30_INSN_BEQD, FR30_INSN_BNED + , FR30_INSN_BCD, FR30_INSN_BNCD, FR30_INSN_BND, FR30_INSN_BPD + , FR30_INSN_BVD, FR30_INSN_BNVD, FR30_INSN_BLTD, FR30_INSN_BGED + , FR30_INSN_BLED, FR30_INSN_BGTD, FR30_INSN_BLSD, FR30_INSN_BHID , FR30_INSN_DMOV2R13, FR30_INSN_DMOV2R13H, FR30_INSN_DMOV2R13B, FR30_INSN_DMOVR13 , FR30_INSN_DMOVR13H, FR30_INSN_DMOVR13B, FR30_INSN_DMOV2R13PI, FR30_INSN_DMOV2R13PIH - , FR30_INSN_DMOV2R13PIB, FR30_INSN_DMOV13PI, FR30_INSN_DMOV13PIH, FR30_INSN_DMOV13PIB - , FR30_INSN_DMOV2R15PD, FR30_INSN_DMOV15PI, FR30_INSN_LDRES, FR30_INSN_STRES + , FR30_INSN_DMOV2R13PIB, FR30_INSN_DMOVR13PI, FR30_INSN_DMOVR13PIH, FR30_INSN_DMOVR13PIB + , FR30_INSN_DMOV2R15PD, FR30_INSN_DMOVR15PI, FR30_INSN_LDRES, FR30_INSN_STRES , FR30_INSN_NOP, FR30_INSN_ANDCCR, FR30_INSN_ORCCR, FR30_INSN_STILM , FR30_INSN_ADDSP, FR30_INSN_EXTSB, FR30_INSN_EXTUB, FR30_INSN_EXTSH , FR30_INSN_EXTUH, FR30_INSN_ENTER, FR30_INSN_LEAVE, FR30_INSN_XCHB @@ -239,15 +261,17 @@ struct cgen_fields long f_m4; long f_u8; long f_i8; - long f_o8; + long f_udisp6; + long f_disp8; + long f_disp9; + long f_disp10; long f_s10; long f_u10; - long f_rel8; + long f_rel9; long f_dir8; long f_dir9; long f_dir10; - long f_rlist; - long f_rel11; + long f_rel12; int length; }; @@ -260,8 +284,9 @@ extern const CGEN_ATTR_TABLE fr30_cgen_insn_attr_table[]; typedef enum hw_type { HW_H_PC, HW_H_MEMORY, HW_H_SINT, HW_H_UINT , HW_H_ADDR, HW_H_IADDR, HW_H_GR, HW_H_DR - , HW_H_CR, HW_H_NBIT, HW_H_ZBIT, HW_H_VBIT - , HW_H_CBIT, HW_MAX + , HW_H_PS, HW_H_R13, HW_H_R14, HW_H_R15 + , HW_H_NBIT, HW_H_ZBIT, HW_H_VBIT, HW_H_CBIT + , HW_MAX } HW_TYPE; #define MAX_HW ((int) HW_MAX) @@ -270,7 +295,10 @@ typedef enum hw_type { extern CGEN_KEYWORD fr30_cgen_opval_h_gr; extern CGEN_KEYWORD fr30_cgen_opval_h_dr; -extern CGEN_KEYWORD fr30_cgen_opval_h_cr; +extern CGEN_KEYWORD fr30_cgen_opval_h_ps; +extern CGEN_KEYWORD fr30_cgen_opval_h_r13; +extern CGEN_KEYWORD fr30_cgen_opval_h_r14; +extern CGEN_KEYWORD fr30_cgen_opval_h_r15; #define CGEN_INIT_PARSE(od) \ {\ -- 2.30.2