• Austin Clements's avatar
    runtime: save r11 in ARM addmoduledata · 87a51a07
    Austin Clements authored
    R11 is callee-save in the C ABI, but the temporary register in the Go
    ABI. Currently it's being clobbered by runtime.addmoduledata, which
    has to follow the C ABI. The observed effect of this was that
    dl_open_worker was returning to a bad PC because after it failed to
    restore its SP because it was using R11 as a frame pointer.
    
    Fix this by saving R11 around addmoduledata.
    
    Fixes #19674.
    
    Change-Id: Iaacbcc76809a3aa536e9897770831dcbcb6c8245
    Reviewed-on: https://go-review.googlesource.com/47831
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarCherry Zhang <cherryyz@google.com>
    87a51a07
asm_arm.s 25.4 KB