From 11a8554f828436d78e1a01c683219bef4d83db97 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sun, 14 Aug 2022 09:47:16 +0200 Subject: vhdl: recognize log10 and sqrt from math_real. Fix #2176 --- src/synth/synth-vhdl_eval.adb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/synth/synth-vhdl_eval.adb') diff --git a/src/synth/synth-vhdl_eval.adb b/src/synth/synth-vhdl_eval.adb index 5282473d2..ef685b3f7 100644 --- a/src/synth/synth-vhdl_eval.adb +++ b/src/synth/synth-vhdl_eval.adb @@ -2421,6 +2421,13 @@ package body Synth.Vhdl_Eval is end if; return Create_Memory_Fp64 (Res, Res_Typ); end; + when Iir_Predefined_Ieee_Math_Real_Sqrt => + declare + function Sqrt (Arg : Fp64) return Fp64; + pragma Import (C, Sqrt); + begin + return Create_Memory_Fp64 (Sqrt (Read_Fp64 (Param1)), Res_Typ); + end; when Iir_Predefined_Ieee_Math_Real_Log2 => declare function Log2 (Arg : Fp64) return Fp64; @@ -2428,6 +2435,13 @@ package body Synth.Vhdl_Eval is begin return Create_Memory_Fp64 (Log2 (Read_Fp64 (Param1)), Res_Typ); end; + when Iir_Predefined_Ieee_Math_Real_Log10 => + declare + function Log10 (Arg : Fp64) return Fp64; + pragma Import (C, Log10); + begin + return Create_Memory_Fp64 (Log10 (Read_Fp64 (Param1)), Res_Typ); + end; when Iir_Predefined_Ieee_Math_Real_Ceil => declare function Ceil (Arg : Fp64) return Fp64; -- cgit v1.2.3