diff options
author | Serguei Katkov <serguei.i.katkov@intel.com> | 2014-07-08 17:21:53 +0700 |
---|---|---|
committer | Chao-ying Fu <chao-ying.fu@intel.com> | 2014-07-10 13:31:47 -0700 |
commit | c380191f3048db2a3796d65db8e5d5a5e7b08c65 (patch) | |
tree | 56f7f5fc60f8445ead63cd43faf06b9e1dfda6b2 /compiler/jni/quick/x86_64/calling_convention_x86_64.cc | |
parent | cba6b1fc88fd54c35211fd49a7a7501cfcdaa170 (diff) | |
download | art-c380191f3048db2a3796d65db8e5d5a5e7b08c65.tar.gz art-c380191f3048db2a3796d65db8e5d5a5e7b08c65.tar.bz2 art-c380191f3048db2a3796d65db8e5d5a5e7b08c65.zip |
x86_64: Enable fp-reg promotion
Patch introduces 4 register XMM12-15 available for promotion of
fp virtual registers.
Change-Id: I3f89ad07fc8ae98b70f550eada09be7b693ffb67
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Diffstat (limited to 'compiler/jni/quick/x86_64/calling_convention_x86_64.cc')
-rw-r--r-- | compiler/jni/quick/x86_64/calling_convention_x86_64.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/jni/quick/x86_64/calling_convention_x86_64.cc b/compiler/jni/quick/x86_64/calling_convention_x86_64.cc index 5febed24fe..525f05c522 100644 --- a/compiler/jni/quick/x86_64/calling_convention_x86_64.cc +++ b/compiler/jni/quick/x86_64/calling_convention_x86_64.cc @@ -130,6 +130,10 @@ X86_64JniCallingConvention::X86_64JniCallingConvention(bool is_static, bool is_s callee_save_regs_.push_back(X86_64ManagedRegister::FromCpuRegister(R13)); callee_save_regs_.push_back(X86_64ManagedRegister::FromCpuRegister(R14)); callee_save_regs_.push_back(X86_64ManagedRegister::FromCpuRegister(R15)); + callee_save_regs_.push_back(X86_64ManagedRegister::FromXmmRegister(XMM12)); + callee_save_regs_.push_back(X86_64ManagedRegister::FromXmmRegister(XMM13)); + callee_save_regs_.push_back(X86_64ManagedRegister::FromXmmRegister(XMM14)); + callee_save_regs_.push_back(X86_64ManagedRegister::FromXmmRegister(XMM15)); } uint32_t X86_64JniCallingConvention::CoreSpillMask() const { @@ -137,6 +141,10 @@ uint32_t X86_64JniCallingConvention::CoreSpillMask() const { 1 << kNumberOfCpuRegisters; } +uint32_t X86_64JniCallingConvention::FpSpillMask() const { + return 1 << XMM12 | 1 << XMM13 | 1 << XMM14 | 1 << XMM15; +} + size_t X86_64JniCallingConvention::FrameSize() { // Method*, return address and callee save area size, local reference segment state size_t frame_data_size = sizeof(StackReference<mirror::ArtMethod>) + |