Lines Matching refs:mem_op
485 uint64_t Simulator::ComputeMemOperandAddress(const MemOperand& mem_op) const { in ComputeMemOperandAddress()
486 VIXL_ASSERT(mem_op.IsValid()); in ComputeMemOperandAddress()
487 int64_t base = ReadRegister<int64_t>(mem_op.GetBaseRegister()); in ComputeMemOperandAddress()
488 if (mem_op.IsImmediateOffset()) { in ComputeMemOperandAddress()
489 return base + mem_op.GetOffset(); in ComputeMemOperandAddress()
491 VIXL_ASSERT(mem_op.GetRegisterOffset().IsValid()); in ComputeMemOperandAddress()
492 int64_t offset = ReadRegister<int64_t>(mem_op.GetRegisterOffset()); in ComputeMemOperandAddress()
493 unsigned shift_amount = mem_op.GetShiftAmount(); in ComputeMemOperandAddress()
494 if (mem_op.GetShift() != NO_SHIFT) { in ComputeMemOperandAddress()
495 offset = ShiftOperand(kXRegSize, offset, mem_op.GetShift(), shift_amount); in ComputeMemOperandAddress()
497 if (mem_op.GetExtend() != NO_EXTEND) { in ComputeMemOperandAddress()
498 offset = ExtendValue(kXRegSize, offset, mem_op.GetExtend(), shift_amount); in ComputeMemOperandAddress()