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