diff --git a/src/frontend/A64/translate/impl/impl.h b/src/frontend/A64/translate/impl/impl.h index a467dc00..8710f454 100644 --- a/src/frontend/A64/translate/impl/impl.h +++ b/src/frontend/A64/translate/impl/impl.h @@ -438,84 +438,90 @@ struct TranslatorVisitor final { bool FACGT_3(bool Q, Vec Vm, Vec Vn, Vec Vd); bool FACGT_4(bool Q, bool sz, Vec Vm, Vec Vn, Vec Vd); - // Data Processing - FP and SIMD - Two register misc + // Data Processing - FP and SIMD - Two register misc FP16 bool FCVTNS_1(Vec Vn, Vec Vd); - bool FCVTNS_2(bool sz, Vec Vn, Vec Vd); - bool FCVTNS_3(bool Q, Vec Vn, Vec Vd); - bool FCVTNS_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCVTMS_1(Vec Vn, Vec Vd); - bool FCVTMS_2(bool sz, Vec Vn, Vec Vd); - bool FCVTMS_3(bool Q, Vec Vn, Vec Vd); - bool FCVTMS_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCVTAS_1(Vec Vn, Vec Vd); - bool FCVTAS_2(bool sz, Vec Vn, Vec Vd); - bool FCVTAS_3(bool Q, Vec Vn, Vec Vd); - bool FCVTAS_4(bool Q, bool sz, Vec Vn, Vec Vd); bool SCVTF_int_1(Vec Vn, Vec Vd); - bool SCVTF_int_2(bool sz, Vec Vn, Vec Vd); - bool SCVTF_int_3(bool Q, Vec Vn, Vec Vd); - bool SCVTF_int_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCMGT_zero_1(Vec Vn, Vec Vd); - bool FCMGT_zero_2(bool sz, Vec Vn, Vec Vd); - bool FCMGT_zero_3(bool Q, Vec Vn, Vec Vd); - bool FCMGT_zero_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCMEQ_zero_1(Vec Vn, Vec Vd); - bool FCMEQ_zero_2(bool sz, Vec Vn, Vec Vd); - bool FCMEQ_zero_3(bool Q, Vec Vn, Vec Vd); - bool FCMEQ_zero_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCMLT_1(Vec Vn, Vec Vd); - bool FCMLT_2(bool sz, Vec Vn, Vec Vd); - bool FCMLT_3(bool Q, Vec Vn, Vec Vd); - bool FCMLT_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCVTPS_1(Vec Vn, Vec Vd); - bool FCVTPS_2(bool sz, Vec Vn, Vec Vd); - bool FCVTPS_3(bool Q, Vec Vn, Vec Vd); - bool FCVTPS_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCVTZS_int_1(Vec Vn, Vec Vd); - bool FCVTZS_int_2(bool sz, Vec Vn, Vec Vd); - bool FCVTZS_int_3(bool Q, Vec Vn, Vec Vd); - bool FCVTZS_int_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FRECPE_1(Vec Vn, Vec Vd); - bool FRECPE_2(bool sz, Vec Vn, Vec Vd); - bool FRECPE_3(bool Q, Vec Vn, Vec Vd); - bool FRECPE_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FRECPX_1(Vec Vn, Vec Vd); - bool FRECPX_2(bool sz, Vec Vn, Vec Vd); bool FCVTNU_1(Vec Vn, Vec Vd); - bool FCVTNU_2(bool sz, Vec Vn, Vec Vd); - bool FCVTNU_3(bool Q, Vec Vn, Vec Vd); - bool FCVTNU_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCVTMU_1(Vec Vn, Vec Vd); - bool FCVTMU_2(bool sz, Vec Vn, Vec Vd); - bool FCVTMU_3(bool Q, Vec Vn, Vec Vd); - bool FCVTMU_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCVTAU_1(Vec Vn, Vec Vd); - bool FCVTAU_2(bool sz, Vec Vn, Vec Vd); - bool FCVTAU_3(bool Q, Vec Vn, Vec Vd); - bool FCVTAU_4(bool Q, bool sz, Vec Vn, Vec Vd); bool UCVTF_int_1(Vec Vn, Vec Vd); - bool UCVTF_int_2(bool sz, Vec Vn, Vec Vd); - bool UCVTF_int_3(bool Q, Vec Vn, Vec Vd); - bool UCVTF_int_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCMGE_zero_1(Vec Vn, Vec Vd); - bool FCMGE_zero_2(bool sz, Vec Vn, Vec Vd); - bool FCMGE_zero_3(bool Q, Vec Vn, Vec Vd); - bool FCMGE_zero_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCMLE_1(Vec Vn, Vec Vd); - bool FCMLE_2(bool sz, Vec Vn, Vec Vd); - bool FCMLE_3(bool Q, Vec Vn, Vec Vd); - bool FCMLE_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCVTPU_1(Vec Vn, Vec Vd); - bool FCVTPU_2(bool sz, Vec Vn, Vec Vd); - bool FCVTPU_3(bool Q, Vec Vn, Vec Vd); - bool FCVTPU_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FCVTZU_int_1(Vec Vn, Vec Vd); - bool FCVTZU_int_2(bool sz, Vec Vn, Vec Vd); - bool FCVTZU_int_3(bool Q, Vec Vn, Vec Vd); - bool FCVTZU_int_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FRSQRTE_1(Vec Vn, Vec Vd); + + // Data Processing - FP and SIMD - Two register misc + bool FCVTNS_2(bool sz, Vec Vn, Vec Vd); + bool FCVTMS_2(bool sz, Vec Vn, Vec Vd); + bool FCVTAS_2(bool sz, Vec Vn, Vec Vd); + bool SCVTF_int_2(bool sz, Vec Vn, Vec Vd); + bool FCMGT_zero_2(bool sz, Vec Vn, Vec Vd); + bool FCMEQ_zero_2(bool sz, Vec Vn, Vec Vd); + bool FCMLT_2(bool sz, Vec Vn, Vec Vd); + bool FCVTPS_2(bool sz, Vec Vn, Vec Vd); + bool FCVTZS_int_2(bool sz, Vec Vn, Vec Vd); + bool FRECPE_2(bool sz, Vec Vn, Vec Vd); + bool FRECPX_2(bool sz, Vec Vn, Vec Vd); + bool FCVTNU_2(bool sz, Vec Vn, Vec Vd); + bool FCVTMU_2(bool sz, Vec Vn, Vec Vd); + bool FCVTAU_2(bool sz, Vec Vn, Vec Vd); + bool UCVTF_int_2(bool sz, Vec Vn, Vec Vd); + bool FCMGE_zero_2(bool sz, Vec Vn, Vec Vd); + bool FCMLE_2(bool sz, Vec Vn, Vec Vd); + bool FCVTPU_2(bool sz, Vec Vn, Vec Vd); + bool FCVTZU_int_2(bool sz, Vec Vn, Vec Vd); bool FRSQRTE_2(bool sz, Vec Vn, Vec Vd); + + // Data Processing - FP and SIMD - Scalar two register misc FP16 + bool FCVTNS_3(bool Q, Vec Vn, Vec Vd); + bool FCVTMS_3(bool Q, Vec Vn, Vec Vd); + bool FCVTAS_3(bool Q, Vec Vn, Vec Vd); + bool SCVTF_int_3(bool Q, Vec Vn, Vec Vd); + bool FCMGT_zero_3(bool Q, Vec Vn, Vec Vd); + bool FCMEQ_zero_3(bool Q, Vec Vn, Vec Vd); + bool FCMLT_3(bool Q, Vec Vn, Vec Vd); + bool FCVTPS_3(bool Q, Vec Vn, Vec Vd); + bool FCVTZS_int_3(bool Q, Vec Vn, Vec Vd); + bool FRECPE_3(bool Q, Vec Vn, Vec Vd); + bool FCVTNU_3(bool Q, Vec Vn, Vec Vd); + bool FCVTMU_3(bool Q, Vec Vn, Vec Vd); + bool FCVTAU_3(bool Q, Vec Vn, Vec Vd); + bool UCVTF_int_3(bool Q, Vec Vn, Vec Vd); + bool FCMGE_zero_3(bool Q, Vec Vn, Vec Vd); + bool FCMLE_3(bool Q, Vec Vn, Vec Vd); + bool FCVTPU_3(bool Q, Vec Vn, Vec Vd); + bool FCVTZU_int_3(bool Q, Vec Vn, Vec Vd); bool FRSQRTE_3(bool Q, Vec Vn, Vec Vd); + + // Data Processing - FP and SIMD - Scalar two register misc + bool FCVTNS_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTMS_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTAS_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool SCVTF_int_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCMGT_zero_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCMEQ_zero_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCMLT_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTPS_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTZS_int_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FRECPE_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTNU_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTMU_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTAU_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool UCVTF_int_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCMGE_zero_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCMLE_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTPU_4(bool Q, bool sz, Vec Vn, Vec Vd); + bool FCVTZU_int_4(bool Q, bool sz, Vec Vn, Vec Vd); bool FRSQRTE_4(bool Q, bool sz, Vec Vn, Vec Vd); // Data Processing - FP and SIMD - Scalar three same extra