Mercurial > hg-old > index.cgi
comparison lwasm/main.c @ 385:cf8c92d70eb1
Various bugfixes
author | lost@starbug |
---|---|
date | Sun, 16 May 2010 11:50:00 -0600 |
parents | 38b50ce6967a |
children | a741d2e4869f |
comparison
equal
deleted
inserted
replaced
384:38b50ce6967a | 385:cf8c92d70eb1 |
---|---|
182 | 182 |
183 struct passlist_s | 183 struct passlist_s |
184 { | 184 { |
185 char *passname; | 185 char *passname; |
186 void (*fn)(asmstate_t *as); | 186 void (*fn)(asmstate_t *as); |
187 int fordep; | |
187 } passlist[] = { | 188 } passlist[] = { |
188 { "parse", do_pass1 }, | 189 { "parse", do_pass1, 1 }, |
189 { "symcheck", do_pass2 }, | 190 { "symcheck", do_pass2 }, |
190 { "resolve1", do_pass3 }, | 191 { "resolve1", do_pass3 }, |
191 { "resolve2", do_pass4 }, | 192 { "resolve2", do_pass4 }, |
192 { "addressresolve", do_pass5 }, | 193 { "addressresolve", do_pass5 }, |
193 { "finalize", do_pass6 }, | 194 { "finalize", do_pass6 }, |
223 | 224 |
224 input_init(&asmstate); | 225 input_init(&asmstate); |
225 | 226 |
226 for (passnum = 0; passlist[passnum].fn; passnum++) | 227 for (passnum = 0; passlist[passnum].fn; passnum++) |
227 { | 228 { |
229 if ((asmstate.flags & FLAG_DEPEND) && passlist[passnum].fordep == 0) | |
230 continue; | |
228 debug_message(&asmstate, 50, "Doing pass %d (%s)\n", passnum, passlist[passnum].passname); | 231 debug_message(&asmstate, 50, "Doing pass %d (%s)\n", passnum, passlist[passnum].passname); |
229 (passlist[passnum].fn)(&asmstate); | 232 (passlist[passnum].fn)(&asmstate); |
230 debug_message(&asmstate, 50, "After pass %d (%s)\n", passnum, passlist[passnum].passname); | 233 debug_message(&asmstate, 50, "After pass %d (%s)\n", passnum, passlist[passnum].passname); |
231 dump_state(&asmstate); | 234 dump_state(&asmstate); |
232 | 235 |