summary refs log tree commit diff
path: root/lisc
diff options
context:
space:
mode:
Diffstat (limited to 'lisc')
-rw-r--r--lisc/emit.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lisc/emit.c b/lisc/emit.c
index 480b6d0..f3d1537 100644
--- a/lisc/emit.c
+++ b/lisc/emit.c
@@ -295,6 +295,7 @@ Next:
 			break;
 		case RCon:
 			emitcon(&fn->con[ref.val], f);
+			fprintf(f, "(%%rip)");
 			break;
 		case RTmp:
 			assert(isreg(ref));
@@ -384,7 +385,9 @@ emitins(Ins i, Fn *fn, FILE *f)
 		default:
 			diag("emit: invalid call instruction");
 		case RCon:
-			emitf("callq %M0", &i, fn, f);
+			fprintf(f, "callq ");
+			emitcon(&fn->con[i.arg[0].val], f);
+			fprintf(f, "\n");
 			break;
 		case RTmp:
 			emitf("callq *%L0", &i, fn, f);