summary refs log tree commit diff
path: root/lisc
diff options
context:
space:
mode:
Diffstat (limited to 'lisc')
-rw-r--r--lisc/emit.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lisc/emit.c b/lisc/emit.c
index 535bf18..7b15229 100644
--- a/lisc/emit.c
+++ b/lisc/emit.c
@@ -80,9 +80,11 @@ Next:
 			fprintf(f, "%%%s", rsub[ref.val][ty]);
 			break;
 		case RSlot:
-		Slot:
-			fprintf(f, "%d(%%rbp)", -4 * ref.val);
+		Slot: {
+			struct { int i:14; } x = {ref.val}; /* fixme, HACK */
+			fprintf(f, "%d(%%rbp)", -4 * x.i);
 			break;
+		}
 		case RCon:
 			fputc('$', f);
 		Con: