summaryrefslogtreecommitdiff
path: root/opcodes/ia64-opc-i.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-01-31 08:48:32 +0000
committerJan Beulich <jbeulich@novell.com>2005-01-31 08:48:32 +0000
commit60b9a617725df23ea629c34a83919bf320082a7d (patch)
tree41c516899c81c93b7ef9997355ee9e56e126c483 /opcodes/ia64-opc-i.c
parente901b190a91d42356660e45e459c60fac24b2e7d (diff)
downloadbinutils-60b9a617725df23ea629c34a83919bf320082a7d.tar.gz
binutils-60b9a617725df23ea629c34a83919bf320082a7d.tar.bz2
binutils-60b9a617725df23ea629c34a83919bf320082a7d.zip
gas/
2005-01-31 Jan Beulich <jbeulich@novell.com> * config/tc-ia64.c (parse_operands): Also handle alloc without first input being ar.pfs. gas/testsuite/ 2005-01-31 Jan Beulich <jbeulich@novell.com> * gas/ia64/pseudo.[ds]: New. * gas/ia64/ia64.exp: Run new test. opcodes/ 2005-01-31 Jan Beulich <jbeulich@novell.com> * ia64-gen.c (NELEMS): Define. (shrink): Generate alias with missing second predicate register when opcode has two outputs and these are both predicates. * ia64-opc-i.c (FULL17): Define. (ia64_opcodes_i): Add mov-to-pr alias without second input. Use FULL17 here to generate output template. (TBITCM, TNATCM): Undefine after use. * ia64-opc-m.c (ia64_opcodes_i): Add alloc alias without ar.pfs as first input. Add ld16 aliases without ar.csd as second output. Add st16 aliases without ar.csd as second input. Add cmpxchg aliases without ar.ccv as third input. Add cmp8xchg16 aliases without ar.csd/ ar.ccv as third/fourth inputs. Consolidate through... (CMPXCHG_acq, CMPXCHG_rel, CMPXCHG_1, CMPXCHG_2, CMPXCHG_4, CMPXCHG_8, CMPXCHGn, CMP8XCHG16, CMPXCHG_ALL): Define. * ia64-asmtab.c: Regenerate.
Diffstat (limited to 'opcodes/ia64-opc-i.c')
-rw-r--r--opcodes/ia64-opc-i.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/opcodes/ia64-opc-i.c b/opcodes/ia64-opc-i.c
index 86440f7b57f..dcc2d77ec80 100644
--- a/opcodes/ia64-opc-i.c
+++ b/opcodes/ia64-opc-i.c
@@ -95,6 +95,8 @@
(bOp (a) | bX3 (b) | bXb (c) | bIh (d) | bWh (e) | bTag13 (f)), \
(mOp | mX3 | mXb | mIh | mWh | mTag13)
+#define FULL17 ((ia64_insn)0x10ff001fc0LL)
+
/* Used to initialise unused fields in ia64_opcode struct,
in order to stop gcc from complaining. */
#define EMPTY 0,0,NULL
@@ -126,6 +128,8 @@ struct ia64_opcode ia64_opcodes_i[] =
#undef MOV
{"mov", I, OpX3X6 (0, 0, 0x31), {R1, B2}, EMPTY},
{"mov", I, OpX3 (0, 3), {PR, R2, IMM17}, EMPTY},
+ /* Don't remove one of the seemingly redundant FULL17-s. */
+ {"mov", I, FULL17 | OpX3 (0, 3) | FULL17, {PR, R2}, PSEUDO, 0, NULL},
{"mov", I, OpX3 (0, 2), {PR_ROT, IMM44}, EMPTY},
{"mov", I, OpX3X6 (0, 0, 0x30), {R1, IP}, EMPTY},
{"mov", I, OpX3X6 (0, 0, 0x33), {R1, PR}, EMPTY},
@@ -181,6 +185,7 @@ struct ia64_opcode ia64_opcodes_i[] =
{"tbit.nz.or.andcm", TBIT (1, 1, 0, 1)},
{"tbit.z.and.orcm", TBITCM (1, 1, 0, 1)},
#undef TBIT
+#undef TBITCM
#define TNAT(a,b,c,d) \
I2, OpX2TaTbYaC (5, 0, a, b, c, d), {P1, P2, R3}, EMPTY
#define TNATCM(a,b,c,d) \
@@ -202,6 +207,7 @@ struct ia64_opcode ia64_opcodes_i[] =
{"tnat.nz.or.andcm", TNAT (1, 1, 1, 1)},
{"tnat.z.and.orcm", TNATCM (1, 1, 1, 1)},
#undef TNAT
+#undef TNATCM
{"pmpyshr2", I, OpZaZbVeX2aX2b (7, 0, 1, 0, 0, 3), {R1, R2, R3, CNT2c}, EMPTY},
{"pmpyshr2.u", I, OpZaZbVeX2aX2b (7, 0, 1, 0, 0, 1), {R1, R2, R3, CNT2c}, EMPTY},