File tree Expand file tree Collapse file tree 3 files changed +21
-22
lines changed Expand file tree Collapse file tree 3 files changed +21
-22
lines changed Original file line number Diff line number Diff line change @@ -79,9 +79,27 @@ pub(crate) mod neon;
79
79
pub use neon:: * ;
80
80
81
81
/// Generates the trap instruction `UDF`
82
- #[ cfg( target_arch = "arm" ) ]
83
82
#[ cfg_attr( test, assert_instr( udf) ) ]
84
83
#[ inline]
85
84
pub unsafe fn udf ( ) -> ! {
86
85
crate :: intrinsics:: abort ( )
87
86
}
87
+
88
+ /// Generates a DBG instruction.
89
+ ///
90
+ /// This provides a hint to debugging and related systems. The argument must be
91
+ /// a constant integer from 0 to 15 inclusive. See implementation documentation
92
+ /// for the effect (if any) of this instruction and the meaning of the
93
+ /// argument. This is available only when compliling for AArch32.
94
+ // Section 10.1 of ACLE says that the supported arches are: 7, 7-M
95
+ // "The DBG hint instruction is added in ARMv7. It is UNDEFINED in the ARMv6 base architecture, and
96
+ // executes as a NOP instruction in ARMv6K and ARMv6T2." - ARM Architecture Reference Manual ARMv7-A
97
+ // and ARMv7-R edition (ARM DDI 0406C.c) sections D12.4.1 "ARM instruction set support" and D12.4.2
98
+ // "Thumb instruction set support"
99
+ #[ cfg( any( target_feature = "v7" , doc) ) ]
100
+ #[ inline( always) ]
101
+ #[ rustc_legacy_const_generics( 0 ) ]
102
+ pub unsafe fn __dbg < const IMM4 : i32 > ( ) {
103
+ static_assert_imm4 ! ( IMM4 ) ;
104
+ dbg ( IMM4 ) ;
105
+ }
Original file line number Diff line number Diff line change @@ -69,27 +69,6 @@ pub unsafe fn __yield() {
69
69
hint ( HINT_YIELD ) ;
70
70
}
71
71
72
- /// Generates a DBG instruction.
73
- ///
74
- /// This provides a hint to debugging and related systems. The argument must be
75
- /// a constant integer from 0 to 15 inclusive. See implementation documentation
76
- /// for the effect (if any) of this instruction and the meaning of the
77
- /// argument. This is available only when compliling for AArch32.
78
- // Section 10.1 of ACLE says that the supported arches are: 7, 7-M
79
- // "The DBG hint instruction is added in ARMv7. It is UNDEFINED in the ARMv6 base architecture, and
80
- // executes as a NOP instruction in ARMv6K and ARMv6T2." - ARM Architecture Reference Manual ARMv7-A
81
- // and ARMv7-R edition (ARM DDI 0406C.c) sections D12.4.1 "ARM instruction set support" and D12.4.2
82
- // "Thumb instruction set support"
83
- #[ cfg( target_feature = "v7" ) ]
84
- #[ cfg( any( target_arch = "arm" , doc) ) ]
85
- #[ doc( cfg( target_arch = "arm" ) ) ]
86
- #[ inline( always) ]
87
- #[ rustc_legacy_const_generics( 0 ) ]
88
- pub unsafe fn __dbg < const IMM4 : i32 > ( ) {
89
- static_assert_imm4 ! ( IMM4 ) ;
90
- dbg ( IMM4 ) ;
91
- }
92
-
93
72
/// Generates an unspecified no-op instruction.
94
73
///
95
74
/// Note that not all architectures provide a distinguished NOP instruction. On
Original file line number Diff line number Diff line change @@ -448,6 +448,7 @@ fn verify_all_signatures() {
448
448
"vpadalq_u8" ,
449
449
"vpadalq_u16" ,
450
450
"vpadalq_u32" ,
451
+ "__dbg" ,
451
452
] ;
452
453
if !skip. contains ( & rust. name ) {
453
454
println ! (
@@ -479,6 +480,7 @@ fn verify_all_signatures() {
479
480
"vreinterpret_p64_s64" ,
480
481
"vreinterpret_f32_p64" ,
481
482
"vreinterpretq_f32_p64" ,
483
+ "__dbg" ,
482
484
] ;
483
485
let arm = match map. get ( rust. name ) {
484
486
Some ( i) => i,
You can’t perform that action at this time.
0 commit comments