@@ -31,14 +31,16 @@ enum CORINFO_InstructionSet
3131 InstructionSet_Rcpc=13 ,
3232 InstructionSet_VectorT128=14 ,
3333 InstructionSet_Rcpc2=15 ,
34- InstructionSet_ArmBase_Arm64=16 ,
35- InstructionSet_AdvSimd_Arm64=17 ,
36- InstructionSet_Aes_Arm64=18 ,
37- InstructionSet_Crc32_Arm64=19 ,
38- InstructionSet_Dp_Arm64=20 ,
39- InstructionSet_Rdm_Arm64=21 ,
40- InstructionSet_Sha1_Arm64=22 ,
41- InstructionSet_Sha256_Arm64=23 ,
34+ InstructionSet_Sve=16 ,
35+ InstructionSet_ArmBase_Arm64=17 ,
36+ InstructionSet_AdvSimd_Arm64=18 ,
37+ InstructionSet_Aes_Arm64=19 ,
38+ InstructionSet_Crc32_Arm64=20 ,
39+ InstructionSet_Dp_Arm64=21 ,
40+ InstructionSet_Rdm_Arm64=22 ,
41+ InstructionSet_Sha1_Arm64=23 ,
42+ InstructionSet_Sha256_Arm64=24 ,
43+ InstructionSet_Sve_Arm64=25 ,
4244#endif // TARGET_ARM64
4345#ifdef TARGET_AMD64
4446 InstructionSet_X86Base=1 ,
@@ -282,6 +284,8 @@ struct CORINFO_InstructionSetFlags
282284 AddInstructionSet (InstructionSet_Sha1_Arm64);
283285 if (HasInstructionSet (InstructionSet_Sha256))
284286 AddInstructionSet (InstructionSet_Sha256_Arm64);
287+ if (HasInstructionSet (InstructionSet_Sve))
288+ AddInstructionSet (InstructionSet_Sve_Arm64);
285289#endif // TARGET_ARM64
286290#ifdef TARGET_AMD64
287291 if (HasInstructionSet (InstructionSet_X86Base))
@@ -394,6 +398,10 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins
394398 resultflags.RemoveInstructionSet (InstructionSet_Sha256);
395399 if (resultflags.HasInstructionSet (InstructionSet_Sha256_Arm64) && !resultflags.HasInstructionSet (InstructionSet_Sha256))
396400 resultflags.RemoveInstructionSet (InstructionSet_Sha256_Arm64);
401+ if (resultflags.HasInstructionSet (InstructionSet_Sve) && !resultflags.HasInstructionSet (InstructionSet_Sve_Arm64))
402+ resultflags.RemoveInstructionSet (InstructionSet_Sve);
403+ if (resultflags.HasInstructionSet (InstructionSet_Sve_Arm64) && !resultflags.HasInstructionSet (InstructionSet_Sve))
404+ resultflags.RemoveInstructionSet (InstructionSet_Sve_Arm64);
397405 if (resultflags.HasInstructionSet (InstructionSet_AdvSimd) && !resultflags.HasInstructionSet (InstructionSet_ArmBase))
398406 resultflags.RemoveInstructionSet (InstructionSet_AdvSimd);
399407 if (resultflags.HasInstructionSet (InstructionSet_Aes) && !resultflags.HasInstructionSet (InstructionSet_ArmBase))
@@ -414,6 +422,8 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins
414422 resultflags.RemoveInstructionSet (InstructionSet_Vector128);
415423 if (resultflags.HasInstructionSet (InstructionSet_VectorT128) && !resultflags.HasInstructionSet (InstructionSet_AdvSimd))
416424 resultflags.RemoveInstructionSet (InstructionSet_VectorT128);
425+ if (resultflags.HasInstructionSet (InstructionSet_Sve) && !resultflags.HasInstructionSet (InstructionSet_AdvSimd))
426+ resultflags.RemoveInstructionSet (InstructionSet_Sve);
417427#endif // TARGET_ARM64
418428#ifdef TARGET_AMD64
419429 if (resultflags.HasInstructionSet (InstructionSet_X86Base) && !resultflags.HasInstructionSet (InstructionSet_X86Base_X64))
@@ -764,6 +774,10 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet)
764774 return " VectorT128" ;
765775 case InstructionSet_Rcpc2 :
766776 return " Rcpc2" ;
777+ case InstructionSet_Sve :
778+ return " Sve" ;
779+ case InstructionSet_Sve_Arm64 :
780+ return " Sve_Arm64" ;
767781#endif // TARGET_ARM64
768782#ifdef TARGET_AMD64
769783 case InstructionSet_X86Base :
@@ -998,6 +1012,7 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst
9981012 case READYTORUN_INSTRUCTION_Rcpc: return InstructionSet_Rcpc;
9991013 case READYTORUN_INSTRUCTION_VectorT128: return InstructionSet_VectorT128;
10001014 case READYTORUN_INSTRUCTION_Rcpc2: return InstructionSet_Rcpc2;
1015+ case READYTORUN_INSTRUCTION_Sve: return InstructionSet_Sve;
10011016#endif // TARGET_ARM64
10021017#ifdef TARGET_AMD64
10031018 case READYTORUN_INSTRUCTION_X86Base: return InstructionSet_X86Base;
0 commit comments