Mercurial > hg > index.cgi
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 |