shithub: scc

Download patch

ref: 5ce98041ac6706539aac39a2c9e32a43db3e6bd8
parent: 277d04a458bad76df8427891e3b8bfb694a7c238
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Fri Aug 8 15:08:49 EDT 2014

Add emit of end of frame

This is only a stub of the real, but it is good enough now.

--- a/cc2/cc2.h
+++ b/cc2/cc2.h
@@ -55,6 +55,7 @@
 
 #define FUN        0
 #define VAR        1
+#define EFUN       2
 #define AUTO      'A'
 #define REG       'R'
 #define MEM       'T'
--- a/cc2/cgen.c
+++ b/cc2/cgen.c
@@ -33,6 +33,10 @@
 		       "\tADD\tHL,SP\n"
 		       "\tLD\tSP,HL\n", sym->u.f.name, -sym->u.f.stack);
 		return;
+	case EFUN:
+		printf("\tLD\tSP,IX\n"
+		       "\tRET\n");
+		return;
 	default:
 		fputs("internal error: incorrect emit\n", stderr);
 		abort();
@@ -43,6 +47,7 @@
 cgen(Symbol *sym, Node *list[])
 {
 	emit(FUN, sym);
+	emit(EFUN, NULL);
 }
 
 /*
--