From 65f6d5482fd0dd47599dd0575a64ba57e88d4652 Mon Sep 17 00:00:00 2001 From: Michael Hudson-Doyle Date: Thu, 20 Sep 2018 09:20:31 +0200 Subject: [PATCH] arm64/arm64asm: recognise new ssbb/pssbb mnemonics from objdump Fixes golang/go#27754 Change-Id: I8fcc3bc3c718cf0d93afbd1d383df48316b522d4 Reviewed-on: https://go-review.googlesource.com/136455 Run-TryBot: Michael Hudson-Doyle TryBot-Result: Gobot Gobot Reviewed-by: Cherry Zhang --- .../golang.org/x/arch/arm64/arm64asm/objdump_test.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/cmd/vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go b/src/cmd/vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go index 261c7cae..3baf8a19 100644 --- a/src/cmd/vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go +++ b/src/cmd/vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go @@ -103,6 +103,13 @@ func allowedMismatchObjdump(text string, inst *Inst, dec ExtInst) bool { return true } } + // New objdump supports some newer mnemonics than this package. This + // package should be updated to support the new mnemonics and the sense + // of this reversed to continue passing with older objdumps but that + // requires internal ARM tooling. + if newForm, ok := newMnemonics[text]; ok && newForm == dec.text { + return true + } // GNU objdump misses spaces between operands for some instructions (e.g., "ld1 {v10.2s, v11.2s}, [x23],#16") if strings.Replace(text, " ", "", -1) == strings.Replace(dec.text, " ", "", -1) { return true @@ -148,3 +155,8 @@ var oldObjdumpMismatch = map[string]string{ "strh": "sturh", "prfm": "prfum", } + +var newMnemonics = map[string]string{ + "dsb #0x00": "ssbb", + "dsb #0x04": "pssbb", +}