summary refs log tree commit diff
path: root/lisc/emit.c
diff options
context:
space:
mode:
Diffstat (limited to 'lisc/emit.c')
-rw-r--r--lisc/emit.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lisc/emit.c b/lisc/emit.c
index d5b1e80..00bce4b 100644
--- a/lisc/emit.c
+++ b/lisc/emit.c
@@ -173,6 +173,8 @@ eins(Ins i, Fn *fn, FILE *f)
 		eop(otoa[i.op], i.arg[1], i.to, fn, f);
 		break;
 	case OCopy:
+		if (req(i.to, R))
+			break;
 		if (i.to.val < EAX && rtype(i.arg[0]) == RCon) {
 			val = fn->con[i.arg[0].val].val;
 			if (0 <= val && val <= UINT32_MAX) {