summaryrefslogtreecommitdiff
path: root/opcodes/bfin-dis.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-10-15 20:44:45 +0000
committerMike Frysinger <vapier@gentoo.org>2010-10-15 20:44:45 +0000
commitf12d0ee6f229ec8f6704711e31a312c8414764d2 (patch)
treeb68f869218cd5da0ac87bf7e67a6baa999c1ccb9 /opcodes/bfin-dis.c
parente4c2a6c2bfb0f00e0f7232b1a4af04cd0ff3d807 (diff)
downloadbinutils-redhat-f12d0ee6f229ec8f6704711e31a312c8414764d2.tar.gz
gas: blackfin: fix encoding of BYTEOP2M insn
The BYTEOP2M parser incorrectly calls BYTEOP2P to generate the opcode. Once we've fixed that, it's easy to see that the disassembler also likes to decode this insn incorrectly. So fix that and then add some tests. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'opcodes/bfin-dis.c')
-rw-r--r--opcodes/bfin-dis.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/opcodes/bfin-dis.c b/opcodes/bfin-dis.c
index 0aec087c83..ebacd4618f 100644
--- a/opcodes/bfin-dis.c
+++ b/opcodes/bfin-dis.c
@@ -3388,11 +3388,11 @@ decode_dsp32alu_0 (TIword iw0, TIword iw1, disassemble_info *outf)
OUTS (outf, " = BYTEOP2M (");
OUTS (outf, dregs (src0 + 1));
OUTS (outf, ":");
- OUTS (outf, imm5 (src0));
+ OUTS (outf, imm5d (src0));
OUTS (outf, ", ");
OUTS (outf, dregs (src1 + 1));
OUTS (outf, ":");
- OUTS (outf, imm5 (src1));
+ OUTS (outf, imm5d (src1));
OUTS (outf, ") (TH");
if (s == 1)
OUTS (outf, ", R)");
@@ -3405,11 +3405,11 @@ decode_dsp32alu_0 (TIword iw0, TIword iw1, disassemble_info *outf)
OUTS (outf, " = BYTEOP2M (");
OUTS (outf, dregs (src0 + 1));
OUTS (outf, ":");
- OUTS (outf, imm5 (src0));
+ OUTS (outf, imm5d (src0));
OUTS (outf, ", ");
OUTS (outf, dregs (src1 + 1));
OUTS (outf, ":");
- OUTS (outf, imm5 (src1));
+ OUTS (outf, imm5d (src1));
OUTS (outf, ") (TL");
if (s == 1)
OUTS (outf, ", R)");
@@ -3422,11 +3422,11 @@ decode_dsp32alu_0 (TIword iw0, TIword iw1, disassemble_info *outf)
OUTS (outf, " = BYTEOP2M (");
OUTS (outf, dregs (src0 + 1));
OUTS (outf, ":");
- OUTS (outf, imm5 (src0));
+ OUTS (outf, imm5d (src0));
OUTS (outf, ", ");
OUTS (outf, dregs (src1 + 1));
OUTS (outf, ":");
- OUTS (outf, imm5 (src1));
+ OUTS (outf, imm5d (src1));
OUTS (outf, ") (RNDH");
if (s == 1)
OUTS (outf, ", R)");
@@ -3439,11 +3439,11 @@ decode_dsp32alu_0 (TIword iw0, TIword iw1, disassemble_info *outf)
OUTS (outf, " = BYTEOP2M (");
OUTS (outf, dregs (src0 + 1));
OUTS (outf, ":");
- OUTS (outf, imm5 (src0));
+ OUTS (outf, imm5d (src0));
OUTS (outf, ", ");
OUTS (outf, dregs (src1 + 1));
OUTS (outf, ":");
- OUTS (outf, imm5 (src1));
+ OUTS (outf, imm5d (src1));
OUTS (outf, ") (RNDL");
if (s == 1)
OUTS (outf, ", R)");