]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: correct sigfwd on openbsd/mips64
authorJoel Sing <joel@sing.id.au>
Mon, 7 Dec 2020 17:21:33 +0000 (04:21 +1100)
committerJoel Sing <joel@sing.id.au>
Tue, 8 Dec 2020 01:46:45 +0000 (01:46 +0000)
Position independent code expects that R25 (aka $t9) contains the address of the
called function. As such, use R25 when calling from sigfwd.

Change-Id: I66b2b9bfa1f1bb983c7385eb2eaa19d9cd87d9fb
Reviewed-on: https://go-review.googlesource.com/c/go/+/275893
Trust: Joel Sing <joel@sing.id.au>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/runtime/sys_openbsd_mips64.s

index 57a5dbd40e5244a8e29501b42b4d3fc7dbaebef3..3e4d209081c6402b8a39cd9ba0493140b262ff5f 100644 (file)
@@ -244,8 +244,8 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
        MOVW    sig+8(FP), R4
        MOVV    info+16(FP), R5
        MOVV    ctx+24(FP), R6
-       MOVV    fn+0(FP), R7
-       CALL    (R7)                    // Alignment for ELF ABI?
+       MOVV    fn+0(FP), R25           // Must use R25, needed for PIC code.
+       CALL    (R25)
        RET
 
 TEXT runtime·sigtramp(SB),NOSPLIT,$192