@@ -7,7 +7,7 @@ pub(crate) fn f16_to_f32(fx: &mut FunctionCx<'_, '_, '_>, value: Value) -> Value
77 let ( value, arg_ty) =
88 if fx. tcx . sess . target . is_like_darwin && fx. tcx . sess . target . arch == Arch :: X86_64 {
99 (
10- fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlags :: new ( ) , value) ,
10+ fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlagsData :: new ( ) , value) ,
1111 lib_call_arg_param ( fx. tcx , types:: I16 , false ) ,
1212 )
1313 } else {
@@ -33,7 +33,11 @@ pub(crate) fn f32_to_f16(fx: &mut FunctionCx<'_, '_, '_>, value: Value) -> Value
3333 vec ! [ AbiParam :: new( ret_ty) ] ,
3434 & [ value] ,
3535 ) [ 0 ] ;
36- if ret_ty == types:: I16 { fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlags :: new ( ) , ret) } else { ret }
36+ if ret_ty == types:: I16 {
37+ fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlagsData :: new ( ) , ret)
38+ } else {
39+ ret
40+ }
3741}
3842
3943fn f64_to_f16 ( fx : & mut FunctionCx < ' _ , ' _ , ' _ > , value : Value ) -> Value {
@@ -48,7 +52,11 @@ fn f64_to_f16(fx: &mut FunctionCx<'_, '_, '_>, value: Value) -> Value {
4852 vec ! [ AbiParam :: new( ret_ty) ] ,
4953 & [ value] ,
5054 ) [ 0 ] ;
51- if ret_ty == types:: I16 { fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlags :: new ( ) , ret) } else { ret }
55+ if ret_ty == types:: I16 {
56+ fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlagsData :: new ( ) , ret)
57+ } else {
58+ ret
59+ }
5260}
5361
5462// FIXME(bytecodealliance/wasmtime#8312): Remove once backend lowerings have
@@ -139,52 +147,52 @@ pub(crate) fn codegen_f128_binop(
139147}
140148
141149pub ( crate ) fn neg_f16 ( fx : & mut FunctionCx < ' _ , ' _ , ' _ > , value : Value ) -> Value {
142- let bits = fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlags :: new ( ) , value) ;
150+ let bits = fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlagsData :: new ( ) , value) ;
143151 let bits = fx. bcx . ins ( ) . bxor_imm ( bits, 0x8000 ) ;
144- fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlags :: new ( ) , bits)
152+ fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlagsData :: new ( ) , bits)
145153}
146154
147155pub ( crate ) fn neg_f128 ( fx : & mut FunctionCx < ' _ , ' _ , ' _ > , value : Value ) -> Value {
148- let bits = fx. bcx . ins ( ) . bitcast ( types:: I128 , MemFlags :: new ( ) , value) ;
156+ let bits = fx. bcx . ins ( ) . bitcast ( types:: I128 , MemFlagsData :: new ( ) , value) ;
149157 let ( low, high) = fx. bcx . ins ( ) . isplit ( bits) ;
150158 let high = fx. bcx . ins ( ) . bxor_imm ( high, 0x8000_0000_0000_0000_u64 as i64 ) ;
151159 let bits = fx. bcx . ins ( ) . iconcat ( low, high) ;
152- fx. bcx . ins ( ) . bitcast ( types:: F128 , MemFlags :: new ( ) , bits)
160+ fx. bcx . ins ( ) . bitcast ( types:: F128 , MemFlagsData :: new ( ) , bits)
153161}
154162
155163pub ( crate ) fn abs_f16 ( fx : & mut FunctionCx < ' _ , ' _ , ' _ > , value : Value ) -> Value {
156- let bits = fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlags :: new ( ) , value) ;
164+ let bits = fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlagsData :: new ( ) , value) ;
157165 let bits = fx. bcx . ins ( ) . band_imm ( bits, 0x7fff ) ;
158- fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlags :: new ( ) , bits)
166+ fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlagsData :: new ( ) , bits)
159167}
160168
161169pub ( crate ) fn abs_f128 ( fx : & mut FunctionCx < ' _ , ' _ , ' _ > , value : Value ) -> Value {
162- let bits = fx. bcx . ins ( ) . bitcast ( types:: I128 , MemFlags :: new ( ) , value) ;
170+ let bits = fx. bcx . ins ( ) . bitcast ( types:: I128 , MemFlagsData :: new ( ) , value) ;
163171 let ( low, high) = fx. bcx . ins ( ) . isplit ( bits) ;
164172 let high = fx. bcx . ins ( ) . band_imm ( high, 0x7fff_ffff_ffff_ffff_u64 as i64 ) ;
165173 let bits = fx. bcx . ins ( ) . iconcat ( low, high) ;
166- fx. bcx . ins ( ) . bitcast ( types:: F128 , MemFlags :: new ( ) , bits)
174+ fx. bcx . ins ( ) . bitcast ( types:: F128 , MemFlagsData :: new ( ) , bits)
167175}
168176
169177pub ( crate ) fn copysign_f16 ( fx : & mut FunctionCx < ' _ , ' _ , ' _ > , lhs : Value , rhs : Value ) -> Value {
170- let lhs = fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlags :: new ( ) , lhs) ;
171- let rhs = fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlags :: new ( ) , rhs) ;
178+ let lhs = fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlagsData :: new ( ) , lhs) ;
179+ let rhs = fx. bcx . ins ( ) . bitcast ( types:: I16 , MemFlagsData :: new ( ) , rhs) ;
172180 let res = fx. bcx . ins ( ) . band_imm ( lhs, 0x7fff ) ;
173181 let sign = fx. bcx . ins ( ) . band_imm ( rhs, 0x8000 ) ;
174182 let res = fx. bcx . ins ( ) . bor ( res, sign) ;
175- fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlags :: new ( ) , res)
183+ fx. bcx . ins ( ) . bitcast ( types:: F16 , MemFlagsData :: new ( ) , res)
176184}
177185
178186pub ( crate ) fn copysign_f128 ( fx : & mut FunctionCx < ' _ , ' _ , ' _ > , lhs : Value , rhs : Value ) -> Value {
179- let lhs = fx. bcx . ins ( ) . bitcast ( types:: I128 , MemFlags :: new ( ) , lhs) ;
180- let rhs = fx. bcx . ins ( ) . bitcast ( types:: I128 , MemFlags :: new ( ) , rhs) ;
187+ let lhs = fx. bcx . ins ( ) . bitcast ( types:: I128 , MemFlagsData :: new ( ) , lhs) ;
188+ let rhs = fx. bcx . ins ( ) . bitcast ( types:: I128 , MemFlagsData :: new ( ) , rhs) ;
181189 let ( low, lhs_high) = fx. bcx . ins ( ) . isplit ( lhs) ;
182190 let ( _, rhs_high) = fx. bcx . ins ( ) . isplit ( rhs) ;
183191 let high = fx. bcx . ins ( ) . band_imm ( lhs_high, 0x7fff_ffff_ffff_ffff_u64 as i64 ) ;
184192 let sign = fx. bcx . ins ( ) . band_imm ( rhs_high, 0x8000_0000_0000_0000_u64 as i64 ) ;
185193 let high = fx. bcx . ins ( ) . bor ( high, sign) ;
186194 let res = fx. bcx . ins ( ) . iconcat ( low, high) ;
187- fx. bcx . ins ( ) . bitcast ( types:: F128 , MemFlags :: new ( ) , res)
195+ fx. bcx . ins ( ) . bitcast ( types:: F128 , MemFlagsData :: new ( ) , res)
188196}
189197
190198pub ( crate ) fn codegen_cast (
0 commit comments