30 event.resolution_info.push_back({
31 .after_relative = operand,
32 .resolved_operand = operand,
52 auto& resolution_info =
event.resolution_info[i];
64 resolution_info.after_relative =
instruction.operands[i];
68 base_address =
memory.get(0);
69 event.base_address = *base_address;
72 if (!
memory.is_valid_address(*base_address)) {
77 FF offset = resolution_info.after_relative;
82 resolution_info.after_relative = Operand::from<FF>(
offset);
90 resolution_info.after_relative =
100 resolution_info.resolved_operand = resolution_info.after_relative;
102 resolution_info.resolved_operand =
memory.get(resolution_info.after_relative.as<
MemoryAddress>());
103 if (!
memory.is_valid_address(resolution_info.resolved_operand)) {
113 resolution_info.error = e;
120 return info.error.has_value();
129 resolved_operands.reserve(
event.resolution_info.size());
130 for (
const auto&
info :
event.resolution_info) {
131 resolved_operands.push_back(
info.resolved_operand);
133 return resolved_operands;