diff 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
line wrap: on
line diff
--- a/lwasm/pass1.c	Sat Mar 27 22:59:15 2010 -0600
+++ b/lwasm/pass1.c	Sat Mar 27 23:37:30 2010 -0600
@@ -91,15 +91,20 @@
 		else
 		{
 			lw_expr_t te;
+
 			as -> line_tail -> next = cl;
+
+			// set the line address
 			te = lw_expr_build(lw_expr_type_special, lwasm_expr_linelen, cl -> prev);
 			cl -> addr = lw_expr_build(lw_expr_type_oper, lw_expr_oper_plus, cl -> prev -> addr, te);
 			lw_expr_destroy(te);
 			lw_expr_simplify(cl -> addr, as);
+
+			// carry DP value forward
+			cl -> dpval = cl -> prev -> dpval;
 		}
 		as -> line_tail = cl;
 		as -> cl = cl;
-
 		// blank lines don't count for anything
 		// except a local symbol context break
 		if (!*line)