comparison lwasm/lwasm.h @ 210:5d969517db74

Added condundefzero pragma Added pragma condundefzero to allow the assembler to treat symbols that are undefined in a conditional expression as if their value had been set to zero.
author William Astle <lost@l-w.ca>
date Sat, 09 Jun 2012 16:25:19 -0600
parents 52d9dd71f555
children 6f2e18f1fe67
comparison
equal deleted inserted replaced
209:52d9dd71f555 210:5d969517db74
82 PRAGMA_PCASPCR = 0x0020, // treats ,PC as ,PCR instead of constant offset 82 PRAGMA_PCASPCR = 0x0020, // treats ,PC as ,PCR instead of constant offset
83 PRAGMA_SHADOW = 0x0040, // allow macros to shadow builtin operations 83 PRAGMA_SHADOW = 0x0040, // allow macros to shadow builtin operations
84 PRAGMA_NOLIST = 0x0080, // don't show line in listing 84 PRAGMA_NOLIST = 0x0080, // don't show line in listing
85 PRAGMA_AUTOBRANCHLENGTH = 0x0100, // automatically select proper length for relative branches 85 PRAGMA_AUTOBRANCHLENGTH = 0x0100, // automatically select proper length for relative branches
86 PRAGMA_EXPORT = 0x0200, // export symbols by default, unless local 86 PRAGMA_EXPORT = 0x0200, // export symbols by default, unless local
87 PRAGMA_SYMBOLNOCASE = 0x400 // symbols defined under this pragma are matched case insensitively 87 PRAGMA_SYMBOLNOCASE = 0x400, // symbols defined under this pragma are matched case insensitively
88 PRAGMA_CONDUNDEFZERO = 0x800 // treat undefined symbols as zero in conditionals during pass 1
88 }; 89 };
89 90
90 91
91 enum 92 enum
92 { 93 {
267 int skipcount; // depth of "skipping" 268 int skipcount; // depth of "skipping"
268 int skipmacro; // are we skipping in a macro? 269 int skipmacro; // are we skipping in a macro?
269 int endseen; // have we seen an "end" pseudo? 270 int endseen; // have we seen an "end" pseudo?
270 int execaddr; // address from "end" 271 int execaddr; // address from "end"
271 int inmod; // inside an os9 module? 272 int inmod; // inside an os9 module?
273 int undefzero; // used for handling "condundefzero"
272 unsigned char crc[3]; // crc accumulator 274 unsigned char crc[3]; // crc accumulator
273 int badsymerr; // throw error on undef sym if set 275 int badsymerr; // throw error on undef sym if set
274 276
275 line_t *line_head; // start of lines list 277 line_t *line_head; // start of lines list
276 line_t *line_tail; // tail of lines list 278 line_t *line_tail; // tail of lines list