forked from Imagelibrary/binutils-gdb
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>
This commit is contained in:
@@ -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)");
|
||||
|
||||
Reference in New Issue
Block a user