diff options
author | Doug Evans <dje@google.com> | 1999-08-29 21:16:25 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 1999-08-29 21:16:25 +0000 |
commit | eb1b03df1a293f7aebb67e1deeba4b0bb21c3f9a (patch) | |
tree | 9f7297c1dd108f4cb2ab54eb6c4619940b01529a /opcodes/fr30-ibld.c | |
parent | 1174497c8ae1bf9293addcb216c48dbdbf487e4f (diff) | |
download | binutils-eb1b03df1a293f7aebb67e1deeba4b0bb21c3f9a.zip binutils-eb1b03df1a293f7aebb67e1deeba4b0bb21c3f9a.tar.gz binutils-eb1b03df1a293f7aebb67e1deeba4b0bb21c3f9a.tar.bz2 |
* fr30-asm.c,fr30-desc.h,fr30-dis.c,fr30-ibld.c,fr30-opc.c: Rebuild.
* m32r-asm.c,m32r-desc.h,m32r-dis.c,m32r-ibld.c,m32r-opc.c: Rebuild.
* m32r-opinst.c: Rebuild.
Diffstat (limited to 'opcodes/fr30-ibld.c')
-rw-r--r-- | opcodes/fr30-ibld.c | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/opcodes/fr30-ibld.c b/opcodes/fr30-ibld.c index 386613d..2aa4458 100644 --- a/opcodes/fr30-ibld.c +++ b/opcodes/fr30-ibld.c @@ -579,7 +579,7 @@ fr30_cgen_insert_operand (cd, opindex, fields, buffer, pc) CGEN_INSN_BYTES_PTR buffer; bfd_vma pc; { - const char * errmsg; + const char * errmsg = NULL; unsigned int total_length = CGEN_FIELDS_BITSIZE (fields); switch (opindex) @@ -591,13 +591,10 @@ fr30_cgen_insert_operand (cd, opindex, fields, buffer, pc) errmsg = insert_normal (cd, fields->f_CRj, 0, 16, 8, 4, 16, total_length, buffer); break; case FR30_OPERAND_R13 : - errmsg = insert_normal (cd, fields->f_nil, 0, 0, 0, 0, 0, total_length, buffer); break; case FR30_OPERAND_R14 : - errmsg = insert_normal (cd, fields->f_nil, 0, 0, 0, 0, 0, total_length, buffer); break; case FR30_OPERAND_R15 : - errmsg = insert_normal (cd, fields->f_nil, 0, 0, 0, 0, 0, total_length, buffer); break; case FR30_OPERAND_RI : errmsg = insert_normal (cd, fields->f_Ri, 0, 0, 12, 4, 16, total_length, buffer); @@ -699,7 +696,6 @@ fr30_cgen_insert_operand (cd, opindex, fields, buffer, pc) } break; case FR30_OPERAND_PS : - errmsg = insert_normal (cd, fields->f_nil, 0, 0, 0, 0, 0, total_length, buffer); break; case FR30_OPERAND_REGLIST_HI_LD : errmsg = insert_normal (cd, fields->f_reglist_hi_ld, 0, 0, 8, 8, 16, total_length, buffer); @@ -755,6 +751,8 @@ fr30_cgen_insert_operand (cd, opindex, fields, buffer, pc) } /* Main entry point for operand extraction. + The result is <= 0 for error, >0 for success. + ??? Actual values aren't well defined right now. This function is basically just a big switch statement. Earlier versions used tables to look up the function to use, but @@ -777,7 +775,8 @@ fr30_cgen_extract_operand (cd, opindex, ex_info, insn_value, fields, pc) CGEN_FIELDS * fields; bfd_vma pc; { - int length; + /* Assume success (for those operands that are nops). */ + int length = 1; unsigned int total_length = CGEN_FIELDS_BITSIZE (fields); switch (opindex) @@ -789,13 +788,10 @@ fr30_cgen_extract_operand (cd, opindex, ex_info, insn_value, fields, pc) length = extract_normal (cd, ex_info, insn_value, 0, 16, 8, 4, 16, total_length, pc, & fields->f_CRj); break; case FR30_OPERAND_R13 : - length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 0, 0, total_length, pc, & fields->f_nil); break; case FR30_OPERAND_R14 : - length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 0, 0, total_length, pc, & fields->f_nil); break; case FR30_OPERAND_R15 : - length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 0, 0, total_length, pc, & fields->f_nil); break; case FR30_OPERAND_RI : length = extract_normal (cd, ex_info, insn_value, 0, 0, 12, 4, 16, total_length, pc, & fields->f_Ri); @@ -899,7 +895,6 @@ fr30_cgen_extract_operand (cd, opindex, ex_info, insn_value, fields, pc) } break; case FR30_OPERAND_PS : - length = extract_normal (cd, ex_info, insn_value, 0, 0, 0, 0, 0, total_length, pc, & fields->f_nil); break; case FR30_OPERAND_REGLIST_HI_LD : length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 8, 16, total_length, pc, & fields->f_reglist_hi_ld); @@ -989,13 +984,13 @@ fr30_cgen_get_int_operand (cd, opindex, fields) value = fields->f_CRj; break; case FR30_OPERAND_R13 : - value = fields->f_nil; + value = 0; break; case FR30_OPERAND_R14 : - value = fields->f_nil; + value = 0; break; case FR30_OPERAND_R15 : - value = fields->f_nil; + value = 0; break; case FR30_OPERAND_RI : value = fields->f_Ri; @@ -1058,7 +1053,7 @@ fr30_cgen_get_int_operand (cd, opindex, fields) value = fields->f_m4; break; case FR30_OPERAND_PS : - value = fields->f_nil; + value = 0; break; case FR30_OPERAND_REGLIST_HI_LD : value = fields->f_reglist_hi_ld; @@ -1118,13 +1113,13 @@ fr30_cgen_get_vma_operand (cd, opindex, fields) value = fields->f_CRj; break; case FR30_OPERAND_R13 : - value = fields->f_nil; + value = 0; break; case FR30_OPERAND_R14 : - value = fields->f_nil; + value = 0; break; case FR30_OPERAND_R15 : - value = fields->f_nil; + value = 0; break; case FR30_OPERAND_RI : value = fields->f_Ri; @@ -1187,7 +1182,7 @@ fr30_cgen_get_vma_operand (cd, opindex, fields) value = fields->f_m4; break; case FR30_OPERAND_PS : - value = fields->f_nil; + value = 0; break; case FR30_OPERAND_REGLIST_HI_LD : value = fields->f_reglist_hi_ld; @@ -1251,13 +1246,10 @@ fr30_cgen_set_int_operand (cd, opindex, fields, value) fields->f_CRj = 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_RI : fields->f_Ri = value; @@ -1320,7 +1312,6 @@ fr30_cgen_set_int_operand (cd, opindex, fields, value) fields->f_m4 = value; break; case FR30_OPERAND_PS : - fields->f_nil = value; break; case FR30_OPERAND_REGLIST_HI_LD : fields->f_reglist_hi_ld = value; @@ -1377,13 +1368,10 @@ fr30_cgen_set_vma_operand (cd, opindex, fields, value) fields->f_CRj = 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_RI : fields->f_Ri = value; @@ -1446,7 +1434,6 @@ fr30_cgen_set_vma_operand (cd, opindex, fields, value) fields->f_m4 = value; break; case FR30_OPERAND_PS : - fields->f_nil = value; break; case FR30_OPERAND_REGLIST_HI_LD : fields->f_reglist_hi_ld = value; |