summaryrefslogtreecommitdiff
path: root/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'parser.c')
-rw-r--r--parser.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/parser.c b/parser.c
index 1a9c9e4e..0a85c9e1 100644
--- a/parser.c
+++ b/parser.c
@@ -647,8 +647,13 @@ insn *parse_line (int pass, char *buffer, insn *result,
result->oprs[operand].offset = reloc_value(value);
result->oprs[operand].segment = reloc_seg(value);
result->oprs[operand].wrt = reloc_wrt(value);
- if (is_simple(value) && reloc_value(value)==1)
- result->oprs[operand].type |= UNITY;
+ if (is_simple(value)) {
+ if (reloc_value(value)==1)
+ result->oprs[operand].type |= UNITY;
+ if (reloc_value(value) >= -128 &&
+ reloc_value(value) <= 127)
+ result->oprs[operand].type |= SBYTE;
+ }
}
else /* it's a register */
{