[a64] Implement `OPCODE_LOAD_VECTOR_SHR`
This commit is contained in:
parent
61feb6af74
commit
1b574be0e6
|
@ -192,15 +192,12 @@ struct LOAD_VECTOR_SHR_I8
|
|||
if (i.src1.is_constant) {
|
||||
auto sh = i.src1.constant();
|
||||
assert_true(sh < xe::countof(lvsr_table));
|
||||
// e.mov(e.rax, (uintptr_t)&lvsr_table[sh]);
|
||||
// e.vmovaps(i.dest, e.ptr[e.rax]);
|
||||
e.MOVP2R(X0, &lvsr_table[sh]);
|
||||
e.LDR(i.dest, X0);
|
||||
} else {
|
||||
// TODO(benvanik): find a cheaper way of doing this.
|
||||
// e.movzx(e.rdx, i.src1);
|
||||
// e.and_(e.dx, 0xF);
|
||||
// e.shl(e.dx, 4);
|
||||
// e.mov(e.rax, (uintptr_t)lvsr_table);
|
||||
// e.vmovaps(i.dest, e.ptr[e.rax + e.rdx]);
|
||||
e.MOVP2R(X0, lvsr_table);
|
||||
e.AND(X1, i.src1.reg().toX(), 0xf);
|
||||
e.LDR(i.dest, X0, X1, IndexExt::LSL, 4);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue