aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>1998-02-19 00:39:38 +0000
committerDoug Evans <dje@google.com>1998-02-19 00:39:38 +0000
commita48a6f230136440b2e57eb704f3fa83af60df0d9 (patch)
tree97072c359c2f0962e2fc2377b8838716773a957f /gas/config
parent18daef646e6b5d9a24635bf19e38d946e2aaf2a1 (diff)
downloadgdb-a48a6f230136440b2e57eb704f3fa83af60df0d9.zip
gdb-a48a6f230136440b2e57eb704f3fa83af60df0d9.tar.gz
gdb-a48a6f230136440b2e57eb704f3fa83af60df0d9.tar.bz2
Allow FAKE arguments to have a parser handler.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-dvp.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gas/config/tc-dvp.c b/gas/config/tc-dvp.c
index e7cfc69..38580ff 100644
--- a/gas/config/tc-dvp.c
+++ b/gas/config/tc-dvp.c
@@ -607,11 +607,20 @@ assemble_one_insn (cpu, opcode, operand_table, pstr, insn_buf)
if (operand->flags & DVP_OPERAND_FAKE)
{
+ long value = 0;
+ if (operand->parse)
+ {
+ errmsg = NULL;
+ value = (*operand->parse) (opcode, operand, mods,
+ &str, &errmsg);
+ if (errmsg)
+ break;
+ }
if (operand->insert)
{
errmsg = NULL;
- (*operand->insert) (opcode, operand, mods, insn_buf, 0,
- &errmsg);
+ (*operand->insert) (opcode, operand, mods, insn_buf,
+ (offsetT) value, &errmsg);
/* If we get an error, go on to try the next insn. */
if (errmsg)
break;