mirror of
https://github.com/chromium/crashpad.git
synced 2025-01-14 01:08:01 +08:00
aarch64: Use xzr instead of x31 in the ASM code
Officially, register X31 does not exist. The code is zeroing out a location and thus actually needs XZR. LLVM seems to automatically translate X31 into XZR when compiling the code, but GCC (tested 7.3.0) refuses to accept the instruction: ../../third_party/crashpad/crashpad/util/misc/capture_context_linux.S: Assembler messages: ../../third_party/crashpad/crashpad/util/misc/capture_context_linux.S:291: Error: operand 1 must be an integer register -- `str x31,[x0,#0xb0]' Bug: chromium:819294 Change-Id: I85be3923ac56fca6e3ec59d7e22b2223cfc8fa63 Reviewed-on: https://chromium-review.googlesource.com/1078818 Reviewed-by: Joshua Peraza <jperaza@chromium.org> Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
This commit is contained in:
parent
5c49c59847
commit
26ef5c910f
1
AUTHORS
1
AUTHORS
@ -7,6 +7,7 @@
|
||||
# The email address is not required for organizations.
|
||||
|
||||
Google Inc.
|
||||
Intel Corporation
|
||||
Opera Software ASA
|
||||
Vewd Software AS
|
||||
LG Electronics, Inc.
|
||||
|
@ -291,7 +291,7 @@ CAPTURECONTEXT_SYMBOL2:
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
// Zero out fault_address, which is unused.
|
||||
str x31, [x0, #0xb0] // context->uc_mcontext.fault_address
|
||||
str xzr, [x0, #0xb0] // context->uc_mcontext.fault_address
|
||||
|
||||
// Save general purpose registers in context->uc_mcontext.regs[i].
|
||||
// The original x0 can't be recovered.
|
||||
|
Loading…
x
Reference in New Issue
Block a user