summaryrefslogtreecommitdiff
path: root/parser.c
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-10-29 20:20:12 -0700
committerH. Peter Anvin <hpa@zytor.com>2007-10-29 20:20:12 -0700
commit2ce0274303000c95f5f503f1fb0db86fd108b06e (patch)
treeac275b173a622172cac59dec5c1c374463cb9d2b /parser.c
parent052c0bd4843e9222711bec40093ce294d0e32540 (diff)
downloadnasm-2ce0274303000c95f5f503f1fb0db86fd108b06e.tar.gz
Use a 32-bit floating-point limb size; support 8-bit float
Use a 32-bit limb size ("like a digit, but bigger") for floating-point conversion. This cuts the number of multiplications per constant by a factor of four. This means supporting fractional-limb-sized numbers, so while we're at it, add support for 8-bit floating point numbers (apparently used in graphics and in audio compression applications.)
Diffstat (limited to 'parser.c')
-rw-r--r--parser.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/parser.c b/parser.c
index fad03e2d..9b7f6176 100644
--- a/parser.c
+++ b/parser.c
@@ -369,6 +369,9 @@ insn *parse_line(int pass, char *buffer, insn * result,
eop->type = EOT_DB_STRING;
result->eops_float = true;
switch (result->opcode) {
+ case I_DB:
+ eop->stringlen = 1;
+ break;
case I_DW:
eop->stringlen = 2;
break;
@@ -386,7 +389,7 @@ insn *parse_line(int pass, char *buffer, insn * result,
break;
default:
error(ERR_NONFATAL, "floating-point constant"
- " encountered in `db' instruction");
+ " encountered in unknown instruction");
/*
* fix suggested by Pedro Gimeno... original line
* was: