Add f16 and f128 to rustc_type_ir::FloatTy and rustc_abi::Primitive
Make changes necessary to support these types in the compiler.
This commit is contained in:
@@ -695,9 +695,13 @@ impl MsvcBasicName for ty::UintTy {
|
||||
|
||||
impl MsvcBasicName for ty::FloatTy {
|
||||
fn msvc_basic_name(self) -> &'static str {
|
||||
// FIXME: f16 and f128 have no MSVE representation. We could improve the debuginfo.
|
||||
// See: <https://github.com/rust-lang/rust/pull/114607/files#r1454683264>
|
||||
match self {
|
||||
ty::FloatTy::F16 => "half",
|
||||
ty::FloatTy::F32 => "float",
|
||||
ty::FloatTy::F64 => "double",
|
||||
ty::FloatTy::F128 => "fp128",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,8 +122,10 @@ fn tag_base_type<'ll, 'tcx>(
|
||||
// Niche tags are always normalized to unsized integers of the correct size.
|
||||
match tag.primitive() {
|
||||
Primitive::Int(t, _) => t,
|
||||
Primitive::F16 => Integer::I16,
|
||||
Primitive::F32 => Integer::I32,
|
||||
Primitive::F64 => Integer::I64,
|
||||
Primitive::F128 => Integer::I128,
|
||||
// FIXME(erikdesjardins): handle non-default addrspace ptr sizes
|
||||
Primitive::Pointer(_) => {
|
||||
// If the niche is the NULL value of a reference, then `discr_enum_ty` will be
|
||||
|
||||
Reference in New Issue
Block a user