Mercurial > hg-old > index.cgi
diff lwasm/pass1.c @ 383:848d3cca8078
Fixed imm8 to actually use expression and also fixed gen mode to respect > and <
author | lost@starbug |
---|---|
date | Sat, 15 May 2010 20:01:58 -0600 |
parents | eacdae8a1575 |
children | cf8c92d70eb1 |
line wrap: on
line diff
--- a/lwasm/pass1.c Sat May 15 13:39:21 2010 -0600 +++ b/lwasm/pass1.c Sat May 15 20:01:58 2010 -0600 @@ -53,7 +53,7 @@ int stspace; char *tok, *sym; int opnum; - + int lc = 1; for (;;) { sym = NULL; @@ -74,6 +74,7 @@ as -> context = strtol(p1, NULL, 10); } lw_free(line); + lc = 1; continue; } debug_message(as, 75, "Read line: %s", line); @@ -81,6 +82,7 @@ cl = lw_alloc(sizeof(line_t)); memset(cl, 0, sizeof(line_t)); cl -> outputl = -1; + cl -> linespec = lw_strdup(input_curspec(as)); cl -> prev = as -> line_tail; cl -> insn = -1; cl -> as = as; @@ -98,6 +100,7 @@ { lw_expr_t te; + cl -> lineno = as -> line_tail -> lineno + 1; as -> line_tail -> next = cl; // set the line address @@ -108,6 +111,14 @@ // carry DP value forward cl -> dpval = cl -> prev -> dpval; + + } + if (!lc && strcmp(cl -> linespec, cl -> prev -> linespec)) + lc = 1; + if (lc) + { + cl -> lineno = 1; + lc = 0; } as -> line_tail = cl; as -> cl = cl;