diff options
author | Joern Rennecke <joern.rennecke@embecosm.com> | 2000-04-05 21:43:26 +0000 |
---|---|---|
committer | Joern Rennecke <joern.rennecke@embecosm.com> | 2000-04-05 21:43:26 +0000 |
commit | 52ccafd0351e92cb9afa9c96de6fecdad94bb4e4 (patch) | |
tree | dc345cf6e941adaf385c428b301c321cc62fbab3 /gas/config/tc-sh.c | |
parent | 015551fcfbf75f39651b5ddff359538ef25860ee (diff) | |
download | gdb-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/config/tc-sh.c')
-rw-r--r-- | gas/config/tc-sh.c | 8 |
1 files changed, 7 insertions, 1 deletions
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 == ',') { |