summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-10-25 14:27:22 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-10-30 13:20:42 -0400
commit10ef1c132b05593236fc64432f3b9d9849aa5177 (patch)
tree025a601443bcfe77f09bc92bb4f273d0ed6ae5e4
parent486915f50140c253ad649bf5ac2f3eef0a0464b6 (diff)
downloadroux-10ef1c132b05593236fc64432f3b9d9849aa5177.tar.gz
store constant addresses in Mem.offset
-rw-r--r--lisc/isel.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/lisc/isel.c b/lisc/isel.c
index 6dc28ea..c287a8f 100644
--- a/lisc/isel.c
+++ b/lisc/isel.c
@@ -736,16 +736,6 @@ amatch(Addr *a, Ref r, ANum *ai, Fn *fn, int top)
 	switch (ai[r.val].n) {
 	default:
 		diag("isel: amatch defaulted");
-	case 2:
-		amatch(a, al, ai, fn, 0);
-		amatch(a, ar, ai, fn, 0);
-		if (top) {
-			vgrow(&fn->con, ++fn->ncon);
-			fn->con[fn->ncon-1] = a->offset;
-			a->offset.type = CUndef;
-			a->base = CON(fn->ncon-1);
-		}
-		break;
 	case 3: /* s * i */
 		if (!top) {
 			a->index = al;
@@ -774,6 +764,7 @@ amatch(Addr *a, Ref r, ANum *ai, Fn *fn, int top)
 			r = SLOT(s);
 		a->base = r;
 		break;
+	case 2: /* constants */
 	case 5: /* o + s * i */
 	case 6: /* o + b + s * i */
 		amatch(a, ar, ai, fn, 0);