summary refs log tree commit diff
path: root/lisc/isel.c
diff options
context:
space:
mode:
Diffstat (limited to 'lisc/isel.c')
-rw-r--r--lisc/isel.c21
1 files changed, 1 insertions, 20 deletions
diff --git a/lisc/isel.c b/lisc/isel.c
index 30c9b1f..05f5f6e 100644
--- a/lisc/isel.c
+++ b/lisc/isel.c
@@ -115,34 +115,15 @@ sel(Ins i, Fn *fn)
 	case OAdd:
 	case OSub:
 	case OCopy:
-		emit(i.op, i.to, i.arg[0], i.arg[1]);
-		break;
 	case OStore:
 	case OStoreb:
 	case OStores:
-		r0 = i.arg[0];
-		goto Load;
 	case OLoad:
 	case OLoadss:
 	case OLoadus:
 	case OLoadsb:
 	case OLoadub:
-		r0 = i.arg[0];
-		if (rtype(r0) == RCon) {
-			t =  newtmp(TLong, fn);
-			r0 = TMP(t);
-		}
-	Load:
-		r1 = i.arg[1];
-		if (rtype(r1) == RCon) {
-			t = newtmp(TLong, fn);
-			r1 = TMP(t);
-		}
-		emit(i.op, i.to, r0, r1);
-		if (!req(r0, i.arg[0]))
-			emit(OCopy, r0, i.arg[0], R);
-		if (!req(r1, i.arg[1]))
-			emit(OCopy, r1, i.arg[1], R);
+		emit(i.op, i.to, i.arg[0], i.arg[1]);
 		break;
 	case ONop:
 		break;