diff options
Diffstat (limited to 'vm/compiler/template/out/CompilerTemplateAsm-armv5te-vfp.S')
-rw-r--r-- | vm/compiler/template/out/CompilerTemplateAsm-armv5te-vfp.S | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/vm/compiler/template/out/CompilerTemplateAsm-armv5te-vfp.S b/vm/compiler/template/out/CompilerTemplateAsm-armv5te-vfp.S index 7ba1596ae..27319e722 100644 --- a/vm/compiler/template/out/CompilerTemplateAsm-armv5te-vfp.S +++ b/vm/compiler/template/out/CompilerTemplateAsm-armv5te-vfp.S @@ -178,12 +178,12 @@ dvmCompiler_TEMPLATE_RETURN: ldr r10, [r0, #offStackSaveArea_prevFrame] @ r10<- saveArea->prevFrame ldrb r8, [rSELF, #offThread_breakFlags] @ r8<- breakFlags ldr rPC, [r0, #offStackSaveArea_savedPc] @ rPC<- saveArea->savedPc - ldr r2, [r10, #(offStackSaveArea_method - sizeofStackSaveArea)] #if !defined(WITH_SELF_VERIFICATION) ldr r9, [r0, #offStackSaveArea_returnAddr] @ r9<- chaining cell ret #else mov r9, #0 @ disable chaining #endif + ldr r2, [r10, #(offStackSaveArea_method - sizeofStackSaveArea)] @ r2<- method we're returning to cmp r2, #0 @ break frame? #if !defined(WITH_SELF_VERIFICATION) @@ -520,8 +520,9 @@ dvmCompiler_TEMPLATE_MUL_LONG: mul ip, r2, r1 @ ip<- ZxW umull r9, r10, r2, r0 @ r9/r10 <- ZxX mla r2, r0, r3, ip @ r2<- YxX + (ZxW) - mov r0, r9 - add r1, r2, r10 @ r1<- r10 + low(ZxW + (YxX)) + add r10, r2, r10 @ r10<- r10 + low(ZxW + (YxX)) + mov r0,r9 + mov r1,r10 bx lr /* ------------------------------ */ @@ -1264,23 +1265,22 @@ dvmCompiler_TEMPLATE_STRING_INDEXOF: * r2: Starting offset in string data */ - ldr r3, [r0, #STRING_FIELDOFF_VALUE] ldr r7, [r0, #STRING_FIELDOFF_OFFSET] ldr r8, [r0, #STRING_FIELDOFF_COUNT] - + ldr r0, [r0, #STRING_FIELDOFF_VALUE] /* * At this point, we have: + * r0: object pointer * r1: char to match * r2: starting offset - * r3: object pointer (final result -> r0) * r7: offset * r8: string length */ /* Build pointer to start of string data */ - add r3, #16 - add r0, r3, r7, lsl #1 + add r0, #16 + add r0, r0, r7, lsl #1 /* Save a copy of starting data in r7 */ mov r7, r0 @@ -1516,12 +1516,12 @@ dvmCompiler_TEMPLATE_RETURN_PROF: ldr r10, [r0, #offStackSaveArea_prevFrame] @ r10<- saveArea->prevFrame ldrb r8, [rSELF, #offThread_breakFlags] @ r8<- breakFlags ldr rPC, [r0, #offStackSaveArea_savedPc] @ rPC<- saveArea->savedPc - ldr r2, [r10, #(offStackSaveArea_method - sizeofStackSaveArea)] #if !defined(WITH_SELF_VERIFICATION) ldr r9, [r0, #offStackSaveArea_returnAddr] @ r9<- chaining cell ret #else mov r9, #0 @ disable chaining #endif + ldr r2, [r10, #(offStackSaveArea_method - sizeofStackSaveArea)] @ r2<- method we're returning to cmp r2, #0 @ break frame? #if !defined(WITH_SELF_VERIFICATION) |