Mercurial > hg > index.cgi
diff lwasm/lwasm.c @ 211:6f2e18f1fe67
Improve autobranchlength pragma
Improve detection of 8 bit relative offsets when autobranchlength is in
effect. This should eliminate all but the most obscure corner cases where
the 16 bit mode is selected when 8 bit mode will do.
author | William Astle <lost@l-w.ca> |
---|---|
date | Sat, 09 Jun 2012 17:23:04 -0600 |
parents | 5d969517db74 |
children | 398773d7e504 |
line wrap: on
line diff
--- a/lwasm/lwasm.c Sat Jun 09 16:25:19 2012 -0600 +++ b/lwasm/lwasm.c Sat Jun 09 17:23:04 2012 -0600 @@ -125,9 +125,18 @@ case lwasm_expr_linelen: { line_t *cl = ptr; - if (cl -> len == -1) - return NULL; - return lw_expr_build(lw_expr_type_int, cl -> len); + if (cl -> len != -1) + return lw_expr_build(lw_expr_type_int, cl -> len); + + if (cl -> as -> pretendmax) + { + if (cl -> maxlen != 0) + { + fprintf(stderr, "Pretending max, len = %d\n", cl -> maxlen); + return lw_expr_build(lw_expr_type_int, cl -> maxlen); + } + } + return NULL; } break;