From c8c2bb6784d70cdc6e3a75a24fc9d09970a574e4 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Fri, 15 Oct 2021 09:33:09 +0100 Subject: JNI compiler: Rewrite exception polling. Make the slow path explicit in the JNI compiler. Fix the CFI data for the exceptional path of synchronized methods. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: run-gtests.sh Test: testrunner.py --target --optimizing Bug: 172332525 Change-Id: If64965eef15c063e36b78dd8bb6cba5af34ab4fa --- compiler/utils/jni_macro_assembler.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'compiler/utils/jni_macro_assembler.h') diff --git a/compiler/utils/jni_macro_assembler.h b/compiler/utils/jni_macro_assembler.h index a9d9f546e9..5da70c17f1 100644 --- a/compiler/utils/jni_macro_assembler.h +++ b/compiler/utils/jni_macro_assembler.h @@ -243,8 +243,10 @@ class JNIMacroAssembler : public DeletableArenaObject { virtual void CallFromThread(ThreadOffset offset) = 0; // Generate code to check if Thread::Current()->exception_ is non-null - // and branch to a ExceptionSlowPath if it is. - virtual void ExceptionPoll(size_t stack_adjust) = 0; + // and branch to the `label` if it is. + virtual void ExceptionPoll(JNIMacroLabel* label) = 0; + // Deliver pending exception. + virtual void DeliverPendingException() = 0; // Create a new label that can be used with Jump/Bind calls. virtual std::unique_ptr CreateLabel() = 0; -- cgit v1.2.3-59-g8ed1b