@@ -4919,6 +4919,67 @@ const aarch64_sys_ins_reg aarch64_sys_regs_tlbi[] =
49194919 { "paallos" , CPENS (6 , C8 , C1 , 4 ), 0 },
49204920 { "paall" , CPENS (6 , C8 , C7 , 4 ), 0 },
49214921
4922+ { "vae1osnxs" , CPENS (0 , C9 , C1 , 1 ), F_HASXT | F_ARCHEXT },
4923+ { "vaae1osnxs" , CPENS (0 , C9 , C1 , 3 ), F_HASXT | F_ARCHEXT },
4924+ { "vale1osnxs" , CPENS (0 , C9 , C1 , 5 ), F_HASXT | F_ARCHEXT },
4925+ { "vaale1osnxs" , CPENS (0 , C9 , C1 , 7 ), F_HASXT | F_ARCHEXT },
4926+ { "rvae1isnxs" , CPENS (0 , C9 , C2 , 1 ), F_HASXT | F_ARCHEXT },
4927+ { "rvaae1isnxs" , CPENS (0 , C9 , C2 , 3 ), F_HASXT | F_ARCHEXT },
4928+ { "rvale1isnxs" , CPENS (0 , C9 , C2 , 5 ), F_HASXT | F_ARCHEXT },
4929+ { "rvaale1isnxs" , CPENS (0 , C9 , C2 , 7 ), F_HASXT | F_ARCHEXT },
4930+ { "vae1isnxs" , CPENS (0 , C9 , C3 , 1 ), F_HASXT },
4931+ { "vaae1isnxs" , CPENS (0 , C9 , C3 , 3 ), F_HASXT },
4932+ { "vale1isnxs" , CPENS (0 , C9 , C3 , 5 ), F_HASXT },
4933+ { "vaale1isnxs" , CPENS (0 , C9 , C3 , 7 ), F_HASXT },
4934+ { "rvae1osnxs" , CPENS (0 , C9 , C5 , 1 ), F_HASXT | F_ARCHEXT },
4935+ { "rvaae1osnxs" , CPENS (0 , C9 , C5 , 3 ), F_HASXT | F_ARCHEXT },
4936+ { "rvale1osnxs" , CPENS (0 , C9 , C5 , 5 ), F_HASXT | F_ARCHEXT },
4937+ { "rvaale1osnxs" , CPENS (0 , C9 , C5 , 7 ), F_HASXT | F_ARCHEXT },
4938+ { "rvae1nxs" , CPENS (0 , C9 , C6 , 1 ), F_HASXT | F_ARCHEXT },
4939+ { "rvaae1nxs" , CPENS (0 , C9 , C6 , 3 ), F_HASXT | F_ARCHEXT },
4940+ { "rvale1nxs" , CPENS (0 , C9 , C6 , 5 ), F_HASXT | F_ARCHEXT },
4941+ { "rvaale1nxs" , CPENS (0 , C9 , C6 , 7 ), F_HASXT | F_ARCHEXT },
4942+ { "vae1nxs" , CPENS (0 , C9 , C7 , 1 ), F_HASXT },
4943+ { "vaae1nxs" , CPENS (0 , C9 , C7 , 3 ), F_HASXT },
4944+ { "vale1nxs" , CPENS (0 , C9 , C7 , 5 ), F_HASXT },
4945+ { "vaale1nxs" , CPENS (0 , C9 , C7 , 7 ), F_HASXT },
4946+ { "ipas2e1isnxs" , CPENS (4 , C9 , C0 , 1 ), F_HASXT },
4947+ { "ripas2e1isnxs" , CPENS (4 , C9 , C0 , 2 ), F_HASXT | F_ARCHEXT },
4948+ { "ipas2le1isnxs" , CPENS (4 , C9 , C0 , 5 ), F_HASXT },
4949+ { "ripas2le1isnxs" , CPENS (4 , C9 , C0 , 6 ), F_HASXT | F_ARCHEXT },
4950+ { "vae2osnxs" , CPENS (4 , C9 , C1 , 1 ), F_HASXT | F_ARCHEXT },
4951+ { "vale2osnxs" , CPENS (4 , C9 , C1 , 5 ), F_HASXT | F_ARCHEXT },
4952+ { "rvae2isnxs" , CPENS (4 , C9 , C2 , 1 ), F_HASXT | F_ARCHEXT },
4953+ { "rvale2isnxs" , CPENS (4 , C9 , C2 , 5 ), F_HASXT | F_ARCHEXT },
4954+ { "vae2isnxs" , CPENS (4 , C9 , C3 , 1 ), F_HASXT },
4955+ { "vale2isnxs" , CPENS (4 , C9 , C3 , 5 ), F_HASXT },
4956+ { "ipas2e1osnxs" , CPENS (4 , C9 , C4 , 0 ), F_HASXT | F_ARCHEXT },
4957+ { "ipas2e1nxs" , CPENS (4 , C9 , C4 , 1 ), F_HASXT },
4958+ { "ripas2e1nxs" , CPENS (4 , C9 , C4 , 2 ), F_HASXT | F_ARCHEXT },
4959+ { "ripas2e1osnxs" , CPENS (4 , C9 , C4 , 3 ), F_HASXT | F_ARCHEXT },
4960+ { "ipas2le1osnxs" , CPENS (4 , C9 , C4 , 4 ), F_HASXT | F_ARCHEXT },
4961+ { "ipas2le1nxs" , CPENS (4 , C9 , C4 , 5 ), F_HASXT },
4962+ { "ripas2le1nxs" , CPENS (4 , C9 , C4 , 6 ), F_HASXT | F_ARCHEXT },
4963+ { "ripas2le1osnxs" , CPENS (4 , C9 , C4 , 7 ), F_HASXT | F_ARCHEXT },
4964+ { "rvae2osnxs" , CPENS (4 , C9 , C5 , 1 ), F_HASXT | F_ARCHEXT },
4965+ { "rvale2osnxs" , CPENS (4 , C9 , C5 , 5 ), F_HASXT | F_ARCHEXT },
4966+ { "rvae2nxs" , CPENS (4 , C9 , C6 , 1 ), F_HASXT | F_ARCHEXT },
4967+ { "rvale2nxs" , CPENS (4 , C9 , C6 , 5 ), F_HASXT | F_ARCHEXT },
4968+ { "vae2nxs" , CPENS (4 , C9 , C7 , 1 ), F_HASXT },
4969+ { "vale2nxs" , CPENS (4 , C9 , C7 , 5 ), F_HASXT },
4970+ { "vae3osnxs" , CPENS (6 , C9 , C1 , 1 ), F_HASXT | F_ARCHEXT },
4971+ { "vale3osnxs" , CPENS (6 , C9 , C1 , 5 ), F_HASXT | F_ARCHEXT },
4972+ { "rvae3isnxs" , CPENS (6 , C9 , C2 , 1 ), F_HASXT | F_ARCHEXT },
4973+ { "rvale3isnxs" , CPENS (6 , C9 , C2 , 5 ), F_HASXT | F_ARCHEXT },
4974+ { "vae3isnxs" , CPENS (6 , C9 , C3 , 1 ), F_HASXT },
4975+ { "vale3isnxs" , CPENS (6 , C9 , C3 , 5 ), F_HASXT },
4976+ { "rvae3osnxs" , CPENS (6 , C9 , C5 , 1 ), F_HASXT | F_ARCHEXT },
4977+ { "rvale3osnxs" , CPENS (6 , C9 , C5 , 5 ), F_HASXT | F_ARCHEXT },
4978+ { "rvae3nxs" , CPENS (6 , C9 , C6 , 1 ), F_HASXT | F_ARCHEXT },
4979+ { "rvale3nxs" , CPENS (6 , C9 , C6 , 5 ), F_HASXT | F_ARCHEXT },
4980+ { "vae3nxs" , CPENS (6 , C9 , C7 , 1 ), F_HASXT },
4981+ { "vale3nxs" , CPENS (6 , C9 , C7 , 5 ), F_HASXT },
4982+
49224983 { 0 , CPENS (0 ,0 ,0 ,0 ), 0 }
49234984};
49244985
@@ -5043,6 +5104,69 @@ aarch64_sys_ins_reg_supported_p (const aarch64_feature_set features,
50435104 && AARCH64_CPU_HAS_FEATURE (features , MEMTAG ))
50445105 return true;
50455106
5107+ if ((reg_value == CPENS (0 , C9 , C1 , 1 )
5108+ || reg_value == CPENS (0 , C9 , C1 , 3 )
5109+ || reg_value == CPENS (0 , C9 , C1 , 5 )
5110+ || reg_value == CPENS (0 , C9 , C1 , 7 )
5111+ || reg_value == CPENS (0 , C9 , C2 , 1 )
5112+ || reg_value == CPENS (0 , C9 , C2 , 3 )
5113+ || reg_value == CPENS (0 , C9 , C2 , 5 )
5114+ || reg_value == CPENS (0 , C9 , C2 , 7 )
5115+ || reg_value == CPENS (0 , C9 , C3 , 1 )
5116+ || reg_value == CPENS (0 , C9 , C3 , 3 )
5117+ || reg_value == CPENS (0 , C9 , C3 , 5 )
5118+ || reg_value == CPENS (0 , C9 , C3 , 7 )
5119+ || reg_value == CPENS (0 , C9 , C5 , 1 )
5120+ || reg_value == CPENS (0 , C9 , C5 , 3 )
5121+ || reg_value == CPENS (0 , C9 , C5 , 5 )
5122+ || reg_value == CPENS (0 , C9 , C5 , 7 )
5123+ || reg_value == CPENS (0 , C9 , C6 , 1 )
5124+ || reg_value == CPENS (0 , C9 , C6 , 3 )
5125+ || reg_value == CPENS (0 , C9 , C6 , 5 )
5126+ || reg_value == CPENS (0 , C9 , C6 , 7 )
5127+ || reg_value == CPENS (0 , C9 , C7 , 1 )
5128+ || reg_value == CPENS (0 , C9 , C7 , 3 )
5129+ || reg_value == CPENS (0 , C9 , C7 , 5 )
5130+ || reg_value == CPENS (0 , C9 , C7 , 7 )
5131+ || reg_value == CPENS (4 , C9 , C0 , 1 )
5132+ || reg_value == CPENS (4 , C9 , C0 , 2 )
5133+ || reg_value == CPENS (4 , C9 , C0 , 5 )
5134+ || reg_value == CPENS (4 , C9 , C0 , 6 )
5135+ || reg_value == CPENS (4 , C9 , C1 , 1 )
5136+ || reg_value == CPENS (4 , C9 , C1 , 5 )
5137+ || reg_value == CPENS (4 , C9 , C2 , 1 )
5138+ || reg_value == CPENS (4 , C9 , C2 , 5 )
5139+ || reg_value == CPENS (4 , C9 , C3 , 1 )
5140+ || reg_value == CPENS (4 , C9 , C3 , 5 )
5141+ || reg_value == CPENS (4 , C9 , C4 , 0 )
5142+ || reg_value == CPENS (4 , C9 , C4 , 1 )
5143+ || reg_value == CPENS (4 , C9 , C4 , 2 )
5144+ || reg_value == CPENS (4 , C9 , C4 , 3 )
5145+ || reg_value == CPENS (4 , C9 , C4 , 4 )
5146+ || reg_value == CPENS (4 , C9 , C4 , 5 )
5147+ || reg_value == CPENS (4 , C9 , C4 , 6 )
5148+ || reg_value == CPENS (4 , C9 , C4 , 7 )
5149+ || reg_value == CPENS (4 , C9 , C5 , 1 )
5150+ || reg_value == CPENS (4 , C9 , C5 , 5 )
5151+ || reg_value == CPENS (4 , C9 , C6 , 1 )
5152+ || reg_value == CPENS (4 , C9 , C6 , 5 )
5153+ || reg_value == CPENS (4 , C9 , C7 , 1 )
5154+ || reg_value == CPENS (4 , C9 , C7 , 5 )
5155+ || reg_value == CPENS (6 , C9 , C1 , 1 )
5156+ || reg_value == CPENS (6 , C9 , C1 , 5 )
5157+ || reg_value == CPENS (6 , C9 , C2 , 1 )
5158+ || reg_value == CPENS (6 , C9 , C2 , 5 )
5159+ || reg_value == CPENS (6 , C9 , C3 , 1 )
5160+ || reg_value == CPENS (6 , C9 , C3 , 5 )
5161+ || reg_value == CPENS (6 , C9 , C5 , 1 )
5162+ || reg_value == CPENS (6 , C9 , C5 , 5 )
5163+ || reg_value == CPENS (6 , C9 , C6 , 1 )
5164+ || reg_value == CPENS (6 , C9 , C6 , 5 )
5165+ || reg_value == CPENS (6 , C9 , C7 , 1 )
5166+ || reg_value == CPENS (6 , C9 , C7 , 5 ))
5167+ && AARCH64_CPU_HAS_FEATURE (features , D128 ))
5168+ return true;
5169+
50465170 /* AT S1E1RP, AT S1E1WP. Values are from aarch64_sys_regs_at. */
50475171 if ((reg_value == CPENS (0 , C7 , C9 , 0 )
50485172 || reg_value == CPENS (0 , C7 , C9 , 1 ))
0 commit comments