Mercurial > hg-old > index.cgi
comparison lwasm/pass1.c @ 351:4dba8c7e242c
conditional pseudo ops added
author | lost@starbug |
---|---|
date | Sat, 27 Mar 2010 23:37:30 -0600 |
parents | 1649bc7bda5a |
children | 60568b123281 |
comparison
equal
deleted
inserted
replaced
350:f5666775d76f | 351:4dba8c7e242c |
---|---|
89 cl -> addr = lw_expr_build(lw_expr_type_int, 0); | 89 cl -> addr = lw_expr_build(lw_expr_type_int, 0); |
90 } | 90 } |
91 else | 91 else |
92 { | 92 { |
93 lw_expr_t te; | 93 lw_expr_t te; |
94 | |
94 as -> line_tail -> next = cl; | 95 as -> line_tail -> next = cl; |
96 | |
97 // set the line address | |
95 te = lw_expr_build(lw_expr_type_special, lwasm_expr_linelen, cl -> prev); | 98 te = lw_expr_build(lw_expr_type_special, lwasm_expr_linelen, cl -> prev); |
96 cl -> addr = lw_expr_build(lw_expr_type_oper, lw_expr_oper_plus, cl -> prev -> addr, te); | 99 cl -> addr = lw_expr_build(lw_expr_type_oper, lw_expr_oper_plus, cl -> prev -> addr, te); |
97 lw_expr_destroy(te); | 100 lw_expr_destroy(te); |
98 lw_expr_simplify(cl -> addr, as); | 101 lw_expr_simplify(cl -> addr, as); |
102 | |
103 // carry DP value forward | |
104 cl -> dpval = cl -> prev -> dpval; | |
99 } | 105 } |
100 as -> line_tail = cl; | 106 as -> line_tail = cl; |
101 as -> cl = cl; | 107 as -> cl = cl; |
102 | |
103 // blank lines don't count for anything | 108 // blank lines don't count for anything |
104 // except a local symbol context break | 109 // except a local symbol context break |
105 if (!*line) | 110 if (!*line) |
106 { | 111 { |
107 as -> context = lwasm_next_context(as); | 112 as -> context = lwasm_next_context(as); |