summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yi Kong <yikong@google.com> 2018-11-01 03:09:30 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-11-01 03:09:30 +0000
commit0708fc0c096fb4126c2029d0172830cf0c8e159b (patch)
tree27f71278d9dcd4260881e83d05f2893349d42769
parent0b59b54687965f74212198a0de6f0cf41753d0e0 (diff)
parent5c89c5791233f759b8ae093e5cd9f63cef7cf05b (diff)
Merge "Do not clobber reserved register X18"
-rw-r--r--runtime/arch/stub_test.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/arch/stub_test.cc b/runtime/arch/stub_test.cc
index 0cc5535f8e..c9774a7d1b 100644
--- a/runtime/arch/stub_test.cc
+++ b/runtime/arch/stub_test.cc
@@ -309,12 +309,13 @@ class StubTest : public CommonRuntimeTest {
// Use the result from r0
: [arg0] "0"(arg0), [arg1] "r"(arg1), [arg2] "r"(arg2), [code] "r"(code), [self] "r"(self),
[referrer] "r"(referrer), [hidden] "r"(hidden), [fpr_result] "m" (fpr_result)
+ // X18 is a reserved register, cannot be clobbered.
// Leave one register unclobbered, which is needed for compiling with
// -fstack-protector-strong. According to AAPCS64 registers x9-x15 are caller-saved,
// which means we should unclobber one of the callee-saved registers that are unused.
// Here we use x20.
// http://b/72613441, Clang 7.0 asks for one more register, so we do not reserve x21.
- : "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "x19",
+ : "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19",
"x22", "x23", "x24", "x25", "x26", "x27", "x28", "x30",
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
"d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15",