cmd/internal/gc: show register dump before crashing on register left allocated

If you are using -h to get a stack trace at the site of the failure,
Yyerror will never return. Dump the register allocation sites
before calling Yyerror.

Change-Id: I51266c03e06cb5084c2eaa89b367b9ed85ba286a
Reviewed-on: https://go-review.googlesource.com/9788
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Dave Cheney <dave@cheney.net>
diff --git a/src/cmd/internal/gc/gsubr.go b/src/cmd/internal/gc/gsubr.go
index 9b75bb6..93e4852 100644
--- a/src/cmd/internal/gc/gsubr.go
+++ b/src/cmd/internal/gc/gsubr.go
@@ -625,20 +625,20 @@
 	for r := Thearch.REGMIN; r <= Thearch.REGMAX; r++ {
 		n := reg[r-Thearch.REGMIN]
 		if n != 0 {
-			Yyerror("reg %v left allocated", obj.Rconv(r))
 			if Debug['v'] != 0 {
 				Regdump()
 			}
+			Yyerror("reg %v left allocated", obj.Rconv(r))
 		}
 	}
 
 	for r := Thearch.FREGMIN; r <= Thearch.FREGMAX; r++ {
 		n := reg[r-Thearch.REGMIN]
 		if n != 0 {
-			Yyerror("reg %v left allocated", obj.Rconv(r))
 			if Debug['v'] != 0 {
 				Regdump()
 			}
+			Yyerror("reg %v left allocated", obj.Rconv(r))
 		}
 	}
 }