summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJie Zhang <jie.zhang@analog.com>2008-09-26 04:49:17 +0000
committerJie Zhang <jie.zhang@analog.com>2008-09-26 04:49:17 +0000
commit37b329352042564a5b4c41c1244fc04af8c3cb04 (patch)
tree125b4e701fe2d6fc7834ecfa267a8b9ea6acdeda
parent181b26eaf1ad521819d2ef3257cf172f0d1cf6b3 (diff)
downloadbinutils-gdb-37b329352042564a5b4c41c1244fc04af8c3cb04.tar.gz
* config/bfin-parse.y (asm_1): Fix reduce/reduce conflicts.
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/bfin-parse.y22
2 files changed, 14 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3d023dfc38e..eb8240d6f8b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2008-09-26 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin-parse.y (asm_1): Fix reduce/reduce conflicts.
+
2008-09-24 Richard Henderson <rth@redhat.com>
* dw2gencfi.c (DWARF2_ADDR_SIZE): Provide default.
diff --git a/gas/config/bfin-parse.y b/gas/config/bfin-parse.y
index 283b8130fc3..f91224ed5dc 100644
--- a/gas/config/bfin-parse.y
+++ b/gas/config/bfin-parse.y
@@ -1932,22 +1932,20 @@ asm_1:
else
return yyerror ("Bad shift value or register");
}
- | HALF_REG ASSIGN HALF_REG LESS_LESS expr
- {
- if (IS_UIMM ($5, 4))
- {
- notethat ("dsp32shiftimm: dregs_half = dregs_half << uimm4\n");
- $$ = DSP32SHIFTIMM (0x0, &$1, imm5 ($5), &$3, 2, HL2 ($1, $3));
- }
- else
- return yyerror ("Bad shift value");
- }
| HALF_REG ASSIGN HALF_REG LESS_LESS expr smod
{
if (IS_UIMM ($5, 4))
{
- notethat ("dsp32shiftimm: dregs_half = dregs_half << uimm4\n");
- $$ = DSP32SHIFTIMM (0x0, &$1, imm5 ($5), &$3, $6.s0, HL2 ($1, $3));
+ if ($6.s0)
+ {
+ notethat ("dsp32shiftimm: dregs_half = dregs_half << uimm4 (S)\n");
+ $$ = DSP32SHIFTIMM (0x0, &$1, imm5 ($5), &$3, $6.s0, HL2 ($1, $3));
+ }
+ else
+ {
+ notethat ("dsp32shiftimm: dregs_half = dregs_half << uimm4\n");
+ $$ = DSP32SHIFTIMM (0x0, &$1, imm5 ($5), &$3, 2, HL2 ($1, $3));
+ }
}
else
return yyerror ("Bad shift value");