summary refs log tree commit diff
path: root/lisc
diff options
context:
space:
mode:
Diffstat (limited to 'lisc')
-rw-r--r--lisc/isel.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lisc/isel.c b/lisc/isel.c
index 1560d6d..6dc28ea 100644
--- a/lisc/isel.c
+++ b/lisc/isel.c
@@ -141,7 +141,9 @@ sel(Ins i, ANum *an, Fn *fn)
 				vgrow(&fn->mem, ++fn->nmem);
 				fn->mem[fn->nmem-1] = a;
 				i.arg[0] = MEM(fn->nmem-1);
-				an[r0.val].mem = i.arg[0];
+				if (rtype(a.base) != RTmp)
+				if (req(a.index, R))
+					an[r0.val].mem = i.arg[0];
 			} else
 				i.arg[0] = r1;
 		}