File tree 2 files changed +19
-6
lines changed
2 files changed +19
-6
lines changed Original file line number Diff line number Diff line change @@ -99,60 +99,74 @@ fn unord<F: Float>(a: F, b: F) -> bool {
99
99
}
100
100
101
101
intrinsics ! {
102
+ #[ avr_skip]
102
103
pub extern "C" fn __lesf2( a: f32 , b: f32 ) -> i32 {
103
104
cmp( a, b) . to_le_abi( )
104
105
}
105
106
107
+ #[ avr_skip]
106
108
pub extern "C" fn __gesf2( a: f32 , b: f32 ) -> i32 {
107
109
cmp( a, b) . to_ge_abi( )
108
110
}
109
111
112
+ #[ avr_skip]
110
113
#[ arm_aeabi_alias = __aeabi_fcmpun]
111
114
pub extern "C" fn __unordsf2( a: f32 , b: f32 ) -> i32 {
112
115
unord( a, b) as i32
113
116
}
114
117
118
+ #[ avr_skip]
115
119
pub extern "C" fn __eqsf2( a: f32 , b: f32 ) -> i32 {
116
120
cmp( a, b) . to_le_abi( )
117
121
}
118
122
123
+ #[ avr_skip]
119
124
pub extern "C" fn __ltsf2( a: f32 , b: f32 ) -> i32 {
120
125
cmp( a, b) . to_le_abi( )
121
126
}
122
127
128
+ #[ avr_skip]
123
129
pub extern "C" fn __nesf2( a: f32 , b: f32 ) -> i32 {
124
130
cmp( a, b) . to_le_abi( )
125
131
}
126
132
133
+ #[ avr_skip]
127
134
pub extern "C" fn __gtsf2( a: f32 , b: f32 ) -> i32 {
128
135
cmp( a, b) . to_ge_abi( )
129
136
}
130
137
138
+ #[ avr_skip]
131
139
pub extern "C" fn __ledf2( a: f64 , b: f64 ) -> i32 {
132
140
cmp( a, b) . to_le_abi( )
133
141
}
134
142
143
+ #[ avr_skip]
135
144
pub extern "C" fn __gedf2( a: f64 , b: f64 ) -> i32 {
136
145
cmp( a, b) . to_ge_abi( )
137
146
}
138
147
148
+ #[ avr_skip]
139
149
#[ arm_aeabi_alias = __aeabi_dcmpun]
140
150
pub extern "C" fn __unorddf2( a: f64 , b: f64 ) -> i32 {
141
151
unord( a, b) as i32
142
152
}
143
153
154
+ #[ avr_skip]
144
155
pub extern "C" fn __eqdf2( a: f64 , b: f64 ) -> i32 {
145
156
cmp( a, b) . to_le_abi( )
146
157
}
147
158
159
+ #[ avr_skip]
148
160
pub extern "C" fn __ltdf2( a: f64 , b: f64 ) -> i32 {
149
161
cmp( a, b) . to_le_abi( )
150
162
}
151
163
164
+ #[ avr_skip]
152
165
pub extern "C" fn __nedf2( a: f64 , b: f64 ) -> i32 {
153
166
cmp( a, b) . to_le_abi( )
154
167
}
155
168
169
+ #[ avr_skip]
156
170
pub extern "C" fn __gtdf2( a: f64 , b: f64 ) -> i32 {
157
171
cmp( a, b) . to_ge_abi( )
158
172
}
Original file line number Diff line number Diff line change @@ -437,12 +437,11 @@ macro_rules! intrinsics {
437
437
intrinsics!( $( $rest) * ) ;
438
438
) ;
439
439
440
- // For division and modulo, AVR uses a custom calling convention¹ that does
441
- // not match our definitions here. Ideally we would just use hand-written
442
- // naked functions, but that's quite a lot of code to port² - so for the
443
- // time being we are just ignoring the problematic functions, letting
444
- // avr-gcc (which is required to compile to AVR anyway) link them from
445
- // libgcc.
440
+ // For some intrinsics, AVR uses a custom calling convention¹ that does not
441
+ // match our definitions here. Ideally we would just use hand-written naked
442
+ // functions, but that's quite a lot of code to port² - so for the time
443
+ // being we are just ignoring the problematic functions, letting avr-gcc
444
+ // (which is required to compile to AVR anyway) link them from libgcc.
446
445
//
447
446
// ¹ https://gcc.gnu.org/wiki/avr-gcc (see "Exceptions to the Calling
448
447
// Convention")
You can’t perform that action at this time.
0 commit comments