summaryrefslogtreecommitdiff
path: root/asm/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'asm/parser.c')
-rw-r--r--asm/parser.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/asm/parser.c b/asm/parser.c
index c76696c2..9349e25e 100644
--- a/asm/parser.c
+++ b/asm/parser.c
@@ -767,7 +767,8 @@ is_expression:
}
first = false;
op->type = 0; /* so far, no override */
- while (i == TOKEN_SPECIAL) { /* size specifiers */
+ /* size specifiers */
+ while (i == TOKEN_SPECIAL || i == TOKEN_SIZE) {
switch (tokval.t_integer) {
case S_BYTE:
if (!setsize) /* we want to use only the first */
@@ -835,7 +836,8 @@ is_expression:
mref = true;
bracket = (i == '[');
i = stdscan(NULL, &tokval); /* then skip the colon */
- while (i == TOKEN_SPECIAL || i == TOKEN_PREFIX) {
+ while (i == TOKEN_SPECIAL || i == TOKEN_SIZE ||
+ i == TOKEN_PREFIX) {
process_size_override(result, op);
i = stdscan(NULL, &tokval);
}
@@ -880,7 +882,8 @@ is_expression:
}
i = stdscan(NULL, &tokval); /* then skip the colon */
- while (i == TOKEN_SPECIAL || i == TOKEN_PREFIX) {
+ while (i == TOKEN_SPECIAL || i == TOKEN_SIZE ||
+ i == TOKEN_PREFIX) {
process_size_override(result, op);
i = stdscan(NULL, &tokval);
}