aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-vhdl_eval.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-08-14 09:47:16 +0200
committerTristan Gingold <tgingold@free.fr>2022-08-14 20:53:50 +0200
commit11a8554f828436d78e1a01c683219bef4d83db97 (patch)
tree0a4a1756ea42a17674c1f40fa30e1657e313d020 /src/synth/synth-vhdl_eval.adb
parentdb2d8b3e87763acc23d4e113c9e7e37b41b11625 (diff)
downloadghdl-11a8554f828436d78e1a01c683219bef4d83db97.tar.gz
ghdl-11a8554f828436d78e1a01c683219bef4d83db97.tar.bz2
ghdl-11a8554f828436d78e1a01c683219bef4d83db97.zip
vhdl: recognize log10 and sqrt from math_real. Fix #2176
Diffstat (limited to 'src/synth/synth-vhdl_eval.adb')
-rw-r--r--src/synth/synth-vhdl_eval.adb14
1 files changed, 14 insertions, 0 deletions
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;