Fix art_quick_instrumentation_entry stub for x86/x86_64
Fixes bad stack offset for x86 where we read the return pc from an
incorrect location.
Fixes bad register for x86_64. The return pc is the 4th argument of
the called C function. It must be passed in rcx instead of r8 (which
is used for 5th argument).
Bug: 18170596
Change-Id: Idb521d2f6da415448fa61acf8b7d21076822830f
diff --git a/runtime/arch/x86/quick_entrypoints_x86.S b/runtime/arch/x86/quick_entrypoints_x86.S
index 69527ce..d471c67 100644
--- a/runtime/arch/x86/quick_entrypoints_x86.S
+++ b/runtime/arch/x86/quick_entrypoints_x86.S
@@ -1116,7 +1116,7 @@
PUSH eax // Save eax which will be clobbered by the callee-save method.
subl LITERAL(12), %esp // Align stack.
CFI_ADJUST_CFA_OFFSET(12)
- pushl 40(%esp) // Pass LR.
+ pushl FRAME_SIZE_REFS_AND_ARGS_CALLEE_SAVE-4+16(%esp) // Pass LR.
CFI_ADJUST_CFA_OFFSET(4)
pushl %fs:THREAD_SELF_OFFSET // Pass Thread::Current().
CFI_ADJUST_CFA_OFFSET(4)