add wasm backend hooks

This commit is contained in:
Brendan Hansknecht 2023-09-16 23:05:12 -07:00
parent 346eb80bd1
commit e270f36422
No known key found for this signature in database
GPG key ID: 0EA784685083E75B

View file

@ -1531,18 +1531,27 @@ impl<'a> LowLevelCall<'a> {
LayoutRepr::Builtin(Builtin::Float(width)) => { LayoutRepr::Builtin(Builtin::Float(width)) => {
self.load_args_and_call_zig(backend, &bitcode::NUM_SIN[width]); self.load_args_and_call_zig(backend, &bitcode::NUM_SIN[width]);
} }
LayoutRepr::Builtin(Builtin::Decimal) => {
self.load_args_and_call_zig(backend, bitcode::DEC_SIN);
}
_ => panic_ret_type(), _ => panic_ret_type(),
}, },
NumCos => match self.ret_layout_raw { NumCos => match self.ret_layout_raw {
LayoutRepr::Builtin(Builtin::Float(width)) => { LayoutRepr::Builtin(Builtin::Float(width)) => {
self.load_args_and_call_zig(backend, &bitcode::NUM_COS[width]); self.load_args_and_call_zig(backend, &bitcode::NUM_COS[width]);
} }
LayoutRepr::Builtin(Builtin::Decimal) => {
self.load_args_and_call_zig(backend, bitcode::DEC_COS);
}
_ => panic_ret_type(), _ => panic_ret_type(),
}, },
NumTan => match self.ret_layout_raw { NumTan => match self.ret_layout_raw {
LayoutRepr::Builtin(Builtin::Float(width)) => { LayoutRepr::Builtin(Builtin::Float(width)) => {
self.load_args_and_call_zig(backend, &bitcode::NUM_TAN[width]); self.load_args_and_call_zig(backend, &bitcode::NUM_TAN[width]);
} }
LayoutRepr::Builtin(Builtin::Decimal) => {
self.load_args_and_call_zig(backend, bitcode::DEC_TAN);
}
_ => panic_ret_type(), _ => panic_ret_type(),
}, },
NumSqrtUnchecked => { NumSqrtUnchecked => {
@ -1726,18 +1735,27 @@ impl<'a> LowLevelCall<'a> {
LayoutRepr::Builtin(Builtin::Float(width)) => { LayoutRepr::Builtin(Builtin::Float(width)) => {
self.load_args_and_call_zig(backend, &bitcode::NUM_ATAN[width]); self.load_args_and_call_zig(backend, &bitcode::NUM_ATAN[width]);
} }
LayoutRepr::Builtin(Builtin::Decimal) => {
self.load_args_and_call_zig(backend, bitcode::DEC_ATAN);
}
_ => panic_ret_type(), _ => panic_ret_type(),
}, },
NumAcos => match self.ret_layout_raw { NumAcos => match self.ret_layout_raw {
LayoutRepr::Builtin(Builtin::Float(width)) => { LayoutRepr::Builtin(Builtin::Float(width)) => {
self.load_args_and_call_zig(backend, &bitcode::NUM_ACOS[width]); self.load_args_and_call_zig(backend, &bitcode::NUM_ACOS[width]);
} }
LayoutRepr::Builtin(Builtin::Decimal) => {
self.load_args_and_call_zig(backend, bitcode::DEC_ACOS);
}
_ => panic_ret_type(), _ => panic_ret_type(),
}, },
NumAsin => match self.ret_layout_raw { NumAsin => match self.ret_layout_raw {
LayoutRepr::Builtin(Builtin::Float(width)) => { LayoutRepr::Builtin(Builtin::Float(width)) => {
self.load_args_and_call_zig(backend, &bitcode::NUM_ASIN[width]); self.load_args_and_call_zig(backend, &bitcode::NUM_ASIN[width]);
} }
LayoutRepr::Builtin(Builtin::Decimal) => {
self.load_args_and_call_zig(backend, bitcode::DEC_ASIN);
}
_ => panic_ret_type(), _ => panic_ret_type(),
}, },
NumBytesToU16 => self.load_args_and_call_zig(backend, bitcode::NUM_BYTES_TO_U16), NumBytesToU16 => self.load_args_and_call_zig(backend, bitcode::NUM_BYTES_TO_U16),