Home | History | Annotate | Download | only in arm64

Lines Matching refs:RegStorage

29 static constexpr RegStorage core_regs_arr[] =
35 static constexpr RegStorage core64_regs_arr[] =
41 static constexpr RegStorage sp_regs_arr[] =
46 static constexpr RegStorage dp_regs_arr[] =
53 static constexpr RegStorage reserved_regs_arr[] =
55 static constexpr RegStorage reserved64_regs_arr[] =
57 static constexpr RegStorage core_temps_arr[] =
61 static constexpr RegStorage core64_temps_arr[] =
65 static constexpr RegStorage sp_temps_arr[] =
69 static constexpr RegStorage dp_temps_arr[] =
74 static constexpr ArrayRef<const RegStorage> core_regs(core_regs_arr);
75 static constexpr ArrayRef<const RegStorage> core64_regs(core64_regs_arr);
76 static constexpr ArrayRef<const RegStorage> sp_regs(sp_regs_arr);
77 static constexpr ArrayRef<const RegStorage> dp_regs(dp_regs_arr);
78 static constexpr ArrayRef<const RegStorage> reserved_regs(reserved_regs_arr);
79 static constexpr ArrayRef<const RegStorage> reserved64_regs(reserved64_regs_arr);
80 static constexpr ArrayRef<const RegStorage> core_temps(core_temps_arr);
81 static constexpr ArrayRef<const RegStorage> core64_temps(core64_temps_arr);
82 static constexpr ArrayRef<const RegStorage> sp_temps(sp_temps_arr);
83 static constexpr ArrayRef<const RegStorage> dp_temps(dp_temps_arr);
106 RegStorage Arm64Mir2Lir::TargetReg(SpecialTargetRegister reg) {
107 RegStorage res_reg = RegStorage::InvalidReg();
112 case kPc: res_reg = RegStorage::InvalidReg(); break;
134 case kHiddenFpArg: res_reg = RegStorage::InvalidReg(); break;
135 case kCount: res_reg = RegStorage::InvalidReg(); break;
136 default: res_reg = RegStorage::InvalidReg();
142 * Decode the register id. This routine makes assumptions on the encoding made by RegStorage.
144 ResourceMask Arm64Mir2Lir::GetRegMaskCommon(const RegStorage& reg) const {
145 // TODO(Arm64): this function depends too much on the internal RegStorage encoding. Refactor.
401 snprintf(tbuf, arraysize(tbuf), "s%d", operand & RegStorage::kRegNumMask);
404 snprintf(tbuf, arraysize(tbuf), "d%d", operand & RegStorage::kRegNumMask);
408 operand & RegStorage::kRegNumMask);
430 snprintf(tbuf, arraysize(tbuf), "w%d", operand & RegStorage::kRegNumMask);
436 snprintf(tbuf, arraysize(tbuf), "w%d", operand & RegStorage::kRegNumMask);
442 snprintf(tbuf, arraysize(tbuf), "x%d", operand & RegStorage
448 snprintf(tbuf, arraysize(tbuf), "x%d", operand & RegStorage::kRegNumMask);
479 operand & RegStorage::kRegNumMask);
489 operand & RegStorage::kRegNumMask);
607 RegStorage dp_reg = RegStorage::FloatSolo64(fp_reg_num);
621 RegStorage x_reg = RegStorage::Solo64(x_reg_num);
759 RegStorage Arm64Mir2Lir::LoadHelper(QuickEntrypointEnum trampoline) {
767 RegStorage tmp = rs_x0;
788 RegStorage Arm64Mir2Lir::InToRegStorageArm64Mapper::GetNextReg(bool is_double_or_float,
791 const RegStorage coreArgMappingToPhysicalReg[] =
794 sizeof(coreArgMappingToPhysicalReg) / sizeof(RegStorage);
795 const RegStorage fpArgMappingToPhysicalReg[] =
798 sizeof(fpArgMappingToPhysicalReg) / sizeof(RegStorage);
800 RegStorage result = RegStorage::InvalidReg();
808 result = is_wide ? RegStorage::FloatSolo64(res_reg) : RegStorage::FloatSolo32(res_reg);
818 result = (is_wide || is_ref) ? RegStorage::Solo64(res_reg) : RegStorage::Solo32(res_reg);
825 RegStorage Arm64Mir2Lir::InToRegStorageMapping::Get(int in_position) {
828 return res != mapping_.end() ? res->second : RegStorage::InvalidReg();
837 RegStorage reg = mapper->GetNextReg(arg_locs[in_position].fp,
857 static RegStorage GetArgPhysicalReg(RegLocation* loc, int* num_gpr_used, int* num_fpr_used,
863 RegStorage::RegStorageKind reg_kind;
866 reg_kind = RegStorage::k64BitSolo;
869 reg_kind = RegStorage::k32BitSolo;
871 return RegStorage(RegStorage::kValid | reg_kind | RegStorage::kFloatingPoint | n);
879 return RegStorage::Solo64(n);
882 return RegStorage::Solo32(n);
887 return RegStorage::InvalidReg();
890 RegStorage Arm64Mir2Lir::GetArgMappingToPhysicalReg(int arg_num) {
940 RegStorage reg = GetArgPhysicalReg(t_loc, &num_gpr_used, &num_fpr_used, &op_size);
975 // OpRegCopy(RegStorage::Solo32(v_map->core_reg), reg);
977 // OpRegCopy(RegStorage::Solo32(v_map->fp_reg), reg);
991 // RegStorage::Solo32(v_map->core_reg));
994 // LoadWordDisp(TargetReg(kSp), SRegOffset(start_vreg + i), RegStorage::Solo32(v_map->fp_reg));
1104 RegStorage temp = TargetReg(kArg3, kNotWide);
1119 RegStorage regWide = TargetReg(kArg3, kWide);
1123 RegStorage reg = in_to_reg_storage_mapping.Get(i);
1145 RegStorage regSingle = TargetReg(kArg2, kRef);
1149 RegStorage regSingle = TargetReg(kArg2, kNotWide);
1169 RegStorage reg = in_to_reg_storage_mapping.Get(i);
1193 RegStorage tmp = AllocTemp();