A64: Implement FMOV (register)
This commit is contained in:
parent
b02b861242
commit
2ee39d6b36
2 changed files with 13 additions and 1 deletions
|
@ -891,7 +891,7 @@ INST(FCVTZU_float_int, "FCVTZU (scalar, integer)", "z0011
|
|||
//INST(FJCVTZS, "FJCVTZS", "0001111001111110000000nnnnnddddd")
|
||||
|
||||
// Data Processing - FP and SIMD - Floating point data processing
|
||||
//INST(FMOV_float, "FMOV (register)", "00011110yy100000010000nnnnnddddd")
|
||||
INST(FMOV_float, "FMOV (register)", "00011110yy100000010000nnnnnddddd")
|
||||
INST(FABS_float, "FABS (scalar)", "00011110yy100000110000nnnnnddddd")
|
||||
INST(FNEG_float, "FNEG (scalar)", "00011110yy100001010000nnnnnddddd")
|
||||
//INST(FSQRT_float, "FSQRT (scalar)", "00011110yy100001110000nnnnnddddd")
|
||||
|
|
|
@ -22,6 +22,18 @@ static boost::optional<size_t> GetDataSize(Imm<2> type) {
|
|||
return boost::none;
|
||||
}
|
||||
|
||||
bool TranslatorVisitor::FMOV_float(Imm<2> type, Vec Vn, Vec Vd) {
|
||||
const boost::optional<size_t> datasize = GetDataSize(type);
|
||||
if (!datasize || *datasize == 16) {
|
||||
return UnallocatedEncoding();
|
||||
}
|
||||
|
||||
const IR::U128 operand = V(*datasize, Vn);
|
||||
|
||||
V(*datasize, Vd, operand);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TranslatorVisitor::FABS_float(Imm<2> type, Vec Vn, Vec Vd) {
|
||||
boost::optional<size_t> datasize = GetDataSize(type);
|
||||
if (!datasize || *datasize == 16) {
|
||||
|
|
Loading…
Reference in a new issue