diff options
author | Mark P Mendell <mark.p.mendell@intel.com> | 2015-01-27 15:45:27 +0000 |
---|---|---|
committer | Mark Mendell <mark.p.mendell@intel.com> | 2015-01-27 17:00:21 -0500 |
commit | 966c3ae95d3c699ee9fbdbccc1acdaaf02325faf (patch) | |
tree | 7a9bd5dbfb8b02f8bb7e3387876be0c1f7844063 /compiler/optimizing/code_generator_x86.h | |
parent | 85ed6bdd890c08f50c205d7f0604b5a35603b13e (diff) | |
download | android_art-966c3ae95d3c699ee9fbdbccc1acdaaf02325faf.tar.gz android_art-966c3ae95d3c699ee9fbdbccc1acdaaf02325faf.tar.bz2 android_art-966c3ae95d3c699ee9fbdbccc1acdaaf02325faf.zip |
Revert "Revert "ART: Implement X86 hard float (Quick/JNI/Baseline)""
This reverts commit 949c91fb91f40a4a80b2b492913cf8541008975e.
This time, don't clobber EBX before saving it.
Redo some of the macros to make register usage explicit.
Change-Id: I8db8662877cd006816e16a28f42444ab7c36bfef
Diffstat (limited to 'compiler/optimizing/code_generator_x86.h')
-rw-r--r-- | compiler/optimizing/code_generator_x86.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/compiler/optimizing/code_generator_x86.h b/compiler/optimizing/code_generator_x86.h index 73b647c1c4..55d71e39c4 100644 --- a/compiler/optimizing/code_generator_x86.h +++ b/compiler/optimizing/code_generator_x86.h @@ -36,8 +36,8 @@ class SlowPathCodeX86; static constexpr Register kParameterCoreRegisters[] = { ECX, EDX, EBX }; static constexpr RegisterPair kParameterCorePairRegisters[] = { ECX_EDX, EDX_EBX }; static constexpr size_t kParameterCoreRegistersLength = arraysize(kParameterCoreRegisters); -static constexpr XmmRegister kParameterFpuRegisters[] = { }; -static constexpr size_t kParameterFpuRegistersLength = 0; +static constexpr XmmRegister kParameterFpuRegisters[] = { XMM0, XMM1, XMM2, XMM3 }; +static constexpr size_t kParameterFpuRegistersLength = arraysize(kParameterFpuRegisters); class InvokeDexCallingConvention : public CallingConvention<Register, XmmRegister> { public: @@ -58,13 +58,18 @@ class InvokeDexCallingConvention : public CallingConvention<Register, XmmRegiste class InvokeDexCallingConventionVisitor { public: - InvokeDexCallingConventionVisitor() : gp_index_(0) {} + InvokeDexCallingConventionVisitor() : gp_index_(0), fp_index_(0), stack_index_(0) {} Location GetNextLocation(Primitive::Type type); private: InvokeDexCallingConvention calling_convention; + // The current index for cpu registers. uint32_t gp_index_; + // The current index for fpu registers. + uint32_t fp_index_; + // The current stack index. + uint32_t stack_index_; DISALLOW_COPY_AND_ASSIGN(InvokeDexCallingConventionVisitor); }; |