@@ -14,73 +14,68 @@ mod v6;
14
14
pub use self :: v6:: * ;
15
15
16
16
// Supported arches: 6, 7-M. See Section 10.1 of ACLE (e.g. SSAT)
17
- #[ cfg( any( all ( not ( target_arch = "aarch64" ) , target_feature = "v6" , ) , doc) ) ]
17
+ #[ cfg( any( target_feature = "v6" , doc) ) ]
18
18
mod sat;
19
19
20
- #[ cfg( any( all ( not ( target_arch = "aarch64" ) , target_feature = "v6" , ) , doc) ) ]
20
+ #[ cfg( any( target_feature = "v6" , doc) ) ]
21
21
pub use self :: sat:: * ;
22
22
23
23
// Supported arches: 5TE, 7E-M. See Section 10.1 of ACLE (e.g. QADD)
24
24
// We also include the A profile even though DSP is deprecated on that profile as of ACLE 2.0 (see
25
25
// section 5.4.7)
26
26
// Here we workaround the difference between LLVM's +dsp and ACLE's __ARM_FEATURE_DSP by gating on
27
27
// '+v5te' rather than on '+dsp'
28
- #[ cfg( any( all(
29
- not( target_arch = "aarch64" ) ,
30
- any(
31
- // >= v5TE but excludes v7-M
32
- all( target_feature = "v5te" , not( target_feature = "mclass" ) ) ,
33
- // v7E-M
34
- all( target_feature = "mclass" , target_feature = "dsp" ) ,
35
- )
36
- ) , doc) ) ]
28
+ #[ cfg( any(
29
+ // >= v5TE but excludes v7-M
30
+ all( target_feature = "v5te" , not( target_feature = "mclass" ) ) ,
31
+ // v7E-M
32
+ all( target_feature = "mclass" , target_feature = "dsp" ) ,
33
+ doc,
34
+ ) ) ]
37
35
pub ( crate ) mod dsp;
38
36
39
37
#[ cfg( any(
40
- all(
41
- not( target_arch = "aarch64" ) ,
42
- any(
43
- all( target_feature = "v5te" , not( target_feature = "mclass" ) ) ,
44
- all( target_feature = "mclass" , target_feature = "dsp" ) ,
45
- )
46
- ) ,
47
- doc
38
+ // >= v5TE but excludes v7-M
39
+ all( target_feature = "v5te" , not( target_feature = "mclass" ) ) ,
40
+ // v7E-M
41
+ all( target_feature = "mclass" , target_feature = "dsp" ) ,
42
+ doc,
48
43
) ) ]
49
44
pub use self :: dsp:: * ;
50
45
51
46
// Deprecated in ACLE 2.0 for the A profile but fully supported on the M and R profiles, says
52
47
// Section 5.4.9 of ACLE. We'll expose these for the A profile even if deprecated
53
- #[ cfg( all(
54
- not( target_arch = "aarch64" ) ,
55
- any(
56
- // v7-A, v7-R
57
- all( target_feature = "v6" , not( target_feature = "mclass" ) ) ,
58
- // v7E-M
59
- all( target_feature = "mclass" , target_feature = "dsp" )
60
- )
48
+ #[ cfg( any(
49
+ // v7-A, v7-R
50
+ all( target_feature = "v6" , not( target_feature = "mclass" ) ) ,
51
+ // v7E-M
52
+ all( target_feature = "mclass" , target_feature = "dsp" ) ,
53
+ doc,
61
54
) ) ]
62
55
mod simd32;
63
56
64
- #[ cfg( all (
65
- not ( target_arch = "aarch64" ) ,
66
- any (
67
- all ( target_feature = "v6" , not ( target_feature = "mclass" ) ) ,
68
- all( target_feature = "mclass" , target_feature = "dsp" )
69
- )
57
+ #[ cfg( any (
58
+ // v7-A, v7-R
59
+ all ( target_feature = "v6" , not ( target_feature = "mclass" ) ) ,
60
+ // v7E-M
61
+ all( target_feature = "mclass" , target_feature = "dsp" ) ,
62
+ doc ,
70
63
) ) ]
71
64
pub use self :: simd32:: * ;
72
65
73
- #[ cfg( any( target_arch = "aarch64" , target_feature = "v7" ) ) ]
66
+ #[ cfg( any( target_feature = "v7" , doc ) ) ]
74
67
mod v7;
75
- #[ cfg( any( target_arch = "aarch64" , target_feature = "v7" ) ) ]
68
+ #[ cfg( any( target_feature = "v7" , doc ) ) ]
76
69
pub use self :: v7:: * ;
77
70
78
71
pub use crate :: core_arch:: acle:: * ;
79
72
80
73
#[ cfg( test) ]
81
74
use stdarch_test:: assert_instr;
82
75
76
+ #[ cfg( any( target_feature = "v7" , doc) ) ]
83
77
pub ( crate ) mod neon;
78
+ #[ cfg( any( target_feature = "v7" , doc) ) ]
84
79
pub use neon:: * ;
85
80
86
81
/// Generates the trap instruction `UDF`
@@ -92,4 +87,5 @@ pub unsafe fn udf() -> ! {
92
87
}
93
88
94
89
#[ cfg( test) ]
90
+ #[ cfg( any( target_feature = "v7" , doc) ) ]
95
91
pub ( crate ) mod test_support;
0 commit comments