/art/compiler/dex/quick/mips/ |
D | call_mips.cc | 421 Mir2Lir* cg = static_cast<Mir2Lir*>(cu->cg.get()); in NextSDCallInsn() local 423 RegStorage arg0_ref = cg->TargetReg(kArg0, kRef); in NextSDCallInsn() 426 cg->LoadWordDisp(cg->TargetPtrReg(kSelf), info->string_init_offset, arg0_ref); in NextSDCallInsn() 433 cg->LoadWordDisp(arg0_ref, offset, cg->TargetPtrReg(kInvokeTgt)); in NextSDCallInsn() 444 cg->LoadConstantWide(cg->TargetPtrReg(kInvokeTgt), direct_code); in NextSDCallInsn() 446 cg->LoadConstant(cg->TargetPtrReg(kInvokeTgt), direct_code); in NextSDCallInsn() 449 cg->LoadCodeAddress(target_method, type, kInvokeTgt); in NextSDCallInsn() 453 cg->LoadConstantWide(cg->TargetReg(kArg0, kRef), direct_method); in NextSDCallInsn() 455 cg->LoadConstant(cg->TargetReg(kArg0, kRef), direct_method); in NextSDCallInsn() 458 cg->LoadMethodAddress(target_method, type, kArg0); in NextSDCallInsn() [all …]
|
/art/compiler/dex/quick/arm64/ |
D | call_arm64.cc | 462 Arm64Mir2Lir* cg = static_cast<Arm64Mir2Lir*>(cu->cg.get()); in Arm64NextSDCallInsn() local 464 RegStorage arg0_ref = cg->TargetReg(kArg0, kRef); in Arm64NextSDCallInsn() 467 cg->LoadWordDisp(rs_xSELF, info->string_init_offset, arg0_ref); in Arm64NextSDCallInsn() 473 cg->LoadWordDisp(arg0_ref, in Arm64NextSDCallInsn() 475 kArm64PointerSize).Int32Value(), cg->TargetPtrReg(kInvokeTgt)); in Arm64NextSDCallInsn() 485 cg->LoadConstantWide(cg->TargetPtrReg(kInvokeTgt), direct_code); in Arm64NextSDCallInsn() 489 cg->LoadCodeAddress(target_method, type, kInvokeTgt); in Arm64NextSDCallInsn() 492 cg->LoadConstantWide(cg->TargetReg(kArg0, kRef), direct_method); in Arm64NextSDCallInsn() 494 cg->LoadMethodAddress(target_method, type, kArg0); in Arm64NextSDCallInsn() 501 bool use_pc_rel = cg->CanUseOpPcRelDexCacheArrayLoad(); in Arm64NextSDCallInsn() [all …]
|
/art/compiler/dex/quick/x86/ |
D | call_x86.cc | 349 X86Mir2Lir* cg = static_cast<X86Mir2Lir*>(cu->cg.get()); in X86NextSDCallInsn() local 351 RegStorage arg0_ref = cg->TargetReg(kArg0, kRef); in X86NextSDCallInsn() 354 cg->NewLIR2(kX86Mov32RT, arg0_ref.GetReg(), info->string_init_offset); in X86NextSDCallInsn() 364 auto target_reg = cg->TargetReg(kArg0, kRef); in X86NextSDCallInsn() 366 cg->LoadConstantWide(target_reg, direct_method); in X86NextSDCallInsn() 368 cg->LoadConstant(target_reg, direct_method); in X86NextSDCallInsn() 371 cg->LoadMethodAddress(target_method, type, kArg0); in X86NextSDCallInsn() 377 } else if (cg->CanUseOpPcRelDexCacheArrayLoad()) { in X86NextSDCallInsn() 381 size_t offset = cg->dex_cache_arrays_layout_.MethodOffset(target_method.dex_method_index); in X86NextSDCallInsn() 382 cg->OpPcRelDexCacheArrayLoad(cu->dex_file, offset, cg->TargetReg(kArg0, kRef), in X86NextSDCallInsn() [all …]
|
D | quick_assemble_x86_test.cc | 82 cu_->cg.reset(QuickCompiler::GetCodeGenerator(cu_.get(), nullptr)); in Prepare() 96 X86Mir2Lir* m2l = static_cast<X86Mir2Lir*>(cu_->cg.get()); in Prepare()
|
/art/compiler/dex/quick/arm/ |
D | call_arm.cc | 628 ArmMir2Lir* cg = static_cast<ArmMir2Lir*>(cu->cg.get()); in ArmNextSDCallInsn() local 630 RegStorage arg0_ref = cg->TargetReg(kArg0, kRef); in ArmNextSDCallInsn() 633 cg->LoadRefDisp(rs_rARM_SELF, info->string_init_offset, arg0_ref, kNotVolatile); in ArmNextSDCallInsn() 639 cg->LoadWordDisp(arg0_ref, in ArmNextSDCallInsn() 641 kArmPointerSize).Int32Value(), cg->TargetPtrReg(kInvokeTgt)); in ArmNextSDCallInsn() 651 cg->LoadConstant(cg->TargetPtrReg(kInvokeTgt), direct_code); in ArmNextSDCallInsn() 655 cg->LoadCodeAddress(target_method, type, kInvokeTgt); in ArmNextSDCallInsn() 658 cg->LoadConstant(cg->TargetReg(kArg0, kRef), direct_method); in ArmNextSDCallInsn() 660 cg->LoadMethodAddress(target_method, type, kArg0); in ArmNextSDCallInsn() 667 bool use_pc_rel = cg->CanUseOpPcRelDexCacheArrayLoad(); in ArmNextSDCallInsn() [all …]
|
/art/compiler/dex/quick/ |
D | gen_invoke.cc | 489 static void CommonCallCodeLoadThisIntoArg1(const CallInfo* info, Mir2Lir* cg) { in CommonCallCodeLoadThisIntoArg1() argument 491 cg->LoadValueDirectFixed(rl_arg, cg->TargetReg(kArg1, kRef)); in CommonCallCodeLoadThisIntoArg1() 494 static void CommonCallCodeLoadClassIntoArg0(const CallInfo* info, Mir2Lir* cg) { in CommonCallCodeLoadClassIntoArg0() argument 495 cg->GenNullCheck(cg->TargetReg(kArg1, kRef), info->opt_flags); in CommonCallCodeLoadClassIntoArg0() 497 cg->LoadRefDisp(cg->TargetReg(kArg1, kRef), mirror::Object::ClassOffset().Int32Value(), in CommonCallCodeLoadClassIntoArg0() 498 cg->TargetReg(kArg0, kRef), in CommonCallCodeLoadClassIntoArg0() 500 cg->MarkPossibleNullPointerException(info->opt_flags); in CommonCallCodeLoadClassIntoArg0() 504 const CompilationUnit* cu, Mir2Lir* cg) { in CommonCallCodeLoadCodePointerIntoInvokeTgt() argument 509 cg->LoadWordDisp(alt_from == nullptr ? cg->TargetReg(kArg0, kRef) : *alt_from, offset, in CommonCallCodeLoadCodePointerIntoInvokeTgt() 510 cg->TargetPtrReg(kInvokeTgt)); in CommonCallCodeLoadCodePointerIntoInvokeTgt() [all …]
|
D | quick_compiler.cc | 692 cu.cg.reset(GetCodeGenerator(&cu, nullptr)); in Compile() 760 cu.cg->Materialize(); in Compile() 763 result = cu.cg->GetCompiledMethod(); in Compile()
|
/art/compiler/dex/ |
D | compiler_ir.cc | 48 cg(nullptr), in CompilationUnit()
|
D | compiler_ir.h | 194 std::unique_ptr<Mir2Lir> cg; // Target-specific codegen. member
|