11#![ allow( clippy:: many_single_char_names) ]
22
3- #[ cfg( target_arch = "x86_64" ) ]
4- use core:: arch:: x86_64:: * ;
53#[ cfg( target_arch = "x86" ) ]
64use core:: arch:: x86:: * ;
5+ #[ cfg( target_arch = "x86_64" ) ]
6+ use core:: arch:: x86_64:: * ;
77
88unsafe fn schedule ( v0 : __m128i , v1 : __m128i , v2 : __m128i , v3 : __m128i ) -> __m128i {
99 let t1 = _mm_sha256msg1_epu32 ( v0, v1) ;
@@ -61,7 +61,7 @@ unsafe fn digest_blocks(state: &mut [u32; 8], blocks: &[[u8; 64]]) {
6161 let mut w0 = _mm_shuffle_epi8 ( _mm_loadu_si128 ( data_ptr. add ( 0 ) ) , MASK ) ;
6262 let mut w1 = _mm_shuffle_epi8 ( _mm_loadu_si128 ( data_ptr. add ( 1 ) ) , MASK ) ;
6363 let mut w2 = _mm_shuffle_epi8 ( _mm_loadu_si128 ( data_ptr. add ( 2 ) ) , MASK ) ;
64- let mut w3 = _mm_shuffle_epi8 ( _mm_loadu_si128 ( data_ptr. add ( 3 ) ) , MASK ) ;
64+ let mut w3 = _mm_shuffle_epi8 ( _mm_loadu_si128 ( data_ptr. add ( 3 ) ) , MASK ) ;
6565 let mut w4;
6666
6767 rounds4 ! ( abef, cdgh, w0, 0 ) ;
@@ -95,6 +95,7 @@ unsafe fn digest_blocks(state: &mut [u32; 8], blocks: &[[u8; 64]]) {
9595 _mm_storeu_si128 ( state_ptr_mut. add ( 1 ) , hgef) ;
9696}
9797
98+ #[ cfg( feature = "cpuid_bool" ) ]
9899pub fn compress ( state : & mut [ u32 ; 8 ] , blocks : & [ [ u8 ; 64 ] ] ) {
99100 // TODO: Replace with https://github.com/rust-lang/rfcs/pull/2725
100101 // after stabilization
@@ -106,3 +107,9 @@ pub fn compress(state: &mut [u32; 8], blocks: &[[u8; 64]]) {
106107 super :: soft:: compress ( state, blocks) ;
107108 }
108109}
110+
111+ /// Use `is_x86_feature_detected` in sgx environment in the future
112+ #[ cfg( not( feature = "cpuid_bool" ) ) ]
113+ pub fn compress ( state : & mut [ u32 ; 8 ] , blocks : & [ [ u8 ; 64 ] ] ) {
114+ super :: soft:: compress ( state, blocks) ;
115+ }
0 commit comments