Mercurial > hg > index.cgi
comparison 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 |
comparison
equal
deleted
inserted
replaced
210:5d969517db74 | 211:6f2e18f1fe67 |
---|---|
123 break; | 123 break; |
124 | 124 |
125 case lwasm_expr_linelen: | 125 case lwasm_expr_linelen: |
126 { | 126 { |
127 line_t *cl = ptr; | 127 line_t *cl = ptr; |
128 if (cl -> len == -1) | 128 if (cl -> len != -1) |
129 return NULL; | 129 return lw_expr_build(lw_expr_type_int, cl -> len); |
130 return lw_expr_build(lw_expr_type_int, cl -> len); | 130 |
131 if (cl -> as -> pretendmax) | |
132 { | |
133 if (cl -> maxlen != 0) | |
134 { | |
135 fprintf(stderr, "Pretending max, len = %d\n", cl -> maxlen); | |
136 return lw_expr_build(lw_expr_type_int, cl -> maxlen); | |
137 } | |
138 } | |
139 return NULL; | |
131 } | 140 } |
132 break; | 141 break; |
133 | 142 |
134 case lwasm_expr_linedaddr: | 143 case lwasm_expr_linedaddr: |
135 { | 144 { |