diff options
author | David Butcher <david.butcher@arm.com> | 2012-06-20 14:31:33 +0100 |
---|---|---|
committer | David Butcher <david.butcher@arm.com> | 2012-06-20 14:31:33 +0100 |
commit | 8b095215a4d5bde723819087f3455bdcc250a78f (patch) | |
tree | 00a127dd8f78b4e3cec6031f6ba0bf3d6086ee90 /vm/mterp | |
parent | effc95cb732d8d5453930e647240a1665b6dc71a (diff) | |
download | android_dalvik-8b095215a4d5bde723819087f3455bdcc250a78f.tar.gz android_dalvik-8b095215a4d5bde723819087f3455bdcc250a78f.tar.bz2 android_dalvik-8b095215a4d5bde723819087f3455bdcc250a78f.zip |
Switched code to blx <reg>
ldr ip,<addr> blx ip is preferred over mov lr,pc ldr pc,<addr> from armv5te,
and will typically perform better on later ARM processors.
Change-Id: I8f2e5e794c644faafd767037ad56579f2934de47
Diffstat (limited to 'vm/mterp')
-rw-r--r-- | vm/mterp/armv5te/footer.S | 8 | ||||
-rw-r--r-- | vm/mterp/out/InterpAsm-armv5te-vfp.S | 8 | ||||
-rw-r--r-- | vm/mterp/out/InterpAsm-armv5te.S | 8 | ||||
-rw-r--r-- | vm/mterp/out/InterpAsm-armv7-a-neon.S | 8 | ||||
-rw-r--r-- | vm/mterp/out/InterpAsm-armv7-a.S | 8 |
5 files changed, 20 insertions, 20 deletions
diff --git a/vm/mterp/armv5te/footer.S b/vm/mterp/armv5te/footer.S index 4afe4718e..5c7062f2f 100644 --- a/vm/mterp/armv5te/footer.S +++ b/vm/mterp/armv5te/footer.S @@ -684,8 +684,8 @@ dalvik_mterp: cmp lr, #0 @ any special SubModes active? bne 11f @ go handle them if so - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip 7: @ native return; r10=newSaveArea @@ -711,8 +711,8 @@ dalvik_mterp: ldmfd sp, {r0-r3} @ refresh. NOTE: no sp autoincrement @ Call the native method - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip @ Restore the pre-call arguments ldmfd sp!, {r0-r3} @ r2<- methodToCall (others unneeded) diff --git a/vm/mterp/out/InterpAsm-armv5te-vfp.S b/vm/mterp/out/InterpAsm-armv5te-vfp.S index a0835f9cc..cc5a8770c 100644 --- a/vm/mterp/out/InterpAsm-armv5te-vfp.S +++ b/vm/mterp/out/InterpAsm-armv5te-vfp.S @@ -26912,8 +26912,8 @@ dalvik_mterp: cmp lr, #0 @ any special SubModes active? bne 11f @ go handle them if so - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip 7: @ native return; r10=newSaveArea @@ -26939,8 +26939,8 @@ dalvik_mterp: ldmfd sp, {r0-r3} @ refresh. NOTE: no sp autoincrement @ Call the native method - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip @ Restore the pre-call arguments ldmfd sp!, {r0-r3} @ r2<- methodToCall (others unneeded) diff --git a/vm/mterp/out/InterpAsm-armv5te.S b/vm/mterp/out/InterpAsm-armv5te.S index 5e4ccd416..6bbd91afa 100644 --- a/vm/mterp/out/InterpAsm-armv5te.S +++ b/vm/mterp/out/InterpAsm-armv5te.S @@ -27370,8 +27370,8 @@ dalvik_mterp: cmp lr, #0 @ any special SubModes active? bne 11f @ go handle them if so - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip 7: @ native return; r10=newSaveArea @@ -27397,8 +27397,8 @@ dalvik_mterp: ldmfd sp, {r0-r3} @ refresh. NOTE: no sp autoincrement @ Call the native method - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip @ Restore the pre-call arguments ldmfd sp!, {r0-r3} @ r2<- methodToCall (others unneeded) diff --git a/vm/mterp/out/InterpAsm-armv7-a-neon.S b/vm/mterp/out/InterpAsm-armv7-a-neon.S index 3a01a832c..0203b02f6 100644 --- a/vm/mterp/out/InterpAsm-armv7-a-neon.S +++ b/vm/mterp/out/InterpAsm-armv7-a-neon.S @@ -26849,8 +26849,8 @@ dalvik_mterp: cmp lr, #0 @ any special SubModes active? bne 11f @ go handle them if so - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip 7: @ native return; r10=newSaveArea @@ -26876,8 +26876,8 @@ dalvik_mterp: ldmfd sp, {r0-r3} @ refresh. NOTE: no sp autoincrement @ Call the native method - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip @ Restore the pre-call arguments ldmfd sp!, {r0-r3} @ r2<- methodToCall (others unneeded) diff --git a/vm/mterp/out/InterpAsm-armv7-a.S b/vm/mterp/out/InterpAsm-armv7-a.S index e8a95010a..efb1ea8a4 100644 --- a/vm/mterp/out/InterpAsm-armv7-a.S +++ b/vm/mterp/out/InterpAsm-armv7-a.S @@ -26849,8 +26849,8 @@ dalvik_mterp: cmp lr, #0 @ any special SubModes active? bne 11f @ go handle them if so - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip 7: @ native return; r10=newSaveArea @@ -26876,8 +26876,8 @@ dalvik_mterp: ldmfd sp, {r0-r3} @ refresh. NOTE: no sp autoincrement @ Call the native method - mov lr, pc @ set return addr - ldr pc, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + ldr ip, [r2, #offMethod_nativeFunc] @ pc<- methodToCall->nativeFunc + blx ip @ Restore the pre-call arguments ldmfd sp!, {r0-r3} @ r2<- methodToCall (others unneeded) |