Lines Matching refs:new_instr

94 static struct ir3_instruction * new_instr(opc_t opc)
821 cat0_instr: T_OP_NOP { new_instr(OPC_NOP); }
822 | T_OP_BR { new_instr(OPC_B)->cat0.brtype = BRANCH_PLAIN; } cat0_src1 ',' cat0_immed
823 | T_OP_BRAO { new_instr(OPC_B)->cat0.brtype = BRANCH_OR; } cat0_src1 ',' cat0_src2 ',' cat0_immed
824 | T_OP_BRAA { new_instr(OPC_B)->cat0.brtype = BRANCH_AND; } cat0_src1 ',' cat0_src2 ',' cat0_immed
825 | T_OP_BRAC '.' integer { new_instr(OPC_B)->cat0.brtype = BRANCH_CONST; instr->cat0.idx = $3; } cat0_immed
826 | T_OP_BANY { new_instr(OPC_B)->cat0.brtype = BRANCH_ANY; } cat0_src1 ',' cat0_immed
827 | T_OP_BALL { new_instr(OPC_B)->cat0.brtype = BRANCH_ALL; } cat0_src1 ',' cat0_immed
828 | T_OP_BRAX { new_instr(OPC_B)->cat0.brtype = BRANCH_X; } cat0_immed
829 | T_OP_JUMP { new_instr(OPC_JUMP); } cat0_immed
830 | T_OP_CALL { new_instr(OPC_CALL); } cat0_immed
831 | T_OP_RET { new_instr(OPC_RET); }
832 | T_OP_KILL { new_instr(OPC_KILL); } cat0_src1
833 | T_OP_END { new_instr(OPC_END); }
834 | T_OP_EMIT { new_instr(OPC_EMIT); }
835 | T_OP_CUT { new_instr(OPC_CUT); }
836 | T_OP_CHMASK { new_instr(OPC_CHMASK); }
837 | T_OP_CHSH { new_instr(OPC_CHSH); }
838 | T_OP_FLOW_REV { new_instr(OPC_FLOW_REV); }
839 | T_OP_BKT { new_instr(OPC_BKT); } cat0_immed
840 | T_OP_STKS { new_instr(OPC_STKS); }
841 | T_OP_STKR { new_instr(OPC_STKR); }
842 | T_OP_XSET { new_instr(OPC_XSET); }
843 | T_OP_XCLR { new_instr(OPC_XCLR); }
844 | T_OP_GETONE { new_instr(OPC_GETONE); } cat0_immed
845 | T_OP_DBG { new_instr(OPC_DBG); }
846 | T_OP_SHPS { new_instr(OPC_SHPS); } cat0_immed
847 | T_OP_SHPE { new_instr(OPC_SHPE); }
848 | T_OP_PREDT { new_instr(OPC_PREDT); } cat0_src1
849 | T_OP_PREDF { new_instr(OPC_PREDF); } cat0_src1
850 | T_OP_PREDE { new_instr(OPC_PREDE); }
851 | T_OP_GETLAST '.' T_W { new_instr(OPC_GETLAST); } cat0_immed
854 parse_type_type(new_instr(OPC_MOV), $3);
857 parse_type_type(new_instr(OPC_MOV), $3);
864 new_instr(OPC_MOVMSK);
880 new_instr(OPC_MOV);
887 new_instr(OPC_MOV);
893 cat1_swz: T_OP_SWZ '.' T_CAT1_TYPE_TYPE { parse_type_type(new_instr(OPC_SWZ), $3); } dst_reg ',' dst_reg ',' src_reg ',' src_reg
895 cat1_gat: T_OP_GAT '.' T_CAT1_TYPE_TYPE { parse_type_type(new_instr(OPC_GAT), $3); } dst_reg ',' src_reg ',' src_reg ',' src_reg ',' src_reg
897 cat1_sct: T_OP_SCT '.' T_CAT1_TYPE_TYPE { parse_type_type(new_instr(OPC_SCT), $3); } dst_reg ',' dst_reg ',' dst_reg ',' dst_reg ',' src_reg
909 cat2_opc_1src: T_OP_ABSNEG_F { new_instr(OPC_ABSNEG_F); }
910 | T_OP_ABSNEG_S { new_instr(OPC_ABSNEG_S); }
911 | T_OP_CLZ_B { new_instr(OPC_CLZ_B); }
912 | T_OP_CLZ_S { new_instr(OPC_CLZ_S); }
913 | T_OP_SIGN_F { new_instr(OPC_SIGN_F); }
914 | T_OP_FLOOR_F { new_instr(OPC_FLOOR_F); }
915 | T_OP_CEIL_F { new_instr(OPC_CEIL_F); }
916 | T_OP_RNDNE_F { new_instr(OPC_RNDNE_F); }
917 | T_OP_RNDAZ_F { new_instr(OPC_RNDAZ_F); }
918 | T_OP_TRUNC_F { new_instr(OPC_TRUNC_F); }
919 | T_OP_NOT_B { new_instr(OPC_NOT_B); }
920 | T_OP_BFREV_B { new_instr(OPC_BFREV_B); }
921 | T_OP_SETRM { new_instr(OPC_SETRM); }
922 | T_OP_CBITS_B { new_instr(OPC_CBITS_B); }
924 cat2_opc_2src_cnd: T_OP_CMPS_F { new_instr(OPC_CMPS_F); }
925 | T_OP_CMPS_U { new_instr(OPC_CMPS_U); }
926 | T_OP_CMPS_S { new_instr(OPC_CMPS_S); }
927 | T_OP_CMPV_F { new_instr(OPC_CMPV_F); }
928 | T_OP_CMPV_U { new_instr(OPC_CMPV_U); }
929 | T_OP_CMPV_S { new_instr(OPC_CMPV_S); }
931 cat2_opc_2src: T_OP_ADD_F { new_instr(OPC_ADD_F); }
932 | T_OP_MIN_F { new_instr(OPC_MIN_F); }
933 | T_OP_MAX_F { new_instr(OPC_MAX_F); }
934 | T_OP_MUL_F { new_instr(OPC_MUL_F); }
935 | T_OP_ADD_U { new_instr(OPC_ADD_U); }
936 | T_OP_ADD_S { new_instr(OPC_ADD_S); }
937 | T_OP_SUB_U { new_instr(OPC_SUB_U); }
938 | T_OP_SUB_S { new_instr(OPC_SUB_S); }
939 | T_OP_MIN_U { new_instr(OPC_MIN_U); }
940 | T_OP_MIN_S { new_instr(OPC_MIN_S); }
941 | T_OP_MAX_U { new_instr(OPC_MAX_U); }
942 | T_OP_MAX_S { new_instr(OPC_MAX_S); }
943 | T_OP_AND_B { new_instr(OPC_AND_B); }
944 | T_OP_OR_B { new_instr(OPC_OR_B); }
945 | T_OP_XOR_B { new_instr(OPC_XOR_B); }
946 | T_OP_MUL_U24 { new_instr(OPC_MUL_U24); }
947 | T_OP_MUL_S24 { new_instr(OPC_MUL_S24); }
948 | T_OP_MULL_U { new_instr(OPC_MULL_U); }
949 | T_OP_SHL_B { new_instr(OPC_SHL_B); }
950 | T_OP_SHR_B { new_instr(OPC_SHR_B); }
951 | T_OP_ASHR_B { new_instr(OPC_ASHR_B); }
952 | T_OP_BARY_F { new_instr(OPC_BARY_F); }
953 | T_OP_FLAT_B { new_instr(OPC_FLAT_B); }
954 | T_OP_MGEN_B { new_instr(OPC_MGEN_B); }
955 | T_OP_GETBIT_B { new_instr(OPC_GETBIT_B); }
956 | T_OP_SHB { new_instr(OPC_SHB); }
957 | T_OP_MSAD { new_instr(OPC_MSAD); }
976 cat3_opc: T_OP_MAD_U16 { new_instr(OPC_MAD_U16); }
977 | T_OP_MADSH_U16 { new_instr(OPC_MADSH_U16); }
978 | T_OP_MAD_S16 { new_instr(OPC_MAD_S16); }
979 | T_OP_MADSH_M16 { new_instr(OPC_MADSH_M16); }
980 | T_OP_MAD_U24 { new_instr(OPC_MAD_U24); }
981 | T_OP_MAD_S24 { new_instr(OPC_MAD_S24); }
982 | T_OP_MAD_F16 { new_instr(OPC_MAD_F16); }
983 | T_OP_MAD_F32 { new_instr(OPC_MAD_F32); }
984 | T_OP_SEL_B16 { new_instr(OPC_SEL_B16); }
985 | T_OP_SEL_B32 { new_instr(OPC_SEL_B32); }
986 | T_OP_SEL_S16 { new_instr(OPC_SEL_S16); }
987 | T_OP_SEL_S32 { new_instr(OPC_SEL_S32); }
988 | T_OP_SEL_F16 { new_instr(OPC_SEL_F16); }
989 | T_OP_SEL_F32 { new_instr(OPC_SEL_F32); }
990 | T_OP_SAD_S16 { new_instr(OPC_SAD_S16); }
991 | T_OP_SAD_S32 { new_instr(OPC_SAD_S32); }
993 cat3_imm_reg_opc: T_OP_SHRM { new_instr(OPC_SHRM); }
994 | T_OP_SHLM { new_instr(OPC_SHLM); }
995 | T_OP_SHRG { new_instr(OPC_SHRG); }
996 | T_OP_SHLG { new_instr(OPC_SHLG); }
997 | T_OP_ANDG { new_instr(OPC_ANDG); }
999 cat3_wmm: T_OP_WMM { new_instr(OPC_WMM); }
1000 | T_OP_WMM_ACCU { new_instr(OPC_WMM_ACCU); }
1002 cat3_dp: T_OP_DP2ACC { new_instr(OPC_DP2ACC); }
1003 | T_OP_DP4ACC { new_instr(OPC_DP4ACC); }
1010 cat4_opc: T_OP_RCP { new_instr(OPC_RCP); }
1011 | T_OP_RSQ { new_instr(OPC_RSQ); }
1012 | T_OP_LOG2 { new_instr(OPC_LOG2); }
1013 | T_OP_EXP2 { new_instr(OPC_EXP2); }
1014 | T_OP_SIN { new_instr(OPC_SIN); }
1015 | T_OP_COS { new_instr(OPC_COS); }
1016 | T_OP_SQRT { new_instr(OPC_SQRT); }
1017 | T_OP_HRSQ { new_instr(OPC_HRSQ); }
1018 | T_OP_HLOG2 { new_instr(OPC_HLOG2); }
1019 | T_OP_HEXP2 { new_instr(OPC_HEXP2); }
1023 cat5_opc_dsxypp: T_OP_DSXPP_1 { new_instr(OPC_DSXPP_1)->cat5.type = TYPE_F32; }
1024 | T_OP_DSYPP_1 { new_instr(OPC_DSYPP_1)->cat5.type = TYPE_F32; }
1026 cat5_opc: T_OP_ISAM { new_instr(OPC_ISAM); }
1027 | T_OP_ISAML { new_instr(OPC_ISAML); }
1028 | T_OP_ISAMM { new_instr(OPC_ISAMM); }
1029 | T_OP_SAM { new_instr(OPC_SAM); }
1030 | T_OP_SAMB { new_instr(OPC_SAMB); }
1031 | T_OP_SAML { new_instr(OPC_SAML); }
1032 | T_OP_SAMGQ { new_instr(OPC_SAMGQ); }
1033 | T_OP_GETLOD { new_instr(OPC_GETLOD); }
1034 | T_OP_CONV { new_instr(OPC_CONV); }
1035 | T_OP_CONVM { new_instr(OPC_CONVM); }
1036 | T_OP_GETSIZE { new_instr(OPC_GETSIZE); }
1037 | T_OP_GETBUF { new_instr(OPC_GETBUF); }
1038 | T_OP_GETPOS { new_instr(OPC_GETPOS); }
1039 | T_OP_GETINFO { new_instr(OPC_GETINFO); }
1040 | T_OP_DSX { new_instr(OPC_DSX); }
1041 | T_OP_DSY { new_instr(OPC_DSY); }
1042 | T_OP_GATHER4R { new_instr(OPC_GATHER4R); }
1043 | T_OP_GATHER4G { new_instr(OPC_GATHER4G); }
1044 | T_OP_GATHER4B { new_instr(OPC_GATHER4B); }
1045 | T_OP_GATHER4A { new_instr(OPC_GATHER4A); }
1046 | T_OP_SAMGP0 { new_instr(OPC_SAMGP0); }
1047 | T_OP_SAMGP1 { new_instr(OPC_SAMGP1); }
1048 | T_OP_SAMGP2 { new_instr(OPC_SAMGP2); }
1049 | T_OP_SAMGP3 { new_instr(OPC_SAMGP3); }
1050 | T_OP_RGETPOS { new_instr(OPC_RGETPOS); }
1051 | T_OP_RGETINFO { new_instr(OPC_RGETINFO); }
1052 | T_OP_BRCST_A { new_instr(OPC_BRCST_ACTIVE); }
1053 | T_OP_QSHUFFLE_BRCST { new_instr(OPC_QUAD_SHUFFLE_BRCST); }
1054 | T_OP_QSHUFFLE_H { new_instr(OPC_QUAD_SHUFFLE_HORIZ); }
1055 | T_OP_QSHUFFLE_V { new_instr(OPC_QUAD_SHUFFLE_VERT); }
1056 | T_OP_QSHUFFLE_DIAG { new_instr(OPC_QUAD_SHUFFLE_DIAG); }
1121 cat6_load: T_OP_LDG { new_instr(OPC_LDG); } cat6_type dst_reg ',' 'g' '[' src cat6_offset ']' ',' immediate
1122 | T_OP_LDG_A { new_instr(OPC_LDG_A); } cat6_type dst_reg ',' 'g' '[' src cat6_stg_ldg_a6xx_offset ']' ',' immediate
1123 | T_OP_LDP { new_instr(OPC_LDP); } cat6_type dst_reg ',' 'p' '[' src cat6_offset ']' ',' immediate
1124 | T_OP_LDL { new_instr(OPC_LDL); } cat6_type dst_reg ',' 'l' '[' src cat6_offset ']' ',' immediate
1125 | T_OP_LDLW { new_instr(OPC_LDLW); } cat6_type dst_reg ',' 'l' '[' src cat6_offset ']' ',' immediate
1126 | T_OP_LDLV { new_instr(OPC_LDLV); } cat6_type dst_reg ',' 'l' '[' integer ']' {
1130 cat6_store: T_OP_STG { new_instr(OPC_STG); dummy_dst(); } cat6_type 'g' '[' src cat6_imm_offset ']' ',' src ',' immediate
1131 | T_OP_STG_A { new_instr(OPC_STG_A); dummy_dst(); } cat6_type 'g' '[' src cat6_stg_ldg_a6xx_offset ']' ',' src ',' immediate
1132 | T_OP_STP { new_instr(OPC_STP); dummy_dst(); } cat6_type 'p' '[' src cat6_dst_offset ']' ',' src ',' immediate
1133 | T_OP_STL { new_instr(OPC_STL); dummy_dst(); } cat6_type 'l' '[' src cat6_dst_offset ']' ',' src ',' immediate
1134 | T_OP_STLW { new_instr(OPC_STLW); dummy_dst(); } cat6_type 'l' '[' src cat6_dst_offset ']' ',' src ',' immediate
1136 cat6_loadib: T_OP_LDIB { new_instr(OPC_LDIB); } cat6_typed cat6_dim cat6_type '.' cat6_immed dst_reg ',' 'g' '[' immediate ']' ',' src ',' src
1137 cat6_storeib: T_OP_STIB { new_instr(OPC_STIB); dummy_dst(); } cat6_typed cat6_dim cat6_type '.' cat6_immed'g' '[' immediate ']' ',' src ',' src ',' src
1139 cat6_prefetch: T_OP_PREFETCH { new_instr(OPC_PREFETCH); new_dst(0,0); /* dummy dst */ } 'g' '[' src cat6_offset ']' ',' cat6_immed
1141 cat6_atomic_opc: T_OP_ATOMIC_ADD { new_instr(OPC_ATOMIC_ADD); }
1142 | T_OP_ATOMIC_SUB { new_instr(OPC_ATOMIC_SUB); }
1143 | T_OP_ATOMIC_XCHG { new_instr(OPC_ATOMIC_XCHG); }
1144 | T_OP_ATOMIC_INC { new_instr(OPC_ATOMIC_INC); }
1145 | T_OP_ATOMIC_DEC { new_instr(OPC_ATOMIC_DEC); }
1146 | T_OP_ATOMIC_CMPXCHG { new_instr(OPC_ATOMIC_CMPXCHG); }
1147 | T_OP_ATOMIC_MIN { new_instr(OPC_ATOMIC_MIN); }
1148 | T_OP_ATOMIC_MAX { new_instr(OPC_ATOMIC_MAX); }
1149 | T_OP_ATOMIC_AND { new_instr(OPC_ATOMIC_AND); }
1150 | T_OP_ATOMIC_OR { new_instr(OPC_ATOMIC_OR); }
1151 | T_OP_ATOMIC_XOR { new_instr(OPC_ATOMIC_XOR); }
1153 cat6_a3xx_atomic_opc: T_OP_ATOMIC_S_ADD { new_instr(OPC_ATOMIC_S_ADD); }
1154 | T_OP_ATOMIC_S_SUB { new_instr(OPC_ATOMIC_S_SUB); }
1155 | T_OP_ATOMIC_S_XCHG { new_instr(OPC_ATOMIC_S_XCHG); }
1156 | T_OP_ATOMIC_S_INC { new_instr(OPC_ATOMIC_S_INC); }
1157 | T_OP_ATOMIC_S_DEC { new_instr(OPC_ATOMIC_S_DEC); }
1158 | T_OP_ATOMIC_S_CMPXCHG { new_instr(OPC_ATOMIC_S_CMPXCHG); }
1159 | T_OP_ATOMIC_S_MIN { new_instr(OPC_ATOMIC_S_MIN); }
1160 | T_OP_ATOMIC_S_MAX { new_instr(OPC_ATOMIC_S_MAX); }
1161 | T_OP_ATOMIC_S_AND { new_instr(OPC_ATOMIC_S_AND); }
1162 | T_OP_ATOMIC_S_OR { new_instr(OPC_ATOMIC_S_OR); }
1163 | T_OP_ATOMIC_S_XOR { new_instr(OPC_ATOMIC_S_XOR); }
1165 cat6_a6xx_atomic_opc: T_OP_ATOMIC_G_ADD { new_instr(OPC_ATOMIC_G_ADD); }
1166 | T_OP_ATOMIC_G_SUB { new_instr(OPC_ATOMIC_G_SUB); }
1167 | T_OP_ATOMIC_G_XCHG { new_instr(OPC_ATOMIC_G_XCHG); }
1168 | T_OP_ATOMIC_G_INC { new_instr(OPC_ATOMIC_G_INC); }
1169 | T_OP_ATOMIC_G_DEC { new_instr(OPC_ATOMIC_G_DEC); }
1170 | T_OP_ATOMIC_G_CMPXCHG { new_instr(OPC_ATOMIC_G_CMPXCHG); }
1171 | T_OP_ATOMIC_G_MIN { new_instr(OPC_ATOMIC_G_MIN); }
1172 | T_OP_ATOMIC_G_MAX { new_instr(OPC_ATOMIC_G_MAX); }
1173 | T_OP_ATOMIC_G_AND { new_instr(OPC_ATOMIC_G_AND); }
1174 | T_OP_ATOMIC_G_OR { new_instr(OPC_ATOMIC_G_OR); }
1175 | T_OP_ATOMIC_G_XOR { new_instr(OPC_ATOMIC_G_XOR); }
1187 cat6_ibo_opc_1src: T_OP_RESINFO { new_instr(OPC_RESINFO); }
1189 cat6_ibo_opc_ldgb: T_OP_LDGB { new_instr(OPC_LDGB); }
1190 cat6_ibo_opc_stgb: T_OP_STGB { new_instr(OPC_STGB); }
1197 T_OP_GETSPID { new_instr(OPC_GETSPID); }
1198 | T_OP_GETWID { new_instr(OPC_GETWID); }
1199 | T_OP_GETFIBERID { new_instr(OPC_GETFIBERID); }
1213 cat6_bindless_ibo_opc_1src: T_OP_RESINFO_B { new_instr(OPC_RESINFO); }
1215 cat6_bindless_ibo_opc_2src: T_OP_ATOMIC_B_ADD { new_instr(OPC_ATOMIC_B_ADD); dummy_dst(); }
1216 | T_OP_ATOMIC_B_SUB { new_instr(OPC_ATOMIC_B_SUB); dummy_dst(); }
1217 | T_OP_ATOMIC_B_XCHG { new_instr(OPC_ATOMIC_B_XCHG); dummy_dst(); }
1218 | T_OP_ATOMIC_B_INC { new_instr(OPC_ATOMIC_B_INC); dummy_dst(); }
1219 | T_OP_ATOMIC_B_DEC { new_instr(OPC_ATOMIC_B_DEC); dummy_dst(); }
1220 | T_OP_ATOMIC_B_CMPXCHG { new_instr(OPC_ATOMIC_B_CMPXCHG); dummy_dst(); }
1221 | T_OP_ATOMIC_B_MIN { new_instr(OPC_ATOMIC_B_MIN); dummy_dst(); }
1222 | T_OP_ATOMIC_B_MAX { new_instr(OPC_ATOMIC_B_MAX); dummy_dst(); }
1223 | T_OP_ATOMIC_B_AND { new_instr(OPC_ATOMIC_B_AND); dummy_dst(); }
1224 | T_OP_ATOMIC_B_OR { new_instr(OPC_ATOMIC_B_OR); dummy_dst(); }
1225 | T_OP_ATOMIC_B_XOR { new_instr(OPC_ATOMIC_B_XOR); dummy_dst(); }
1226 | T_OP_STIB_B { new_instr(OPC_STIB); dummy_dst(); }
1228 cat6_bindless_ibo_opc_2src_dst: T_OP_LDIB_B { new_instr(OPC_LDIB); }
1234 cat6_bindless_ldc_opc: T_OP_LDC { new_instr(OPC_LDC); }
1251 cat6_stc: T_OP_STC { new_instr(OPC_STC); } cat6_type 'c' '[' stc_dst ']' ',' src_reg ',' cat6_immed
1253 cat6_todo: T_OP_G2L { new_instr(OPC_G2L); }
1254 | T_OP_L2G { new_instr(OPC_L2G); }
1255 | T_OP_RESFMT { new_instr(OPC_RESFMT); }
1278 cat7_barrier: T_OP_BAR { new_instr(OPC_BAR); } cat7_scopes
1279 | T_OP_FENCE { new_instr(OPC_FENCE); } cat7_scopes