floating point

SVN=121607
diff --git a/src/cmd/6g/cgen.c b/src/cmd/6g/cgen.c
index 16d8fef..a103a0f 100644
--- a/src/cmd/6g/cgen.c
+++ b/src/cmd/6g/cgen.c
@@ -14,7 +14,7 @@
 	Prog *p1, *p2, *p3;
 
 	if(debug['g']) {
-		dump("\ncgen-l", res);
+		dump("\ncgen-res", res);
 		dump("cgen-r", n);
 	}
 	if(n == N || n->type == T)
@@ -441,9 +441,9 @@
 bgen(Node *n, int true, Prog *to)
 {
 	long lno;
-	int et, a, b;
+	int et, a;
 	Node *nl, *nr, *r;
-	Node n1, n2, tmp;
+	Node n1, n2;
 	Prog *p1, *p2;
 
 	if(n == N)
@@ -560,48 +560,17 @@
 		}
 		a = optoas(a, nr->type);
 
-		if(nr->addable) {
-			regalloc(&n1, nl->type, N);
-			cgen(nl, &n1);
-			b = optoas(OCMP, nr->type);
-
-			switch(b) {
-			case ACMPQ:
-				if(nr->op == OLITERAL)
-				if(nr->val.vval >= (1LL<<32))
-					goto dolit;
-
-			case AUCOMISS:
-				if(nr->op == OLITERAL)
-					goto dolit;
-				if(nr->op == ONAME)
-					goto dolit;
-			}
-
-			gins(b, &n1, nr);
-			patch(gbranch(a, nr->type), to);
-			regfree(&n1);
-			break;
-
-		dolit:
-			regalloc(&n2, nr->type, N);
-			cgen(nr, &n2);
-			gins(b, &n1, &n2);
-			patch(gbranch(a, nr->type), to);
-			regfree(&n2);
-			regfree(&n1);
-			break;
-		}
-
-		tempname(&tmp, nr->type);
-		cgen(nr, &tmp);
-
 		regalloc(&n1, nl->type, N);
 		cgen(nl, &n1);
 
-		gins(optoas(OCMP, nr->type), &n1, &tmp);
+		regalloc(&n2, nr->type, N);
+		cgen(nr, &n2);
+
+		gins(optoas(OCMP, nr->type), &n1, &n2);
 		patch(gbranch(a, nr->type), to);
+
 		regfree(&n1);
+		regfree(&n2);
 		break;
 	}
 	goto ret;