6g code gen bug

R=rsc
https://golang.org/cl/166052
diff --git a/src/cmd/6g/ggen.c b/src/cmd/6g/ggen.c
index cf56148..5b42d0f 100644
--- a/src/cmd/6g/ggen.c
+++ b/src/cmd/6g/ggen.c
@@ -80,8 +80,9 @@
 	pc->as = ARET;	// overwrite AEND
 	pc->lineno = lineno;
 
-	if(!debug['N'] || debug['R'] || debug['P'])
+	if(!debug['N'] || debug['R'] || debug['P']) {
 		regopt(ptxt);
+	}
 
 	// fill in argument size
 	ptxt->to.offset = rnd(curfn->type->argwid, maxround);
diff --git a/src/cmd/8g/ggen.c b/src/cmd/8g/ggen.c
index 8ec8d9b..2e88372 100644
--- a/src/cmd/8g/ggen.c
+++ b/src/cmd/8g/ggen.c
@@ -80,7 +80,6 @@
 	pc->as = ARET;	// overwrite AEND
 	pc->lineno = lineno;
 
-if(0)
 	if(!debug['N'] || debug['R'] || debug['P']) {
 		regopt(ptxt);
 	}
@@ -470,15 +469,10 @@
 	}
 
 hard:
-	if(nr->ullman > nl->ullman) {
-		tempname(&n2, nr->type);
-		cgen(nr, &n2);
-		igen(nl, &n1, N);
-	} else {
-		igen(nl, &n1, N);
-		tempname(&n2, nr->type);
-		cgen(nr, &n2);
-	}
+	tempname(&n2, nr->type);
+	cgen(nr, &n2);
+
+	igen(nl, &n1, N);
 
 	n3 = *n;
 	n3.left = &n1;