Add support for Float64
This commit is contained in:
parent
2eaac2388d
commit
dabf5faff0
@ -186,6 +186,7 @@ fn module_codegen(
|
|||||||
// context.
|
// context.
|
||||||
let f16_type_supported = target_info.supports_target_dependent_type(CType::Float16);
|
let f16_type_supported = target_info.supports_target_dependent_type(CType::Float16);
|
||||||
let f32_type_supported = target_info.supports_target_dependent_type(CType::Float32);
|
let f32_type_supported = target_info.supports_target_dependent_type(CType::Float32);
|
||||||
|
let f64_type_supported = target_info.supports_target_dependent_type(CType::Float64);
|
||||||
let f128_type_supported = target_info.supports_target_dependent_type(CType::Float128);
|
let f128_type_supported = target_info.supports_target_dependent_type(CType::Float128);
|
||||||
// TODO: improve this to avoid passing that many arguments.
|
// TODO: improve this to avoid passing that many arguments.
|
||||||
let cx = CodegenCx::new(
|
let cx = CodegenCx::new(
|
||||||
@ -195,6 +196,7 @@ fn module_codegen(
|
|||||||
target_info.supports_128bit_int(),
|
target_info.supports_128bit_int(),
|
||||||
f16_type_supported,
|
f16_type_supported,
|
||||||
f32_type_supported,
|
f32_type_supported,
|
||||||
|
f64_type_supported,
|
||||||
f128_type_supported,
|
f128_type_supported,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -70,6 +70,7 @@ pub struct CodegenCx<'gcc, 'tcx> {
|
|||||||
pub supports_128bit_integers: bool,
|
pub supports_128bit_integers: bool,
|
||||||
pub supports_f16_type: bool,
|
pub supports_f16_type: bool,
|
||||||
pub supports_f32_type: bool,
|
pub supports_f32_type: bool,
|
||||||
|
pub supports_f64_type: bool,
|
||||||
pub supports_f128_type: bool,
|
pub supports_f128_type: bool,
|
||||||
|
|
||||||
pub float_type: Type<'gcc>,
|
pub float_type: Type<'gcc>,
|
||||||
@ -135,6 +136,7 @@ pub fn new(
|
|||||||
supports_128bit_integers: bool,
|
supports_128bit_integers: bool,
|
||||||
supports_f16_type: bool,
|
supports_f16_type: bool,
|
||||||
supports_f32_type: bool,
|
supports_f32_type: bool,
|
||||||
|
supports_f64_type: bool,
|
||||||
supports_f128_type: bool,
|
supports_f128_type: bool,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let check_overflow = tcx.sess.overflow_checks();
|
let check_overflow = tcx.sess.overflow_checks();
|
||||||
@ -313,6 +315,7 @@ pub fn new(
|
|||||||
supports_128bit_integers,
|
supports_128bit_integers,
|
||||||
supports_f16_type,
|
supports_f16_type,
|
||||||
supports_f32_type,
|
supports_f32_type,
|
||||||
|
supports_f64_type,
|
||||||
supports_f128_type,
|
supports_f128_type,
|
||||||
|
|
||||||
float_type,
|
float_type,
|
||||||
|
@ -142,6 +142,10 @@ fn type_f32(&self) -> Type<'gcc> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn type_f64(&self) -> Type<'gcc> {
|
fn type_f64(&self) -> Type<'gcc> {
|
||||||
|
#[cfg(feature = "master")]
|
||||||
|
if self.supports_f64_type {
|
||||||
|
return self.context.new_c_type(CType::Float64);
|
||||||
|
}
|
||||||
self.double_type
|
self.double_type
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user