summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-10-29 22:56:08 -0700
committerH. Peter Anvin <hpa@zytor.com>2007-10-29 22:56:08 -0700
commit10e27271330792a2d33cf08c5002c73cd2d7b201 (patch)
tree590c66d4452a4cdadbd76c03777bd882f1bed705
parent2ce0274303000c95f5f503f1fb0db86fd108b06e (diff)
downloadnasm-10e27271330792a2d33cf08c5002c73cd2d7b201.tar.gz
Don't warn for segmented references
Don't warn for overflow in segmented references; those are linker references and it is up to the backend or the linker to warn if they overflow their permitted size.
-rw-r--r--assemble.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/assemble.c b/assemble.c
index 18cc7cff..d6010112 100644
--- a/assemble.c
+++ b/assemble.c
@@ -1247,7 +1247,9 @@ static void gencode(int32_t segment, int32_t offset, int bits,
else
size = (bits == 16) ? 2 : 4;
data = ins->oprs[c - 034].offset;
- warn_overflow(size, data);
+ if (ins->oprs[c - 034].segment == NO_SEG &&
+ ins->oprs[c - 034].wrt == NO_SEG)
+ warn_overflow(size, data);
out(offset, segment, &data, OUT_ADDRESS + size,
ins->oprs[c - 034].segment, ins->oprs[c - 034].wrt);
offset += size;
@@ -1269,7 +1271,9 @@ static void gencode(int32_t segment, int32_t offset, int bits,
case 047:
data = ins->oprs[c - 044].offset;
size = ins->addr_size >> 3;
- warn_overflow(size, data);
+ if (ins->oprs[c - 044].segment == NO_SEG &&
+ ins->oprs[c - 044].wrt == NO_SEG)
+ warn_overflow(size, data);
out(offset, segment, &data, OUT_ADDRESS + size,
ins->oprs[c - 044].segment, ins->oprs[c - 044].wrt);
offset += size;