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 {