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:
parent
513ea82edf
commit
a4e600b22e
@ -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>
|
2014-08-13 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
* bfin-dis.c (comment, parallel): Move from global scope ...
|
* bfin-dis.c (comment, parallel): Move from global scope ...
|
||||||
|
@ -44,6 +44,7 @@ typedef unsigned int bu32;
|
|||||||
|
|
||||||
struct private
|
struct private
|
||||||
{
|
{
|
||||||
|
TIword iw0;
|
||||||
int comment, parallel;
|
int comment, parallel;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -4697,6 +4698,7 @@ _print_insn_bfin (bfd_vma pc, disassemble_info *outf)
|
|||||||
|
|
||||||
if (ifetch (pc, outf, &iw0))
|
if (ifetch (pc, outf, &iw0))
|
||||||
return -1;
|
return -1;
|
||||||
|
priv->iw0 = iw0;
|
||||||
|
|
||||||
if ((iw0 & 0xc000) == 0xc000)
|
if ((iw0 & 0xc000) == 0xc000)
|
||||||
{
|
{
|
||||||
@ -4803,12 +4805,8 @@ int
|
|||||||
print_insn_bfin (bfd_vma pc, disassemble_info *outf)
|
print_insn_bfin (bfd_vma pc, disassemble_info *outf)
|
||||||
{
|
{
|
||||||
struct private priv;
|
struct private priv;
|
||||||
TIword iw0;
|
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
if (ifetch (pc, outf, &iw0) == -1)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
priv.parallel = 0;
|
priv.parallel = 0;
|
||||||
priv.comment = 0;
|
priv.comment = 0;
|
||||||
outf->private_data = &priv;
|
outf->private_data = &priv;
|
||||||
@ -4819,8 +4817,8 @@ print_insn_bfin (bfd_vma pc, disassemble_info *outf)
|
|||||||
|
|
||||||
/* Proper display of multiple issue instructions. */
|
/* Proper display of multiple issue instructions. */
|
||||||
|
|
||||||
if (count == 4 && (iw0 & 0xc000) == 0xc000 && (iw0 & BIT_MULTI_INS)
|
if (count == 4 && (priv.iw0 & 0xc000) == 0xc000 && (priv.iw0 & BIT_MULTI_INS)
|
||||||
&& ((iw0 & 0xe800) != 0xe800 /* Not Linkage. */ ))
|
&& ((priv.iw0 & 0xe800) != 0xe800 /* Not Linkage. */ ))
|
||||||
{
|
{
|
||||||
int legal = 1;
|
int legal = 1;
|
||||||
int len;
|
int len;
|
||||||
|
Loading…
Reference in New Issue
Block a user