diff options
author | Udayan Banerji <udayan.banerji@intel.com> | 2013-03-29 14:05:18 -0700 |
---|---|---|
committer | Udayan Banerji <udayan.banerji@intel.com> | 2013-03-29 14:05:18 -0700 |
commit | 19eb287ac848f10e03ca2614bf53bd9d1ddd3724 (patch) | |
tree | a276c0f35bcd84892a0198fcd282bd678e9fadf4 /vm/mterp | |
parent | 8d8a7958a7aa0c73273161ddacfad34d1b9a97fe (diff) | |
download | android_dalvik-19eb287ac848f10e03ca2614bf53bd9d1ddd3724.tar.gz android_dalvik-19eb287ac848f10e03ca2614bf53bd9d1ddd3724.tar.bz2 android_dalvik-19eb287ac848f10e03ca2614bf53bd9d1ddd3724.zip |
[x86] Fix errors with WITH_JIT_TUNING defined
This patch makes the necessary changes to pass on correct information to
dvmBumpNoChain, so that WITH_JIT_TUNING flag can be enabled for x86 codegen
Change-Id: Ia5e5c0406433bf645ef67143d0f1a11a28153a66
Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
Diffstat (limited to 'vm/mterp')
-rw-r--r-- | vm/mterp/out/InterpAsm-x86.S | 8 | ||||
-rw-r--r-- | vm/mterp/x86/footer.S | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/vm/mterp/out/InterpAsm-x86.S b/vm/mterp/out/InterpAsm-x86.S index 760e6740b..c87f30673 100644 --- a/vm/mterp/out/InterpAsm-x86.S +++ b/vm/mterp/out/InterpAsm-x86.S @@ -15754,7 +15754,9 @@ dvmJitToInterpSingleStep: */ dvmJitToInterpNoChainNoProfile: #if defined(WITH_JIT_TUNING) + SPILL_TMP1(%eax) call dvmBumpNoChain + UNSPILL_TMP1(%eax) #endif movl %eax, rPC movl rSELF, %eax @@ -15782,6 +15784,7 @@ dvmJitToInterpNoChainNoProfile: .global dvmJitToInterpTraceSelectNoChain dvmJitToInterpTraceSelectNoChain: #if defined(WITH_JIT_TUNING) + movl %edx, OUT_ARG0(%esp) call dvmBumpNoChain #endif movl %ebx, rPC @@ -15895,6 +15898,11 @@ dvmJitToInterpNormal: .global dvmJitToInterpNoChain dvmJitToInterpNoChain: dvmJitToInterpNoChain: #rPC in eax +#if defined(WITH_JIT_TUNING) + SPILL_TMP1(%eax) + call dvmBumpNoChain + UNSPILL_TMP1(%eax) +#endif ## TODO, need to clean up stack manipulation ... this isn't signal safe and ## doesn't use the calling conventions of header.S movl %eax, rPC diff --git a/vm/mterp/x86/footer.S b/vm/mterp/x86/footer.S index 3b5c79e70..054dc1112 100644 --- a/vm/mterp/x86/footer.S +++ b/vm/mterp/x86/footer.S @@ -77,7 +77,9 @@ dvmJitToInterpSingleStep: */ dvmJitToInterpNoChainNoProfile: #if defined(WITH_JIT_TUNING) + SPILL_TMP1(%eax) call dvmBumpNoChain + UNSPILL_TMP1(%eax) #endif movl %eax, rPC movl rSELF, %eax @@ -105,6 +107,7 @@ dvmJitToInterpNoChainNoProfile: .global dvmJitToInterpTraceSelectNoChain dvmJitToInterpTraceSelectNoChain: #if defined(WITH_JIT_TUNING) + movl %edx, OUT_ARG0(%esp) call dvmBumpNoChain #endif movl %ebx, rPC @@ -218,6 +221,11 @@ dvmJitToInterpNormal: .global dvmJitToInterpNoChain dvmJitToInterpNoChain: dvmJitToInterpNoChain: #rPC in eax +#if defined(WITH_JIT_TUNING) + SPILL_TMP1(%eax) + call dvmBumpNoChain + UNSPILL_TMP1(%eax) +#endif ## TODO, need to clean up stack manipulation ... this isn't signal safe and ## doesn't use the calling conventions of header.S movl %eax, rPC |