opcodes: blackfin: avoid duplicate memory reads

Rather than reading the same memory twice, pass the value back up.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2011-02-05 16:47:02 -05:00
parent 513ea82edf
commit a4e600b22e
2 changed files with 10 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2014-08-14 Mike Frysinger <vapier@gentoo.org>
* bfin-dis.c (struct private): Add iw0.
(_print_insn_bfin): Assign iw0 to priv.iw0.
(print_insn_bfin): Drop ifetch and use priv.iw0.
2014-08-13 Mike Frysinger <vapier@gentoo.org>
* bfin-dis.c (comment, parallel): Move from global scope ...

View File

@ -44,6 +44,7 @@ typedef unsigned int bu32;
struct private
{
TIword iw0;
int comment, parallel;
};
@ -4697,6 +4698,7 @@ _print_insn_bfin (bfd_vma pc, disassemble_info *outf)
if (ifetch (pc, outf, &iw0))
return -1;
priv->iw0 = iw0;
if ((iw0 & 0xc000) == 0xc000)
{
@ -4803,12 +4805,8 @@ int
print_insn_bfin (bfd_vma pc, disassemble_info *outf)
{
struct private priv;
TIword iw0;
int count;
if (ifetch (pc, outf, &iw0) == -1)
return -1;
priv.parallel = 0;
priv.comment = 0;
outf->private_data = &priv;
@ -4819,8 +4817,8 @@ print_insn_bfin (bfd_vma pc, disassemble_info *outf)
/* Proper display of multiple issue instructions. */
if (count == 4 && (iw0 & 0xc000) == 0xc000 && (iw0 & BIT_MULTI_INS)
&& ((iw0 & 0xe800) != 0xe800 /* Not Linkage. */ ))
if (count == 4 && (priv.iw0 & 0xc000) == 0xc000 && (priv.iw0 & BIT_MULTI_INS)
&& ((priv.iw0 & 0xe800) != 0xe800 /* Not Linkage. */ ))
{
int legal = 1;
int len;