]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix breakpoint in ppc64x
authorAlejandro Sáez <asm@redhat.com>
Mon, 23 May 2022 12:07:47 +0000 (12:07 +0000)
committerPaul Murphy <murp@ibm.com>
Mon, 6 Jun 2022 16:04:48 +0000 (16:04 +0000)
Currently runtime.Breakpoint generates a SIGSEGV in ppc64.
The solution is an unconditional trap similar to what clang and gcc do. It is documented in the section C.6 of the ABI Book 3.

Fixes #52101

Change-Id: I071d2f2679b695ef268445b04c9222bd74e1f9af
GitHub-Last-Rev: fff4e5e8ffe23bf0cef135b22abd2cc0a3838613
GitHub-Pull-Request: golang/go#52102
Reviewed-on: https://go-review.googlesource.com/c/go/+/397554
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Paul Murphy <murp@ibm.com>
Run-TryBot: Paul Murphy <murp@ibm.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/runtime/asm_ppc64x.s

index ec17dc9ce355e8053cf019e26479ea09338d564a..c6bcf82ec06f33c9b471e486ac42d135a285532c 100644 (file)
@@ -106,7 +106,7 @@ DATA        runtime·mainPC+0(SB)/8,$runtime·main<ABIInternal>(SB)
 GLOBL  runtime·mainPC(SB),RODATA,$8
 
 TEXT runtime·breakpoint(SB),NOSPLIT|NOFRAME,$0-0
-       MOVD    R0, 0(R0) // TODO: TD
+       TW      $31, R0, R0
        RET
 
 TEXT runtime·asminit(SB),NOSPLIT|NOFRAME,$0-0