diff --git a/ppc64/ppc64asm/decode_test.go b/ppc64/ppc64asm/decode_test.go
index 735cb2f..71f64d6 100644
--- a/ppc64/ppc64asm/decode_test.go
+++ b/ppc64/ppc64asm/decode_test.go
@@ -51,7 +51,7 @@
 			case "gnu":
 				out = GNUSyntax(inst)
 			//case "plan9":
-			//	out = plan9Syntax(inst, 0, nil, nil)
+			//	out = GoSyntax(inst, 0, nil, nil)
 			default:
 				t.Errorf("unknown syntax %q", syntax)
 				continue
diff --git a/ppc64/ppc64asm/ext_test.go b/ppc64/ppc64asm/ext_test.go
index 443326c..01abefb 100644
--- a/ppc64/ppc64asm/ext_test.go
+++ b/ppc64/ppc64asm/ext_test.go
@@ -246,7 +246,7 @@
 		case "gnu":
 			text = GNUSyntax(inst)
 		//case "plan9":
-		//	text = plan9Syntax(inst, 0, nil)
+		//	text = GoSyntax(inst, 0, nil)
 		default:
 			text = "error: unknown syntax " + syntax
 		}
diff --git a/ppc64/ppc64asm/gnu.go b/ppc64/ppc64asm/gnu.go
index 1ea3ab5..63be379 100644
--- a/ppc64/ppc64asm/gnu.go
+++ b/ppc64/ppc64asm/gnu.go
@@ -68,7 +68,7 @@
 	case PCRel:
 		return fmt.Sprintf(".%+#x", int(arg))
 	case Label:
-		return fmt.Sprintf("%#x", int(arg))
+		return fmt.Sprintf("%#x", uint32(arg))
 	case Offset:
 		reg := inst.Args[argIndex+1].(Reg)
 		removeArg(inst, argIndex+1)
diff --git a/ppc64/ppc64asm/objdumpext_test.go b/ppc64/ppc64asm/objdumpext_test.go
index 413a626..64dd274 100644
--- a/ppc64/ppc64asm/objdumpext_test.go
+++ b/ppc64/ppc64asm/objdumpext_test.go
@@ -22,10 +22,10 @@
 const objdumpPath = "/usr/local/bin/powerpc64-unknown-linux-gnu-objdump"
 
 func testObjdump(t *testing.T, generate func(func([]byte))) {
+	if testing.Short() {
+		t.Skip("skipping objdump test in short mode")
+	}
 	if _, err := os.Stat(objdumpPath); err != nil {
-		if !testing.Short() {
-			t.Fatal(err)
-		}
 		t.Skip(err)
 	}
 
diff --git a/ppc64/ppc64asm/plan9.go b/ppc64/ppc64asm/plan9.go
index b0b5270..f9bafb9 100644
--- a/ppc64/ppc64asm/plan9.go
+++ b/ppc64/ppc64asm/plan9.go
@@ -9,14 +9,13 @@
 	"strings"
 )
 
-// plan9Syntax returns the Go assembler syntax for the instruction.
-// The syntax was originally defined by Plan 9.
+// GoSyntax returns the Go assembler syntax for the instruction.
 // The pc is the program counter of the first instruction, used for expanding
 // PC-relative addresses into absolute ones.
 // The symname function queries the symbol table for the program
 // being disassembled. It returns the name and base address of the symbol
 // containing the target, if any; otherwise it returns "", 0.
-func plan9Syntax(inst Inst, pc uint64, symname func(uint64) (string, uint64)) string {
+func GoSyntax(inst Inst, pc uint64, symname func(uint64) (string, uint64)) string {
 	if symname == nil {
 		symname = func(uint64) (string, uint64) { return "", 0 }
 	}
@@ -67,6 +66,7 @@
 		} else if int(inst.Args[0].(Imm))&0x1c == 4 && revCondMap[args[1]] != "" { // jump on cond bit not set
 			return fmt.Sprintf("B%s %s", revCondMap[args[1]], args[2])
 		}
+		return op + " " + strings.Join(args, ", ")
 	case BCCTR:
 		if int(inst.Args[0].(Imm))&20 == 20 { // unconditional
 			return "BR (CTR)"
@@ -80,7 +80,6 @@
 	case BCA, BCL, BCLA, BCLRL, BCTAR, BCTARL:
 		return op + " " + strings.Join(args, ", ")
 	}
-	panic("unreachable")
 }
 
 // plan9Arg formats arg (which is the argIndex's arg in inst) according to Plan 9 rules.
