diff options
-rw-r--r-- | runtime/arch/stub_test.cc | 3 |
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", |