@@ -15,6 +15,7 @@ use crate::ops::{Deref, DerefMut};
15
15
not( target_arch = "aarch64" ) ,
16
16
not( target_arch = "powerpc" ) ,
17
17
not( target_arch = "s390x" ) ,
18
+ not( target_arch = "xtensa" ) ,
18
19
not( target_arch = "x86_64" )
19
20
) ,
20
21
all( target_arch = "aarch64" , target_vendor = "apple" ) ,
@@ -37,6 +38,7 @@ pub struct VaListImpl<'f> {
37
38
not( target_arch = "aarch64" ) ,
38
39
not( target_arch = "powerpc" ) ,
39
40
not( target_arch = "s390x" ) ,
41
+ not( target_arch = "xtensa" ) ,
40
42
not( target_arch = "x86_64" )
41
43
) ,
42
44
all( target_arch = "aarch64" , target_vendor = "apple" ) ,
@@ -113,6 +115,18 @@ pub struct VaListImpl<'f> {
113
115
_marker : PhantomData < & ' f mut & ' f c_void > ,
114
116
}
115
117
118
+ /// Xtensa ABI implementation of a `va_list`.
119
+ #[ cfg( target_arch = "xtensa" ) ]
120
+ #[ repr( C ) ]
121
+ #[ derive( Debug ) ]
122
+ #[ lang = "va_list" ]
123
+ pub struct VaListImpl < ' f > {
124
+ stk : * mut i32 ,
125
+ reg : * mut i32 ,
126
+ ndx : i32 ,
127
+ _marker : PhantomData < & ' f mut & ' f c_void > ,
128
+ }
129
+
116
130
/// A wrapper for a `va_list`
117
131
#[ repr( transparent) ]
118
132
#[ derive( Debug ) ]
@@ -124,6 +138,7 @@ pub struct VaList<'a, 'f: 'a> {
124
138
not( target_arch = "s390x" ) ,
125
139
not( target_arch = "x86_64" )
126
140
) ,
141
+ target_arch = "xtensa" ,
127
142
all( target_arch = "aarch64" , target_vendor = "apple" ) ,
128
143
target_family = "wasm" ,
129
144
target_os = "uefi" ,
@@ -138,6 +153,7 @@ pub struct VaList<'a, 'f: 'a> {
138
153
target_arch = "s390x" ,
139
154
target_arch = "x86_64"
140
155
) ,
156
+ not( target_arch = "xtensa" ) ,
141
157
any( not( target_arch = "aarch64" ) , not( target_vendor = "apple" ) ) ,
142
158
not( target_family = "wasm" ) ,
143
159
not( target_os = "uefi" ) ,
@@ -155,6 +171,7 @@ pub struct VaList<'a, 'f: 'a> {
155
171
not( target_arch = "s390x" ) ,
156
172
not( target_arch = "x86_64" )
157
173
) ,
174
+ target_arch = "xtensa" ,
158
175
all( target_arch = "aarch64" , target_vendor = "apple" ) ,
159
176
target_family = "wasm" ,
160
177
target_os = "uefi" ,
@@ -173,8 +190,10 @@ impl<'f> VaListImpl<'f> {
173
190
target_arch = "aarch64" ,
174
191
target_arch = "powerpc" ,
175
192
target_arch = "s390x" ,
193
+ target_arch = "xtensa" ,
176
194
target_arch = "x86_64"
177
195
) ,
196
+ not( target_arch = "xtensa" ) ,
178
197
any( not( target_arch = "aarch64" ) , not( target_vendor = "apple" ) ) ,
179
198
not( target_family = "wasm" ) ,
180
199
not( target_os = "uefi" ) ,
0 commit comments