mirror of
https://github.com/AsahiLinux/m1n1
synced 2024-11-10 09:44:13 +00:00
hv_vm: Implement scalar LDNP instructions
Signed-off-by: Asahi Lina <lina@asahilina.net>
This commit is contained in:
parent
595ecb423a
commit
ef7655568b
1 changed files with 4 additions and 4 deletions
|
@ -571,16 +571,16 @@ static bool emulate_load(struct exc_info *ctx, u32 insn, u64 *val, u64 *width, u
|
|||
regs[Rt] = (s64)EXT(*val, (8 << *width));
|
||||
if (insn & (1 << 22))
|
||||
regs[Rt] &= 0xffffffff;
|
||||
} else if ((insn & 0xffc00000) == 0x29400000) {
|
||||
// LDP (Signed offset, 32-bit)
|
||||
} else if ((insn & 0xfec00000) == 0x28400000) {
|
||||
// LD[N]P (Signed offset, 32-bit)
|
||||
*width = 3;
|
||||
*vaddr = regs[Rn] + (imm7 * 4);
|
||||
DECODE_OK;
|
||||
u64 Rt2 = (insn >> 10) & 0x1f;
|
||||
regs[Rt] = val[0] & 0xffffffff;
|
||||
regs[Rt2] = val[0] >> 32;
|
||||
} else if ((insn & 0xffc00000) == 0xa9400000) {
|
||||
// LDP (Signed offset, 64-bit)
|
||||
} else if ((insn & 0xfec00000) == 0xa8400000) {
|
||||
// LD[N]P (Signed offset, 64-bit)
|
||||
*width = 4;
|
||||
*vaddr = regs[Rn] + (imm7 * 8);
|
||||
DECODE_OK;
|
||||
|
|
Loading…
Reference in a new issue