|
|
|
@ -294,13 +294,13 @@ public: |
|
|
|
} else if (length == 2) { |
|
|
|
// entire instruction already fetched
|
|
|
|
} else if (length == 6) { |
|
|
|
insn |= (insn_bits_t)from_le(*(const uint16_t*)translate_insn_addr_to_host(addr + 4)) << 32; |
|
|
|
insn |= (insn_bits_t)from_le(*(const uint16_t*)translate_insn_addr_to_host(addr + 2)) << 16; |
|
|
|
insn |= (insn_bits_t)from_le(*(const uint16_t*)translate_insn_addr_to_host(addr + 4)) << 32; |
|
|
|
} else { |
|
|
|
static_assert(sizeof(insn_bits_t) == 8, "insn_bits_t must be uint64_t"); |
|
|
|
insn |= (insn_bits_t)from_le(*(const uint16_t*)translate_insn_addr_to_host(addr + 6)) << 48; |
|
|
|
insn |= (insn_bits_t)from_le(*(const uint16_t*)translate_insn_addr_to_host(addr + 4)) << 32; |
|
|
|
insn |= (insn_bits_t)from_le(*(const uint16_t*)translate_insn_addr_to_host(addr + 2)) << 16; |
|
|
|
insn |= (insn_bits_t)from_le(*(const uint16_t*)translate_insn_addr_to_host(addr + 4)) << 32; |
|
|
|
insn |= (insn_bits_t)from_le(*(const uint16_t*)translate_insn_addr_to_host(addr + 6)) << 48; |
|
|
|
} |
|
|
|
|
|
|
|
insn_fetch_t fetch = {proc->decode_insn(insn), insn}; |
|
|
|
|