diff options
Diffstat (limited to 'runtime/arch/arm64/quick_entrypoints_arm64.S')
-rw-r--r-- | runtime/arch/arm64/quick_entrypoints_arm64.S | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S index 62ae099..ab9035a 100644 --- a/runtime/arch/arm64/quick_entrypoints_arm64.S +++ b/runtime/arch/arm64/quick_entrypoints_arm64.S @@ -435,31 +435,6 @@ NO_ARG_RUNTIME_EXCEPTION art_quick_throw_stack_overflow, artThrowStackOverflowFr */ ONE_ARG_RUNTIME_EXCEPTION art_quick_throw_no_such_method, artThrowNoSuchMethodFromCode - /* - * Invoke stack overflow exception from signal handler. - * On entry: - * xSELF: thread - * SP: address of last known frame - * IP0: address of next valid SP below protected region in stack - * - * This is deceptively simple but hides some complexity. It is called in the case of - * a stack overflow condition during implicit checks. The signal handler has been - * called by the kernel due to a load from the protected stack region. The handler - * works out the address of the previous frame and passes this in SP. However there - * is a piece of memory somewhere below the current SP that is not accessible (the - * memory that caused the signal). The signal handler works out the next - * accessible value of SP and passes this in x16/IP0. This code then sets up the SP - * to be this new value and calls the code to create and throw the stack overflow - * exception. - */ -ENTRY art_quick_throw_stack_overflow_from_signal - SETUP_SAVE_ALL_CALLEE_SAVE_FRAME // save all registers as basis for long jump context - mov x0, xSELF // pass Thread::Current - mov x1, sp // pass SP - mov sp, xIP0 // move SP down to below protected region. - b artThrowStackOverflowFromCode // artThrowStackOverflowFromCode(Thread*, SP) -END art_quick_throw_stack_overflow_from_signal - /* * All generated callsites for interface invokes and invocation slow paths will load arguments * as usual - except instead of loading arg0/x0 with the target Method*, arg0/x0 will contain |