Mercurial > hg > index.cgi
comparison lwasm/lwasm.h @ 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 | afd50d6b4113 |
comparison
equal
deleted
inserted
replaced
210:5d969517db74 | 211:6f2e18f1fe67 |
---|---|
154 { | 154 { |
155 lw_expr_t addr; // assembly address of the line | 155 lw_expr_t addr; // assembly address of the line |
156 lw_expr_t daddr; // data address of the line (os9 only) | 156 lw_expr_t daddr; // data address of the line (os9 only) |
157 int len; // the "size" this line occupies (address space wise) (-1 if unknown) | 157 int len; // the "size" this line occupies (address space wise) (-1 if unknown) |
158 int dlen; // the data "size" this line occupies (-1 if unknown) | 158 int dlen; // the data "size" this line occupies (-1 if unknown) |
159 int maxlen; // maximum length; will be zero if not relevant | |
159 int insn; // number of insn in insn table | 160 int insn; // number of insn in insn table |
160 int symset; // set if the line symbol was consumed by the instruction | 161 int symset; // set if the line symbol was consumed by the instruction |
161 char *sym; // symbol, if any, on the line | 162 char *sym; // symbol, if any, on the line |
162 unsigned char *output; // output bytes | 163 unsigned char *output; // output bytes |
163 int outputl; // size of output | 164 int outputl; // size of output |
269 int skipmacro; // are we skipping in a macro? | 270 int skipmacro; // are we skipping in a macro? |
270 int endseen; // have we seen an "end" pseudo? | 271 int endseen; // have we seen an "end" pseudo? |
271 int execaddr; // address from "end" | 272 int execaddr; // address from "end" |
272 int inmod; // inside an os9 module? | 273 int inmod; // inside an os9 module? |
273 int undefzero; // used for handling "condundefzero" | 274 int undefzero; // used for handling "condundefzero" |
275 int pretendmax; // set if we need to pretend the instruction is max length | |
274 unsigned char crc[3]; // crc accumulator | 276 unsigned char crc[3]; // crc accumulator |
275 int badsymerr; // throw error on undef sym if set | 277 int badsymerr; // throw error on undef sym if set |
276 | 278 |
277 line_t *line_head; // start of lines list | 279 line_t *line_head; // start of lines list |
278 line_t *line_tail; // tail of lines list | 280 line_t *line_tail; // tail of lines list |