gas/opcodes: blackfin: punt BYTEOP2M insn support
The BYTEOP2M insn was part of the initial Blackfin designs, but never made it into any actual silicon. So punt support for it. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
bc9a5551ca
commit
36f446111a
10 changed files with 16 additions and 178 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-02-13 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* config/bfin-lex.l (BYTEOP2M): Remove tokenization.
|
||||
* config/bfin-parse.y (BYTEOP2M): Delete token.
|
||||
(asm_1): Remove BYTEOP2M insn matching.
|
||||
|
||||
2011-02-12 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* config/bfin-defs.h: Include opcode/bfin.h.
|
||||
|
|
|
@ -190,7 +190,6 @@ int yylex (void);
|
|||
[bB][yY][tT][eE][oO][pP]16[mM] return BYTEOP16M;
|
||||
[bB][yY][tT][eE][oO][pP]16[pP] return BYTEOP16P;
|
||||
[bB][yY][tT][eE][oO][pP]3[pP] return BYTEOP3P;
|
||||
[bB][yY][tT][eE][oO][pP]2[mM] return BYTEOP2M;
|
||||
[bB][yY][tT][eE][oO][pP]2[pP] return BYTEOP2P;
|
||||
[bB][yY][tT][eE][oO][pP]1[pP] return BYTEOP1P;
|
||||
[bB][yY] return BY;
|
||||
|
|
|
@ -455,7 +455,7 @@ dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported");
|
|||
|
||||
/* Vector Specific. */
|
||||
%token BYTEOP16P BYTEOP16M
|
||||
%token BYTEOP1P BYTEOP2P BYTEOP2M BYTEOP3P
|
||||
%token BYTEOP1P BYTEOP2P BYTEOP3P
|
||||
%token BYTEUNPACK BYTEPACK
|
||||
%token PACK
|
||||
%token SAA
|
||||
|
@ -1053,22 +1053,6 @@ asm_1:
|
|||
}
|
||||
}
|
||||
|
||||
| REG ASSIGN BYTEOP2M LPAREN REG COLON expr COMMA REG COLON expr RPAREN
|
||||
rnd_op
|
||||
{
|
||||
if (!IS_DREG ($1))
|
||||
return yyerror ("Dregs expected");
|
||||
else if (!valid_dreg_pair (&$5, $7))
|
||||
return yyerror ("Bad dreg pair");
|
||||
else if (!valid_dreg_pair (&$9, $11))
|
||||
return yyerror ("Bad dreg pair");
|
||||
else
|
||||
{
|
||||
notethat ("dsp32alu: dregs = BYTEOP2M (dregs_pair , dregs_pair ) (rnd_op)\n");
|
||||
$$ = DSP32ALU (22, $13.r0, 0, &$1, &$5, &$9, $13.s0, $13.x0, $13.aop + 2);
|
||||
}
|
||||
}
|
||||
|
||||
| REG ASSIGN BYTEOP3P LPAREN REG COLON expr COMMA REG COLON expr RPAREN
|
||||
b3_op
|
||||
{
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-02-12 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* gas/bfin/video.d, gas/bfin/video.s, gas/bfin/video2.d,
|
||||
gas/bfin/video2.s: Remove BYTEOP2M insns.
|
||||
|
||||
2011-02-10 Kai Tietz <kai.tietz@onevision.com>
|
||||
|
||||
* gas/cfi/cfi-x86_64.d: Adjust for x64 PE+.
|
||||
|
|
|
@ -40,16 +40,6 @@ Disassembly of section .text:
|
|||
[ 0-9a-f]+: 16 c4 02 6c R6 = BYTEOP2P \(R1:0, R3:2\) \(TL, R\);
|
||||
[ 0-9a-f]+: 36 c4 02 6e R7 = BYTEOP2P \(R1:0, R3:2\) \(TH, R\);
|
||||
|
||||
[0-9a-f]+ <byteop2m>:
|
||||
[ 0-9a-f]+: 16 c4 02 80 R0 = BYTEOP2M \(R1:0, R3:2\) \(RNDL\);
|
||||
[ 0-9a-f]+: 36 c4 02 82 R1 = BYTEOP2M \(R1:0, R3:2\) \(RNDH\);
|
||||
[ 0-9a-f]+: 16 c4 02 c4 R2 = BYTEOP2M \(R1:0, R3:2\) \(TL\);
|
||||
[ 0-9a-f]+: 36 c4 02 c6 R3 = BYTEOP2M \(R1:0, R3:2\) \(TH\);
|
||||
[ 0-9a-f]+: 16 c4 02 a8 R4 = BYTEOP2M \(R1:0, R3:2\) \(RNDL, R\);
|
||||
[ 0-9a-f]+: 36 c4 02 aa R5 = BYTEOP2M \(R1:0, R3:2\) \(RNDH, R\);
|
||||
[ 0-9a-f]+: 16 c4 02 ec R6 = BYTEOP2M \(R1:0, R3:2\) \(TL, R\);
|
||||
[ 0-9a-f]+: 36 c4 02 ee R7 = BYTEOP2M \(R1:0, R3:2\) \(TH, R\);
|
||||
|
||||
[0-9a-f]+ <bytepack>:
|
||||
[ 0-9a-f]+: 18 c4 03 0a R5 = BYTEPACK \(R0, R3\);
|
||||
|
||||
|
|
|
@ -48,18 +48,6 @@ byteop2p:
|
|||
r6 = BYTEop2p (r1:0, r3:2) (tl, R);
|
||||
R7 = byteop2p (r1:0, R3:2) (TH, r);
|
||||
|
||||
.text
|
||||
.global byteop2m
|
||||
byteop2m:
|
||||
R0 = BYTEOP2M (R1:0, R3:2) (RNDL);
|
||||
r1 = byteop2m (r1:0, r3:2) (rndh);
|
||||
R2 = Byteop2m (R1:0, R3:2) (tL);
|
||||
R3 = Byteop2m (r1:0, r3:2) (TH);
|
||||
r4 = ByTEOP2M (r1:0, R3:2) (Rndl, R);
|
||||
R5 = byTeOp2m (R1:0, r3:2) (rndH, r);
|
||||
r6 = BYTEop2m (r1:0, r3:2) (tl, R);
|
||||
R7 = byteop2m (r1:0, R3:2) (TH, r);
|
||||
|
||||
.text
|
||||
.global bytepack
|
||||
bytepack:
|
||||
|
|
|
@ -103,30 +103,6 @@ Disassembly of section .text:
|
|||
[ 0-9a-f]+: 36 c4 12 2a R5 = BYTEOP2P \(R3:2, R3:2\) \(RNDH, R\);
|
||||
[ 0-9a-f]+: 16 c4 12 6c R6 = BYTEOP2P \(R3:2, R3:2\) \(TL, R\);
|
||||
[ 0-9a-f]+: 36 c4 12 6e R7 = BYTEOP2P \(R3:2, R3:2\) \(TH, R\);
|
||||
[ 0-9a-f]+: 16 c4 02 86 R3 = BYTEOP2M \(R1:0, R3:2\) \(RNDL\);
|
||||
[ 0-9a-f]+: 36 c4 02 86 R3 = BYTEOP2M \(R1:0, R3:2\) \(RNDH\);
|
||||
[ 0-9a-f]+: 16 c4 02 c6 R3 = BYTEOP2M \(R1:0, R3:2\) \(TL\);
|
||||
[ 0-9a-f]+: 36 c4 02 c6 R3 = BYTEOP2M \(R1:0, R3:2\) \(TH\);
|
||||
[ 0-9a-f]+: 16 c4 02 a6 R3 = BYTEOP2M \(R1:0, R3:2\) \(RNDL, R\);
|
||||
[ 0-9a-f]+: 36 c4 02 a6 R3 = BYTEOP2M \(R1:0, R3:2\) \(RNDH, R\);
|
||||
[ 0-9a-f]+: 16 c4 02 e6 R3 = BYTEOP2M \(R1:0, R3:2\) \(TL, R\);
|
||||
[ 0-9a-f]+: 36 c4 02 e6 R3 = BYTEOP2M \(R1:0, R3:2\) \(TH, R\);
|
||||
[ 0-9a-f]+: 16 c4 02 80 R0 = BYTEOP2M \(R1:0, R3:2\) \(RNDL\);
|
||||
[ 0-9a-f]+: 36 c4 02 82 R1 = BYTEOP2M \(R1:0, R3:2\) \(RNDH\);
|
||||
[ 0-9a-f]+: 16 c4 02 c4 R2 = BYTEOP2M \(R1:0, R3:2\) \(TL\);
|
||||
[ 0-9a-f]+: 36 c4 02 c6 R3 = BYTEOP2M \(R1:0, R3:2\) \(TH\);
|
||||
[ 0-9a-f]+: 16 c4 02 a8 R4 = BYTEOP2M \(R1:0, R3:2\) \(RNDL, R\);
|
||||
[ 0-9a-f]+: 36 c4 02 aa R5 = BYTEOP2M \(R1:0, R3:2\) \(RNDH, R\);
|
||||
[ 0-9a-f]+: 16 c4 02 ec R6 = BYTEOP2M \(R1:0, R3:2\) \(TL, R\);
|
||||
[ 0-9a-f]+: 36 c4 02 ee R7 = BYTEOP2M \(R1:0, R3:2\) \(TH, R\);
|
||||
[ 0-9a-f]+: 16 c4 12 80 R0 = BYTEOP2M \(R3:2, R3:2\) \(RNDL\);
|
||||
[ 0-9a-f]+: 36 c4 12 82 R1 = BYTEOP2M \(R3:2, R3:2\) \(RNDH\);
|
||||
[ 0-9a-f]+: 16 c4 12 c4 R2 = BYTEOP2M \(R3:2, R3:2\) \(TL\);
|
||||
[ 0-9a-f]+: 36 c4 12 c6 R3 = BYTEOP2M \(R3:2, R3:2\) \(TH\);
|
||||
[ 0-9a-f]+: 16 c4 12 a8 R4 = BYTEOP2M \(R3:2, R3:2\) \(RNDL, R\);
|
||||
[ 0-9a-f]+: 36 c4 12 aa R5 = BYTEOP2M \(R3:2, R3:2\) \(RNDH, R\);
|
||||
[ 0-9a-f]+: 16 c4 12 ec R6 = BYTEOP2M \(R3:2, R3:2\) \(TL, R\);
|
||||
[ 0-9a-f]+: 36 c4 12 ee R7 = BYTEOP2M \(R3:2, R3:2\) \(TH, R\);
|
||||
[ 0-9a-f]+: 18 c4 00 00 R0 = BYTEPACK \(R0, R0\);
|
||||
[ 0-9a-f]+: 18 c4 13 02 R1 = BYTEPACK \(R2, R3\);
|
||||
[ 0-9a-f]+: 18 c4 2e 08 R4 = BYTEPACK \(R5, R6\);
|
||||
|
|
|
@ -159,52 +159,6 @@ r5 = byteop2p (r3:2, r3:2) (rndh, r) ;
|
|||
r6 = byteop2p (r3:2, r3:2) (tl, r) ;
|
||||
r7 = byteop2p (r3:2, r3:2) (th, r) ;
|
||||
|
||||
/* forward byte order operands */
|
||||
//Dreg = BYTEOP2M (Dreg_pair, Dreg_pair) (RNDL) ;
|
||||
/* round into low bytes (b) */
|
||||
//Dreg = BYTEOP2M (Dreg_pair, Dreg_pair) (RNDH) ;
|
||||
/* round into high bytes (b) */
|
||||
//Dreg = BYTEOP2M (Dreg_pair, Dreg_pair) (TL) ;
|
||||
/* truncate into low bytes (b) */
|
||||
//Dreg = BYTEOP2M (Dreg_pair, Dreg_pair) (TH) ;
|
||||
/* truncate into high bytes (b) */
|
||||
/* reverse byte order operands */
|
||||
//Dreg = BYTEOP2M (Dreg_pair, Dreg_pair) (RNDL, R) ;
|
||||
/* round into low bytes (b) */
|
||||
//Dreg = BYTEOP2M (Dreg_pair, Dreg_pair) (RNDH, R) ;
|
||||
/* round into high bytes (b) */
|
||||
//Dreg = BYTEOP2M (Dreg_pair, Dreg_pair) (TL, R) ;
|
||||
/* truncate into low bytes (b) */
|
||||
//Dreg = BYTEOP2M (Dreg_pair, Dreg_pair) (TH, R) ;
|
||||
/* truncate into high bytes (b) */
|
||||
|
||||
r3 = byteop2m (r1:0, r3:2) (rndl) ;
|
||||
r3 = byteop2m (r1:0, r3:2) (rndh) ;
|
||||
r3 = byteop2m (r1:0, r3:2) (tl) ;
|
||||
r3 = byteop2m (r1:0, r3:2) (th) ;
|
||||
r3 = byteop2m (r1:0, r3:2) (rndl, r) ;
|
||||
r3 = byteop2m (r1:0, r3:2) (rndh, r) ;
|
||||
r3 = byteop2m (r1:0, r3:2) (tl, r) ;
|
||||
r3 = byteop2m (r1:0, r3:2) (th, r) ;
|
||||
|
||||
r0 = byteop2m (r1:0, r3:2) (rndl) ;
|
||||
r1 = byteop2m (r1:0, r3:2) (rndh) ;
|
||||
r2 = byteop2m (r1:0, r3:2) (tl) ;
|
||||
r3 = byteop2m (r1:0, r3:2) (th) ;
|
||||
r4 = byteop2m (r1:0, r3:2) (rndl, r) ;
|
||||
r5 = byteop2m (r1:0, r3:2) (rndh, r) ;
|
||||
r6 = byteop2m (r1:0, r3:2) (tl, r) ;
|
||||
r7 = byteop2m (r1:0, r3:2) (th, r) ;
|
||||
|
||||
r0 = byteop2m (r3:2, r3:2) (rndl) ;
|
||||
r1 = byteop2m (r3:2, r3:2) (rndh) ;
|
||||
r2 = byteop2m (r3:2, r3:2) (tl) ;
|
||||
r3 = byteop2m (r3:2, r3:2) (th) ;
|
||||
r4 = byteop2m (r3:2, r3:2) (rndl, r) ;
|
||||
r5 = byteop2m (r3:2, r3:2) (rndh, r) ;
|
||||
r6 = byteop2m (r3:2, r3:2) (tl, r) ;
|
||||
r7 = byteop2m (r3:2, r3:2) (th, r) ;
|
||||
|
||||
//Dreg = BYTEPACK ( Dreg, Dreg ) ; /* (b) */
|
||||
r0 = bytepack (r0,r0) ;
|
||||
r1 = bytepack (r2,r3) ;
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2011-02-13 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* bfin-dis.c (decode_dsp32alu_0): Delete BYTEOP2M code.
|
||||
|
||||
2011-02-12 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* bfin-dis.c (decode_pseudoDEBUG_0): Add space after PRNT.
|
||||
|
|
|
@ -3373,74 +3373,6 @@ decode_dsp32alu_0 (TIword iw0, TIword iw1, disassemble_info *outf)
|
|||
else if (aop == 3 && aopcde == 11 && s == 1)
|
||||
OUTS (outf, "A0 -= A1 (W32)");
|
||||
|
||||
else if (aop == 3 && aopcde == 22 && HL == 1)
|
||||
{
|
||||
OUTS (outf, dregs (dst0));
|
||||
OUTS (outf, " = BYTEOP2M (");
|
||||
OUTS (outf, dregs (src0 + 1));
|
||||
OUTS (outf, ":");
|
||||
OUTS (outf, imm5d (src0));
|
||||
OUTS (outf, ", ");
|
||||
OUTS (outf, dregs (src1 + 1));
|
||||
OUTS (outf, ":");
|
||||
OUTS (outf, imm5d (src1));
|
||||
OUTS (outf, ") (TH");
|
||||
if (s == 1)
|
||||
OUTS (outf, ", R)");
|
||||
else
|
||||
OUTS (outf, ")");
|
||||
}
|
||||
else if (aop == 3 && aopcde == 22 && HL == 0)
|
||||
{
|
||||
OUTS (outf, dregs (dst0));
|
||||
OUTS (outf, " = BYTEOP2M (");
|
||||
OUTS (outf, dregs (src0 + 1));
|
||||
OUTS (outf, ":");
|
||||
OUTS (outf, imm5d (src0));
|
||||
OUTS (outf, ", ");
|
||||
OUTS (outf, dregs (src1 + 1));
|
||||
OUTS (outf, ":");
|
||||
OUTS (outf, imm5d (src1));
|
||||
OUTS (outf, ") (TL");
|
||||
if (s == 1)
|
||||
OUTS (outf, ", R)");
|
||||
else
|
||||
OUTS (outf, ")");
|
||||
}
|
||||
else if (aop == 2 && aopcde == 22 && HL == 1)
|
||||
{
|
||||
OUTS (outf, dregs (dst0));
|
||||
OUTS (outf, " = BYTEOP2M (");
|
||||
OUTS (outf, dregs (src0 + 1));
|
||||
OUTS (outf, ":");
|
||||
OUTS (outf, imm5d (src0));
|
||||
OUTS (outf, ", ");
|
||||
OUTS (outf, dregs (src1 + 1));
|
||||
OUTS (outf, ":");
|
||||
OUTS (outf, imm5d (src1));
|
||||
OUTS (outf, ") (RNDH");
|
||||
if (s == 1)
|
||||
OUTS (outf, ", R)");
|
||||
else
|
||||
OUTS (outf, ")");
|
||||
}
|
||||
else if (aop == 2 && aopcde == 22 && HL == 0)
|
||||
{
|
||||
OUTS (outf, dregs (dst0));
|
||||
OUTS (outf, " = BYTEOP2M (");
|
||||
OUTS (outf, dregs (src0 + 1));
|
||||
OUTS (outf, ":");
|
||||
OUTS (outf, imm5d (src0));
|
||||
OUTS (outf, ", ");
|
||||
OUTS (outf, dregs (src1 + 1));
|
||||
OUTS (outf, ":");
|
||||
OUTS (outf, imm5d (src1));
|
||||
OUTS (outf, ") (RNDL");
|
||||
if (s == 1)
|
||||
OUTS (outf, ", R)");
|
||||
else
|
||||
OUTS (outf, ")");
|
||||
}
|
||||
else if (aop == 1 && aopcde == 22 && HL == 1)
|
||||
{
|
||||
OUTS (outf, dregs (dst0));
|
||||
|
|
Loading…
Reference in a new issue