summaryrefslogtreecommitdiffstats
path: root/gas/config/bfin-parse.y
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-03-29 01:25:13 +0000
committerMike Frysinger <vapier@gentoo.org>2011-03-29 01:25:13 +0000
commitf4a2f576d439afac300134257b3d9fcfc7e15fd3 (patch)
treeeb3ef526a7aa727e049b2a80fd13d225f956b1db /gas/config/bfin-parse.y
parent332bf1ed7493992da9371a6726436752ee782529 (diff)
downloadppe42-binutils-f4a2f576d439afac300134257b3d9fcfc7e15fd3.tar.gz
ppe42-binutils-f4a2f576d439afac300134257b3d9fcfc7e15fd3.zip
gas: blackfin: reject invalid 16bit acc add insns
The 16bit acc add insn cannot assign the two results to the same dreg, so make sure gas rejects attempts to use this insn variant. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'gas/config/bfin-parse.y')
-rw-r--r--gas/config/bfin-parse.y3
1 files changed, 3 insertions, 0 deletions
diff --git a/gas/config/bfin-parse.y b/gas/config/bfin-parse.y
index 803afd1c55..fa81a61dd8 100644
--- a/gas/config/bfin-parse.y
+++ b/gas/config/bfin-parse.y
@@ -886,6 +886,9 @@ asm_1:
| REG ASSIGN A_ONE_DOT_L PLUS A_ONE_DOT_H COMMA
REG ASSIGN A_ZERO_DOT_L PLUS A_ZERO_DOT_H
{
+ if (REG_SAME ($1, $7))
+ return yyerror ("Illegal dest register combination");
+
if (IS_DREG ($1) && IS_DREG ($7))
{
notethat ("dsp32alu: dregs = A1.l + A1.h, dregs = A0.l + A0.h \n");
OpenPOWER on IntegriCloud