summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Wilson <cdwilson@google.com> 2022-06-17 21:10:55 +0000
committer Chris Wilson <cdwilson@google.com> 2022-06-17 23:04:28 +0000
commit747bef6e32a6a6613916aa0c8db8ed8614541b00 (patch)
tree8a0ff582f7a1a16d9da828887cf0569b2715a821
parent582eb8bd021164150f1d88a1652e861a6c4a4729 (diff)
Revert "Remove stack protector from some interpreter functions"
Revert submission 2099076-stack-protector-2022 Reason for revert: CTS failures b/236399082 Reverted Changes: Id65d0d96b:Remove stack protector from some interpreter funct... Ia68cd0bf5:Reset stack guard after fork from Zygote Bug: 236399082 Change-Id: Ic32449e4db3fe2499bb5669c6d9c23ad9943f89f
-rw-r--r--libartbase/base/macros.h2
-rw-r--r--runtime/arch/arm/quick_entrypoints_cc_arm.cc3
-rw-r--r--runtime/art_method.cc1
-rw-r--r--runtime/entrypoints/quick/quick_trampoline_entrypoints.cc1
-rw-r--r--runtime/interpreter/interpreter.cc3
-rw-r--r--runtime/interpreter/interpreter_common.cc2
-rw-r--r--runtime/interpreter/interpreter_switch_impl-inl.h1
-rw-r--r--runtime/native/java_lang_reflect_Method.cc1
-rw-r--r--runtime/reflection.h1
9 files changed, 0 insertions, 15 deletions
diff --git a/libartbase/base/macros.h b/libartbase/base/macros.h
index 13e87d770d..eec73cb699 100644
--- a/libartbase/base/macros.h
+++ b/libartbase/base/macros.h
@@ -75,8 +75,6 @@ template<typename T> ART_FRIEND_TEST(test_set_name, individual_test)
#define FLATTEN __attribute__ ((flatten))
#endif
-#define NO_STACK_PROTECTOR __attribute__ ((no_stack_protector))
-
// clang doesn't like attributes on lambda functions. It would be nice to say:
// #define ALWAYS_INLINE_LAMBDA ALWAYS_INLINE
#define ALWAYS_INLINE_LAMBDA
diff --git a/runtime/arch/arm/quick_entrypoints_cc_arm.cc b/runtime/arch/arm/quick_entrypoints_cc_arm.cc
index d7fef6f72e..987b4590b7 100644
--- a/runtime/arch/arm/quick_entrypoints_cc_arm.cc
+++ b/runtime/arch/arm/quick_entrypoints_cc_arm.cc
@@ -25,7 +25,6 @@ extern "C" void art_quick_invoke_stub_internal(ArtMethod*, uint32_t*, uint32_t,
uint32_t*);
template <bool kIsStatic>
-NO_STACK_PROTECTOR
static void quick_invoke_reg_setup(ArtMethod* method, uint32_t* args, uint32_t args_size,
Thread* self, JValue* result, const char* shorty) {
// Note: We do not follow aapcs ABI in quick code for both softfp and hardfp.
@@ -97,7 +96,6 @@ static void quick_invoke_reg_setup(ArtMethod* method, uint32_t* args, uint32_t a
// Called by art::ArtMethod::Invoke to do entry into a non-static method.
// TODO: migrate into an assembly implementation as with ARM64.
-NO_STACK_PROTECTOR
extern "C" void art_quick_invoke_stub(ArtMethod* method, uint32_t* args, uint32_t args_size,
Thread* self, JValue* result, const char* shorty) {
quick_invoke_reg_setup<false>(method, args, args_size, self, result, shorty);
@@ -105,7 +103,6 @@ extern "C" void art_quick_invoke_stub(ArtMethod* method, uint32_t* args, uint32_
// Called by art::ArtMethod::Invoke to do entry into a static method.
// TODO: migrate into an assembly implementation as with ARM64.
-NO_STACK_PROTECTOR
extern "C" void art_quick_invoke_static_stub(ArtMethod* method, uint32_t* args,
uint32_t args_size, Thread* self, JValue* result,
const char* shorty) {
diff --git a/runtime/art_method.cc b/runtime/art_method.cc
index 2b7c23817a..40b7a7b48f 100644
--- a/runtime/art_method.cc
+++ b/runtime/art_method.cc
@@ -310,7 +310,6 @@ uint32_t ArtMethod::FindCatchBlock(Handle<mirror::Class> exception_type,
return found_dex_pc;
}
-NO_STACK_PROTECTOR
void ArtMethod::Invoke(Thread* self, uint32_t* args, uint32_t args_size, JValue* result,
const char* shorty) {
if (UNLIKELY(__builtin_frame_address(0) < self->GetStackEnd())) {
diff --git a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
index 1b7c2cf383..ea6501cb0d 100644
--- a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
+++ b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
@@ -647,7 +647,6 @@ static void HandleDeoptimization(JValue* result,
method_type);
}
-NO_STACK_PROTECTOR
extern "C" uint64_t artQuickToInterpreterBridge(ArtMethod* method, Thread* self, ArtMethod** sp)
REQUIRES_SHARED(Locks::mutator_lock_) {
// Ensure we don't get thread suspension until the object arguments are safely in the shadow
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc
index 8ceade8f07..ffe1dc0426 100644
--- a/runtime/interpreter/interpreter.cc
+++ b/runtime/interpreter/interpreter.cc
@@ -255,7 +255,6 @@ static JValue ExecuteSwitch(Thread* self,
}
}
-NO_STACK_PROTECTOR
static inline JValue Execute(
Thread* self,
const CodeItemDataAccessor& accessor,
@@ -571,7 +570,6 @@ void EnterInterpreterFromDeoptimize(Thread* self,
ret_val->SetJ(value.GetJ());
}
-NO_STACK_PROTECTOR
JValue EnterInterpreterFromEntryPoint(Thread* self, const CodeItemDataAccessor& accessor,
ShadowFrame* shadow_frame) {
DCHECK_EQ(self, Thread::Current());
@@ -588,7 +586,6 @@ JValue EnterInterpreterFromEntryPoint(Thread* self, const CodeItemDataAccessor&
return Execute(self, accessor, *shadow_frame, JValue());
}
-NO_STACK_PROTECTOR
void ArtInterpreterToInterpreterBridge(Thread* self,
const CodeItemDataAccessor& accessor,
ShadowFrame* shadow_frame,
diff --git a/runtime/interpreter/interpreter_common.cc b/runtime/interpreter/interpreter_common.cc
index 4ee4cb5a9f..afba57eff2 100644
--- a/runtime/interpreter/interpreter_common.cc
+++ b/runtime/interpreter/interpreter_common.cc
@@ -254,7 +254,6 @@ ALWAYS_INLINE void CopyRegisters(ShadowFrame& caller_frame,
// END DECLARATIONS.
-NO_STACK_PROTECTOR
void ArtInterpreterToCompiledCodeBridge(Thread* self,
ArtMethod* caller,
ShadowFrame* shadow_frame,
@@ -1411,7 +1410,6 @@ static inline bool DoCallCommon(ArtMethod* called_method,
}
template<bool is_range, bool do_assignability_check>
-NO_STACK_PROTECTOR
bool DoCall(ArtMethod* called_method, Thread* self, ShadowFrame& shadow_frame,
const Instruction* inst, uint16_t inst_data, JValue* result) {
// Argument word count.
diff --git a/runtime/interpreter/interpreter_switch_impl-inl.h b/runtime/interpreter/interpreter_switch_impl-inl.h
index 5e744dc20b..d95c507698 100644
--- a/runtime/interpreter/interpreter_switch_impl-inl.h
+++ b/runtime/interpreter/interpreter_switch_impl-inl.h
@@ -1834,7 +1834,6 @@ DEX_INSTRUCTION_LIST(OPCODE_CASE)
#undef OPCODE_CASE
template<bool do_access_check, bool transaction_active>
-NO_STACK_PROTECTOR
void ExecuteSwitchImplCpp(SwitchImplContext* ctx) {
Thread* self = ctx->self;
const CodeItemDataAccessor& accessor = ctx->accessor;
diff --git a/runtime/native/java_lang_reflect_Method.cc b/runtime/native/java_lang_reflect_Method.cc
index 706f1a61ba..2c0dd806e1 100644
--- a/runtime/native/java_lang_reflect_Method.cc
+++ b/runtime/native/java_lang_reflect_Method.cc
@@ -80,7 +80,6 @@ static jobjectArray Method_getExceptionTypes(JNIEnv* env, jobject javaMethod) {
}
}
-NO_STACK_PROTECTOR
static jobject Method_invoke(JNIEnv* env, jobject javaMethod, jobject javaReceiver,
jobjectArray javaArgs) {
ScopedFastNativeObjectAccess soa(env);
diff --git a/runtime/reflection.h b/runtime/reflection.h
index 13dc8e1466..b0e27da321 100644
--- a/runtime/reflection.h
+++ b/runtime/reflection.h
@@ -99,7 +99,6 @@ JValue InvokeVirtualOrInterfaceWithVarArgs(const ScopedObjectAccessAlreadyRunnab
// num_frames is number of frames we look up for access check.
template<PointerSize pointer_size>
-NO_STACK_PROTECTOR
jobject InvokeMethod(const ScopedObjectAccessAlreadyRunnable& soa,
jobject method,
jobject receiver,