diff options
author | Dave Brolley <brolley@redhat.com> | 2000-11-07 17:20:25 +0000 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2000-11-07 17:20:25 +0000 |
commit | 1ffd7d025c9048989604e67b9296485bf564b634 (patch) | |
tree | f3c7cf6999d4e81928b6f643656413f952c0221f /opcodes/cgen-dis.in | |
parent | d562d2fbf0e05c10019ac0f8bd76677a9284a76a (diff) | |
download | gdb-1ffd7d025c9048989604e67b9296485bf564b634.zip gdb-1ffd7d025c9048989604e67b9296485bf564b634.tar.gz gdb-1ffd7d025c9048989604e67b9296485bf564b634.tar.bz2 |
2000-11-07 Dave Brolley <brolley@redhat.com>
* cgen-dis.in (print_insn): All insns which can fit into insn_value
must be loaded there in their entirety.
Diffstat (limited to 'opcodes/cgen-dis.in')
-rw-r--r-- | opcodes/cgen-dis.in | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/opcodes/cgen-dis.in b/opcodes/cgen-dis.in index 9fee32a..22cef1f 100644 --- a/opcodes/cgen-dis.in +++ b/opcodes/cgen-dis.in @@ -281,9 +281,10 @@ print_insn (cd, pc, info, buf, buflen) machine insn and extracts the fields. The second pass prints them. */ -#if CGEN_INT_INSN_P - /* Make sure the entire insn is loaded into insn_value. */ - if (CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize) + /* Make sure the entire insn is loaded into insn_value, if it + can fit. */ + if (CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize && + (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long)) { unsigned long full_insn_value; int rc = read_insn (cd, pc, info, buf, @@ -295,10 +296,9 @@ print_insn (cd, pc, info, buf, buflen) (cd, insn, &ex_info, full_insn_value, &fields, pc); } else -#endif + length = CGEN_EXTRACT_FN (cd, insn) + (cd, insn, &ex_info, insn_value, &fields, pc); - length = CGEN_EXTRACT_FN (cd, insn) - (cd, insn, &ex_info, insn_value, &fields, pc); /* length < 0 -> error */ if (length < 0) return length; |