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.
This commit is contained in:
Dave Brolley 2000-11-07 17:20:25 +00:00
parent d562d2fbf0
commit 1ffd7d025c
2 changed files with 11 additions and 6 deletions

View file

@ -1,3 +1,8 @@
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.
2000-10-20 Jakub Jelinek <jakub@redhat.com>
* sparc-dis.c (v9a_asr_reg_names): Add v9b ASRs.

View file

@ -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;