summaryrefslogtreecommitdiff
path: root/assemble.c
diff options
context:
space:
mode:
Diffstat (limited to 'assemble.c')
-rw-r--r--assemble.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/assemble.c b/assemble.c
index 829cb1b..b4ba444 100644
--- a/assemble.c
+++ b/assemble.c
@@ -2053,6 +2053,7 @@ static enum match_result matches(const struct itemplate *itemp,
insn *instruction, int bits)
{
int i, size[MAX_OPERANDS], asize, oprs, ret;
+ bool opsizemissing = false;
ret = MOK_GOOD;
@@ -2178,10 +2179,13 @@ static enum match_result matches(const struct itemplate *itemp,
if ((itemp->opd[i] & ~type & ~SIZE_MASK) || (type & SIZE_MASK))
return MERR_INVALOP;
else
- return MERR_OPSIZEMISSING;
+ opsizemissing = true;
}
}
+ if (opsizemissing)
+ return MERR_OPSIZEMISSING;
+
/*
* Check operand sizes
*/