aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2000-04-05 21:43:26 +0000
committerJoern Rennecke <joern.rennecke@embecosm.com>2000-04-05 21:43:26 +0000
commit52ccafd0351e92cb9afa9c96de6fecdad94bb4e4 (patch)
treedc345cf6e941adaf385c428b301c321cc62fbab3 /gas
parent015551fcfbf75f39651b5ddff359538ef25860ee (diff)
downloadgdb-52ccafd0351e92cb9afa9c96de6fecdad94bb4e4.zip
gdb-52ccafd0351e92cb9afa9c96de6fecdad94bb4e4.tar.gz
gdb-52ccafd0351e92cb9afa9c96de6fecdad94bb4e4.tar.bz2
opcodes:
* sh-opc.c (sh_table): Use A_DISP_PC / PCRELIMM_8BY2 for ldre & ldrs. stc GBR,@-<REG_N> is available for arch_sh1_up. Group parallel processing insn with identical mnemonics together. Make three-operand psha / pshl come first. gas: * config/tc-sh.c (get_operands): There's no third operand if the first operand is an immediate.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-sh.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 7baad0d..c6467ba 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+Wed Apr 5 22:26:32 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * config/tc-sh.c (get_operands): There's no third operand if the
+ first operand is an immediate.
+
Wed Apr 5 22:07:19 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* config/tc-sh.c (immediate): Delete.
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
index d468215..036a1d3 100644
--- a/gas/config/tc-sh.c
+++ b/gas/config/tc-sh.c
@@ -847,7 +847,13 @@ get_operands (info, args, operand)
ptr++;
}
get_operand (&ptr, operand + 1);
- if (info->arg[2])
+ /* ??? Hack: psha/pshl have a varying operand number depending on
+ the type of the first operand. We handle this by having the
+ three-operand version first and reducing the number of operands
+ parsed to two if we see that the first operand is an immediate.
+ This works because no insn with three operands has an immediate
+ as first operand. */
+ if (info->arg[2] && operand[0].type != A_IMM)
{
if (*ptr == ',')
{