OSDN Git Service

[MIPS64] Fix art_quick_invoke_stub argument offsets.
authorNikola Veljkovic <Nikola.Veljkovic@imgtec.com>
Tue, 2 Jun 2015 15:27:53 +0000 (17:27 +0200)
committerAndreas Gampe <agampe@google.com>
Tue, 2 Jun 2015 15:38:38 +0000 (15:38 +0000)
ArtMethod reference's size got bigger, so we need to move other args
and leave enough space for ArtMethod* and 'this' pointer.

This fixes mips64 boot.

Bug: 19264997
Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab

runtime/arch/mips64/quick_entrypoints_mips64.S

index c62e035..04385a2 100644 (file)
@@ -649,7 +649,7 @@ ENTRY_NO_GP art_quick_invoke_stub
     daddiu $t0, $a5, 1           # t0 = shorty[1] (skip 1 for return type)
     daddiu $t1, $a1, 4           # t1 = ptr to arg_array[4] (skip this ptr)
     daddiu $t2, $a2, -4          # t2 = number of argument bytes remain (skip this ptr)
-    daddiu $v0, $sp,           # v0 points to where to copy arg_array
+    daddiu $v0, $sp, 12          # v0 points to where to copy arg_array
     LOOP_OVER_SHORTY_LOADING_REG a2, f14, call_fn
     LOOP_OVER_SHORTY_LOADING_REG a3, f15, call_fn
     LOOP_OVER_SHORTY_LOADING_REG a4, f16, call_fn