From 20e7d600cdcba4b1ab2f4e01e14903d641fbc073 Mon Sep 17 00:00:00 2001 From: Sebastien Hertz Date: Thu, 12 Mar 2015 15:10:50 +0100 Subject: [PATCH] Fix art_quick_instrumentation_exit stub for x86_64 Restores callee-saved registers. Bug: 19708384 Change-Id: I1cb47b1cc616af613816c4ee041bdfc975bf9f20 --- runtime/arch/x86_64/quick_entrypoints_x86_64.S | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/runtime/arch/x86_64/quick_entrypoints_x86_64.S b/runtime/arch/x86_64/quick_entrypoints_x86_64.S index 65c65e2b7..0f874a49e 100644 --- a/runtime/arch/x86_64/quick_entrypoints_x86_64.S +++ b/runtime/arch/x86_64/quick_entrypoints_x86_64.S @@ -1551,7 +1551,9 @@ DEFINE_FUNCTION art_quick_instrumentation_exit CFI_ADJUST_CFA_OFFSET(-8) POP rax // Restore integer result. - addq LITERAL(FRAME_SIZE_REFS_ONLY_CALLEE_SAVE), %rsp // Drop save frame and fake return pc. + RESTORE_REFS_ONLY_CALLEE_SAVE_FRAME + + addq LITERAL(8), %rsp // Drop fake return pc. jmp *%rdi // Return. END_FUNCTION art_quick_instrumentation_exit -- 2.11.0