Fix art_quick_instrumentation_exit for ARM64

Stores the integer result in x0 into the stack. Also avoids clobbering integer
result in x0 by setting it to xSELF after copying it to x2 when calling the
artInstrumentationMethodExitFromCode function.

Bug: 15690361
Change-Id: I9fb873cf32f194779f299607dda8a7316a99c528
diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S
index 4ede453..2e60b93 100644
--- a/runtime/arch/arm64/quick_entrypoints_arm64.S
+++ b/runtime/arch/arm64/quick_entrypoints_arm64.S
@@ -1615,14 +1615,14 @@
     // we would need to fully restore it. As there are a lot of callee-save registers, it seems
     // easier to have an extra small stack area.
 
-    str x19, [sp, #-16]!      // Save integer result.
+    str x0, [sp, #-16]!       // Save integer result.
     .cfi_adjust_cfa_offset 16
     str d0,  [sp, #8]         // Save floating-point result.
 
-    mov   x0, xSELF           // Pass Thread.
     add   x1, sp, #16         // Pass SP.
     mov   x2, x0              // Pass integer result.
     fmov  x3, d0              // Pass floating-point result.
+    mov   x0, xSELF           // Pass Thread.
     bl   artInstrumentationMethodExitFromCode    // (Thread*, SP, gpr_res, fpr_res)
 
     mov   x9, x0              // Return address from instrumentation call.