diff options
author | Serban Constantinescu <serban.constantinescu@arm.com> | 2014-11-13 14:05:07 +0000 |
---|---|---|
committer | Serban Constantinescu <serban.constantinescu@arm.com> | 2014-11-28 13:10:25 +0000 |
commit | 02164b352a1474c616771582ca9a73a2cc514c1f (patch) | |
tree | 6c124ec6e19f18343b69df8cddcb74e17447f294 /compiler/optimizing/code_generator_arm64.h | |
parent | 32f5b4d2c8c9b52e9522941c159577b21752d0fa (diff) | |
download | art-02164b352a1474c616771582ca9a73a2cc514c1f.tar.gz art-02164b352a1474c616771582ca9a73a2cc514c1f.tar.bz2 art-02164b352a1474c616771582ca9a73a2cc514c1f.zip |
Opt Compiler: Arm64: Add support for more IRs plus various fixes.
Add support for more IRs and update others.
Change-Id: Iae1bef01dc3c0d238a46fbd2800e71c38288b1d2
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Diffstat (limited to 'compiler/optimizing/code_generator_arm64.h')
-rw-r--r-- | compiler/optimizing/code_generator_arm64.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/optimizing/code_generator_arm64.h b/compiler/optimizing/code_generator_arm64.h index 236a04d412..0e3d25f9aa 100644 --- a/compiler/optimizing/code_generator_arm64.h +++ b/compiler/optimizing/code_generator_arm64.h @@ -44,12 +44,10 @@ static const vixl::FPRegister kParameterFPRegisters[] = { static constexpr size_t kParameterFPRegistersLength = arraysize(kParameterFPRegisters); const vixl::Register tr = vixl::x18; // Thread Register -const vixl::Register wSuspend = vixl::w19; // Suspend Register -const vixl::Register xSuspend = vixl::x19; const vixl::CPURegList vixl_reserved_core_registers(vixl::ip0, vixl::ip1); const vixl::CPURegList vixl_reserved_fp_registers(vixl::d31); -const vixl::CPURegList runtime_reserved_core_registers(tr, xSuspend, vixl::lr); +const vixl::CPURegList runtime_reserved_core_registers(tr, vixl::lr); const vixl::CPURegList quick_callee_saved_registers(vixl::CPURegister::kRegister, vixl::kXRegSize, kArm64CalleeSaveRefSpills); @@ -110,7 +108,9 @@ class InstructionCodeGeneratorARM64 : public HGraphVisitor { private: void GenerateClassInitializationCheck(SlowPathCodeARM64* slow_path, vixl::Register class_reg); + void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); void HandleBinaryOp(HBinaryOperation* instr); + void HandleShift(HBinaryOperation* instr); Arm64Assembler* const assembler_; CodeGeneratorARM64* const codegen_; @@ -130,6 +130,7 @@ class LocationsBuilderARM64 : public HGraphVisitor { private: void HandleBinaryOp(HBinaryOperation* instr); + void HandleShift(HBinaryOperation* instr); void HandleInvoke(HInvoke* instr); CodeGeneratorARM64* const codegen_; |