diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-27 09:53:16 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-27 12:01:40 +0000 |
commit | d75948ac93a4a317feaf136cae78823071234ba5 (patch) | |
tree | 7593fb8c1ba2b67decdaa967b6348501f58d8b9d /compiler/optimizing/code_generator_arm64.h | |
parent | b3665e3dfdd23cc7a2f17a0b53bb16205bf4151f (diff) | |
download | android_art-d75948ac93a4a317feaf136cae78823071234ba5.tar.gz android_art-d75948ac93a4a317feaf136cae78823071234ba5.tar.bz2 android_art-d75948ac93a4a317feaf136cae78823071234ba5.zip |
Intrinsify String.compareTo.
Change-Id: Ia540df98755ac493fe61bd63f0bd94f6d97fbb57
Diffstat (limited to 'compiler/optimizing/code_generator_arm64.h')
-rw-r--r-- | compiler/optimizing/code_generator_arm64.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_arm64.h b/compiler/optimizing/code_generator_arm64.h index cbb2e5c749..2c624d2926 100644 --- a/compiler/optimizing/code_generator_arm64.h +++ b/compiler/optimizing/code_generator_arm64.h @@ -80,6 +80,31 @@ class SlowPathCodeARM64 : public SlowPathCode { DISALLOW_COPY_AND_ASSIGN(SlowPathCodeARM64); }; +static const vixl::Register kRuntimeParameterCoreRegisters[] = + { vixl::x0, vixl::x1, vixl::x2, vixl::x3, vixl::x4, vixl::x5, vixl::x6, vixl::x7 }; +static constexpr size_t kRuntimeParameterCoreRegistersLength = + arraysize(kRuntimeParameterCoreRegisters); +static const vixl::FPRegister kRuntimeParameterFpuRegisters[] = + { vixl::d0, vixl::d1, vixl::d2, vixl::d3, vixl::d4, vixl::d5, vixl::d6, vixl::d7 }; +static constexpr size_t kRuntimeParameterFpuRegistersLength = + arraysize(kRuntimeParameterCoreRegisters); + +class InvokeRuntimeCallingConvention : public CallingConvention<vixl::Register, vixl::FPRegister> { + public: + static constexpr size_t kParameterCoreRegistersLength = arraysize(kParameterCoreRegisters); + + InvokeRuntimeCallingConvention() + : CallingConvention(kRuntimeParameterCoreRegisters, + kRuntimeParameterCoreRegistersLength, + kRuntimeParameterFpuRegisters, + kRuntimeParameterFpuRegistersLength) {} + + Location GetReturnLocation(Primitive::Type return_type); + + private: + DISALLOW_COPY_AND_ASSIGN(InvokeRuntimeCallingConvention); +}; + class InvokeDexCallingConvention : public CallingConvention<vixl::Register, vixl::FPRegister> { public: InvokeDexCallingConvention() |