File tree Expand file tree Collapse file tree 4 files changed +7
-0
lines changed Expand file tree Collapse file tree 4 files changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -91,6 +91,7 @@ features! {
9191 /// * `"cmpxchg16b"`
9292 /// * `"adx"`
9393 /// * `"rtm"`
94+ /// * `"movbe"`
9495 ///
9596 /// [docs]: https://software.intel.com/sites/landingpage/IntrinsicsGuide
9697 #[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
@@ -197,4 +198,6 @@ features! {
197198 /// ADX, Intel ADX (Multi-Precision Add-Carry Instruction Extensions)
198199 @FEATURE : #[ stable( feature = "simd_x86" , since = "1.27.0" ) ] rtm: "rtm" ;
199200 /// RTM, Intel (Restricted Transactional Memory)
201+ @FEATURE : #[ stable( feature = "movbe_target_feature" , since = "1.67.0" ) ] movbe: "movbe" ;
202+ /// MOVBE (Move Data After Swapping Bytes)
200203}
Original file line number Diff line number Diff line change @@ -111,6 +111,7 @@ pub(crate) fn detect_features() -> cache::Initializer {
111111 enable ( proc_info_ecx, 13 , Feature :: cmpxchg16b) ;
112112 enable ( proc_info_ecx, 19 , Feature :: sse4_1) ;
113113 enable ( proc_info_ecx, 20 , Feature :: sse4_2) ;
114+ enable ( proc_info_ecx, 22 , Feature :: movbe) ;
114115 enable ( proc_info_ecx, 23 , Feature :: popcnt) ;
115116 enable ( proc_info_ecx, 25 , Feature :: aes) ;
116117 enable ( proc_info_ecx, 29 , Feature :: f16c) ;
Original file line number Diff line number Diff line change @@ -152,6 +152,7 @@ fn x86_all() {
152152 println ! ( "abm: {:?}" , is_x86_feature_detected!( "abm" ) ) ;
153153 println ! ( "lzcnt: {:?}" , is_x86_feature_detected!( "lzcnt" ) ) ;
154154 println ! ( "tbm: {:?}" , is_x86_feature_detected!( "tbm" ) ) ;
155+ println ! ( "movbe: {:?}" , is_x86_feature_detected!( "movbe" ) ) ;
155156 println ! ( "popcnt: {:?}" , is_x86_feature_detected!( "popcnt" ) ) ;
156157 println ! ( "fxsr: {:?}" , is_x86_feature_detected!( "fxsr" ) ) ;
157158 println ! ( "xsave: {:?}" , is_x86_feature_detected!( "xsave" ) ) ;
Original file line number Diff line number Diff line change @@ -64,6 +64,7 @@ fn dump() {
6464 println ! ( "cmpxchg16b: {:?}" , is_x86_feature_detected!( "cmpxchg16b" ) ) ;
6565 println ! ( "adx: {:?}" , is_x86_feature_detected!( "adx" ) ) ;
6666 println ! ( "rtm: {:?}" , is_x86_feature_detected!( "rtm" ) ) ;
67+ println ! ( "movbe: {:?}" , is_x86_feature_detected!( "movbe" ) ) ;
6768}
6869
6970#[ cfg( feature = "std_detect_env_override" ) ]
@@ -152,4 +153,5 @@ fn compare_with_cupid() {
152153 ) ;
153154 assert_eq ! ( is_x86_feature_detected!( "adx" ) , information. adx( ) , ) ;
154155 assert_eq ! ( is_x86_feature_detected!( "rtm" ) , information. rtm( ) , ) ;
156+ assert_eq ! ( is_x86_feature_detected!( "movbe" ) , information. movbe( ) , ) ;
155157}
You can’t perform that action at this time.
0 commit comments