@@ -57,6 +57,7 @@ static M256D: Type = Type::M256D;
57
57
58
58
static TUPLE : Type = Type :: Tuple ;
59
59
static CPUID : Type = Type :: CpuidResult ;
60
+ static NEVER : Type = Type :: Never ;
60
61
61
62
#[ derive( Debug ) ]
62
63
enum Type {
@@ -73,6 +74,7 @@ enum Type {
73
74
M256I ,
74
75
Tuple ,
75
76
CpuidResult ,
77
+ Never ,
76
78
}
77
79
78
80
x86_functions ! ( static FUNCTIONS ) ;
@@ -135,14 +137,20 @@ fn verify_all_signatures() {
135
137
let mut all_valid = true ;
136
138
' outer: for rust in FUNCTIONS {
137
139
match rust. name {
138
- // These aren't defined by Intel but they're defined by what
139
- // appears to be all other compilers. For more
140
- // information see rust-lang-nursery/stdsimd#307, and
141
- // otherwise these signatures have all been manually
142
- // verified.
143
- "__readeflags" | "__writeeflags" | "__cpuid_count" | "__cpuid"
144
- | "__get_cpuid_max" => continue ,
145
-
140
+ // These aren't defined by Intel but they're defined by what appears
141
+ // to be all other compilers. For more information see
142
+ // rust-lang-nursery/stdsimd#307, and otherwise these signatures
143
+ // have all been manually verified.
144
+ "__readeflags" |
145
+ "__writeeflags" |
146
+ "__cpuid_count" |
147
+ "__cpuid" |
148
+ "__get_cpuid_max" |
149
+ // The UD2 intrinsic is not defined by Intel, but it was agreed on
150
+ // in the RFC Issue 2512:
151
+ // https://github.com/rust-lang/rfcs/issues/2512
152
+ "ud2"
153
+ => continue ,
146
154
_ => { }
147
155
}
148
156
0 commit comments