split out int and frac division into separate lowlevels

This commit is contained in:
Folkert 2022-08-23 11:07:38 +02:00
parent 2151891ecd
commit 2d366acc6e
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C
6 changed files with 30 additions and 31 deletions

View file

@ -1191,7 +1191,16 @@ impl<'a> LowLevelCall<'a> {
x => todo!("{:?} for {:?}", self.lowlevel, x),
}
}
NumDivUnchecked => {
NumDivFrac => {
self.load_args(backend);
match CodeGenNumType::for_symbol(backend, self.arguments[0]) {
F32 => backend.code_builder.f32_div(),
F64 => backend.code_builder.f64_div(),
Decimal => self.load_args_and_call_zig(backend, bitcode::DEC_DIV),
x => todo!("{:?} for {:?}", self.lowlevel, x),
}
}
NumDivTruncUnchecked => {
self.load_args(backend);
let is_signed = symbol_is_signed_int(backend, self.arguments[0]);
match CodeGenNumType::for_symbol(backend, self.arguments[0]) {
@ -1209,9 +1218,6 @@ impl<'a> LowLevelCall<'a> {
backend.code_builder.i64_div_u()
}
}
F32 => backend.code_builder.f32_div(),
F64 => backend.code_builder.f64_div(),
Decimal => self.load_args_and_call_zig(backend, bitcode::DEC_DIV),
x => todo!("{:?} for {:?}", self.lowlevel, x),
}
}