From 36f446111a0aba2bbd622ea73a2b5a9a363e5f5c Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 13 Feb 2011 18:53:16 +0000 Subject: [PATCH] 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 --- gas/ChangeLog | 6 ++++ gas/config/bfin-lex.l | 1 - gas/config/bfin-parse.y | 18 +---------- gas/testsuite/ChangeLog | 5 +++ gas/testsuite/gas/bfin/video.d | 10 ------ gas/testsuite/gas/bfin/video.s | 12 -------- gas/testsuite/gas/bfin/video2.d | 24 --------------- gas/testsuite/gas/bfin/video2.s | 46 ---------------------------- opcodes/ChangeLog | 4 +++ opcodes/bfin-dis.c | 68 ----------------------------------------- 10 files changed, 16 insertions(+), 178 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 656c912..c1aead2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2011-02-13 Mike Frysinger + + * 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 * config/bfin-defs.h: Include opcode/bfin.h. diff --git a/gas/config/bfin-lex.l b/gas/config/bfin-lex.l index 9606006..9792323 100644 --- a/gas/config/bfin-lex.l +++ b/gas/config/bfin-lex.l @@ -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; diff --git a/gas/config/bfin-parse.y b/gas/config/bfin-parse.y index b1795e1..c43d1b3 100644 --- a/gas/config/bfin-parse.y +++ b/gas/config/bfin-parse.y @@ -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 { diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index f9c90af..946dc1b 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-02-12 Mike Frysinger + + * gas/bfin/video.d, gas/bfin/video.s, gas/bfin/video2.d, + gas/bfin/video2.s: Remove BYTEOP2M insns. + 2011-02-10 Kai Tietz * gas/cfi/cfi-x86_64.d: Adjust for x64 PE+. diff --git a/gas/testsuite/gas/bfin/video.d b/gas/testsuite/gas/bfin/video.d index ce7362d..0fafc06 100644 --- a/gas/testsuite/gas/bfin/video.d +++ b/gas/testsuite/gas/bfin/video.d @@ -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]+ : -[ 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]+ : [ 0-9a-f]+: 18 c4 03 0a R5 = BYTEPACK \(R0, R3\); diff --git a/gas/testsuite/gas/bfin/video.s b/gas/testsuite/gas/bfin/video.s index a3f34c0..b53eb6c 100644 --- a/gas/testsuite/gas/bfin/video.s +++ b/gas/testsuite/gas/bfin/video.s @@ -49,18 +49,6 @@ byteop2p: 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: R5 = BytePack (R0, R3); diff --git a/gas/testsuite/gas/bfin/video2.d b/gas/testsuite/gas/bfin/video2.d index ed5d2fd..b9830d9 100644 --- a/gas/testsuite/gas/bfin/video2.d +++ b/gas/testsuite/gas/bfin/video2.d @@ -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\); diff --git a/gas/testsuite/gas/bfin/video2.s b/gas/testsuite/gas/bfin/video2.s index 1d27c56..22fb50f 100755 --- a/gas/testsuite/gas/bfin/video2.s +++ b/gas/testsuite/gas/bfin/video2.s @@ -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) ; diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index c11d832..aaafac4 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2011-02-13 Mike Frysinger + + * bfin-dis.c (decode_dsp32alu_0): Delete BYTEOP2M code. + 2011-02-12 Mike Frysinger * bfin-dis.c (decode_pseudoDEBUG_0): Add space after PRNT. diff --git a/opcodes/bfin-dis.c b/opcodes/bfin-dis.c index 2e73b09..e6901dc 100644 --- a/opcodes/bfin-dis.c +++ b/opcodes/bfin-dis.c @@ -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)); -- 2.7.4