@@ -29,39 +29,51 @@ extern "unadjusted" {
29
29
}
30
30
31
31
/// Transaction successfully started.
32
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
32
33
pub const _TMSTART_SUCCESS: u64 = 0x00_u64 ;
33
34
34
35
/// Extraction mask for failure reason
36
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
35
37
pub const _TMFAILURE_REASON: u64 = 0x00007FFF_u64 ;
36
38
37
39
/// Transaction retry is possible.
40
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
38
41
pub const _TMFAILURE_RTRY: u64 = 1 << 15 ;
39
42
40
43
/// Transaction executed a TCANCEL instruction
44
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
41
45
pub const _TMFAILURE_CNCL: u64 = 1 << 16 ;
42
46
43
47
/// Transaction aborted because a conflict occurred
48
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
44
49
pub const _TMFAILURE_MEM: u64 = 1 << 17 ;
45
50
46
51
/// Fallback error type for any other reason
52
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
47
53
pub const _TMFAILURE_IMP: u64 = 1 << 18 ;
48
54
49
55
/// Transaction aborted because a non-permissible operation was attempted
56
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
50
57
pub const _TMFAILURE_ERR: u64 = 1 << 19 ;
51
58
52
59
/// Transaction aborted due to read or write set limit was exceeded
60
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
53
61
pub const _TMFAILURE_SIZE: u64 = 1 << 20 ;
54
62
55
63
/// Transaction aborted due to transactional nesting level was exceeded
64
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
56
65
pub const _TMFAILURE_NEST: u64 = 1 << 21 ;
57
66
58
67
/// Transaction aborted due to a debug trap.
68
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
59
69
pub const _TMFAILURE_DBG: u64 = 1 << 22 ;
60
70
61
71
/// Transaction failed from interrupt
72
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
62
73
pub const _TMFAILURE_INT: u64 = 1 << 23 ;
63
74
64
75
/// Indicates a TRIVIAL version of TM is available
76
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
65
77
pub const _TMFAILURE_TRIVIAL: u64 = 1 << 24 ;
66
78
67
79
/// Starts a new transaction. When the transaction starts successfully the return value is 0.
@@ -72,6 +84,7 @@ pub const _TMFAILURE_TRIVIAL: u64 = 1 << 24;
72
84
#[ inline]
73
85
#[ target_feature( enable = "tme" ) ]
74
86
#[ cfg_attr( test, assert_instr( tstart) ) ]
87
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
75
88
pub unsafe fn __tstart ( ) -> u64 {
76
89
aarch64_tstart ( )
77
90
}
@@ -84,6 +97,7 @@ pub unsafe fn __tstart() -> u64 {
84
97
#[ inline]
85
98
#[ target_feature( enable = "tme" ) ]
86
99
#[ cfg_attr( test, assert_instr( tcommit) ) ]
100
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
87
101
pub unsafe fn __tcommit ( ) {
88
102
aarch64_tcommit ( )
89
103
}
@@ -95,6 +109,7 @@ pub unsafe fn __tcommit() {
95
109
#[ target_feature( enable = "tme" ) ]
96
110
#[ cfg_attr( test, assert_instr( tcancel, IMM16 = 0x0 ) ) ]
97
111
#[ rustc_legacy_const_generics( 0 ) ]
112
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
98
113
pub unsafe fn __tcancel < const IMM16 : u64 > ( ) {
99
114
static_assert ! ( IMM16 <= 65535 ) ;
100
115
aarch64_tcancel ( IMM16 ) ;
@@ -107,6 +122,7 @@ pub unsafe fn __tcancel<const IMM16: u64>() {
107
122
#[ inline]
108
123
#[ target_feature( enable = "tme" ) ]
109
124
#[ cfg_attr( test, assert_instr( ttest) ) ]
125
+ #[ unstable( feature = "stdarch_aarch64_tme" , issue = "117216" ) ]
110
126
pub unsafe fn __ttest ( ) -> u64 {
111
127
aarch64_ttest ( )
112
128
}
0 commit comments