Lines Matching refs:location
55 static inline vixl::Register XRegisterFrom(Location location) {
56 DCHECK(location.IsRegister()) << location;
57 return vixl::Register::XRegFromCode(VIXLRegCodeFromART(location.reg()));
60 static inline vixl::Register WRegisterFrom(Location location) {
61 DCHECK(location.IsRegister()) << location;
62 return vixl::Register::WRegFromCode(VIXLRegCodeFromART(location.reg()));
65 static inline vixl::Register RegisterFrom(Location location, Primitive::Type type) {
67 return type == Primitive::kPrimLong ? XRegisterFrom(location) : WRegisterFrom(location);
79 static inline vixl::FPRegister DRegisterFrom(Location location) {
80 DCHECK(location.IsFpuRegister()) << location;
81 return vixl::FPRegister::DRegFromCode(location.reg());
84 static inline vixl::FPRegister SRegisterFrom(Location location) {
85 DCHECK(location.IsFpuRegister()) << location;
86 return vixl::FPRegister::SRegFromCode(location.reg());
89 static inline vixl::FPRegister FPRegisterFrom(Location location, Primitive::Type type) {
91 return type == Primitive::kPrimDouble ? DRegisterFrom(location) : SRegisterFrom(location);
103 static inline vixl::CPURegister CPURegisterFrom(Location location, Primitive::Type type) {
104 return Primitive::IsFloatingPointType(type) ? vixl::CPURegister(FPRegisterFrom(location, type))
105 : vixl::CPURegister(RegisterFrom(location, type));
120 static inline int64_t Int64ConstantFrom(Location location) {
121 HConstant* instr = location.GetConstant();
132 static inline vixl::Operand OperandFrom(Location location, Primitive::Type type) {
133 if (location.IsRegister()) {
134 return vixl::Operand(RegisterFrom(location, type));
136 return vixl::Operand(Int64ConstantFrom(location));
145 static inline vixl::MemOperand StackOperandFrom(Location location) {
146 return vixl::MemOperand(vixl::sp, location.GetStackIndex());
168 static inline vixl::MemOperand HeapOperandFrom(Location location, Offset offset) {
169 return HeapOperand(RegisterFrom(location, Primitive::kPrimNot), offset);
172 static inline Location LocationFrom(const vixl::Register& reg) {
173 return Location::RegisterLocation(ARTRegCodeFromVIXL(reg.code()));
176 static inline Location LocationFrom(const vixl::FPRegister& fpreg) {
177 return Location::FpuRegisterLocation(fpreg.code());
234 static inline Location ARM64EncodableConstantOrRegister(HInstruction* constant,
238 return Location::ConstantLocation(constant->AsConstant());
241 return Location::RequiresRegister();