shithub: scc

Download patch

ref: 971c825d05531e609d340225327527040a658f0f
parent: f1cee29eb08319cf970b8777a8fcd57b111bfad5
author: Roberto E. Vargas Caballero <[email protected]>
date: Sat Aug 9 07:43:22 EDT 2014

Fix emition of end of preambule

The saved value of IX was not restored from the stack.

--- a/cc2/cgen.c
+++ b/cc2/cgen.c
@@ -34,8 +34,9 @@
 		       "\tLD\tSP,HL\n", sym->u.f.name, -sym->u.f.stack);
 		return;
 	case EFUN:
-		printf("\tLD\tSP,IX\n"
-		       "\tRET\n");
+		puts("\tLD\tSP,IX\n"
+		     "\tPOP\tIX\n"
+		     "\tRET");
 		return;
 	default:
 		fputs("internal error: incorrect emit\n", stderr);