From cc7dfa82705b64d1cf43408244ef6c7dd930a6e9 Mon Sep 17 00:00:00 2001 From: Guillaume Bertholon Date: Thu, 19 Jul 2018 13:33:17 +0200 Subject: Add primitive floats to 'vm_compute' * This commit add float instructions to the VM, their encoding in bytecode and the interpretation of primitive float values after the reduction. * The flag '-std=c99' could be added to the C compiler flags to ensure that float computation strictly follows the norm (ie. i387 80-bits format is not used as an optimization). Actually, we use '-fexcess-precision=standard' instead of '-std=c99' because the latter would disable GNU asm used in the VM. --- kernel/genOpcodeFiles.ml | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'kernel/genOpcodeFiles.ml') diff --git a/kernel/genOpcodeFiles.ml b/kernel/genOpcodeFiles.ml index a8a4ffce9c..7deffd030b 100644 --- a/kernel/genOpcodeFiles.ml +++ b/kernel/genOpcodeFiles.ml @@ -137,6 +137,18 @@ let opcodes = "CHECKTAIL0INT63"; "ISINT"; "AREINT2"; + "CHECKOPPFLOAT"; + "CHECKABSFLOAT"; + "CHECKCOMPAREFLOAT"; + "CHECKADDFLOAT"; + "CHECKSUBFLOAT"; + "CHECKMULFLOAT"; + "CHECKDIVFLOAT"; + "CHECKSQRTFLOAT"; + "CHECKFLOATOFINT63"; + "CHECKFLOATNORMFRMANTISSA"; + "CHECKFRSHIFTEXP"; + "CHECKLDSHIFTEXP"; "STOP" |] -- cgit v1.2.3 From d18b928154a48ff8d90aaff69eca7d6eb3dfa0ab Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Tue, 28 Aug 2018 18:56:07 +0200 Subject: Implement classify on primitive float --- kernel/genOpcodeFiles.ml | 1 + 1 file changed, 1 insertion(+) (limited to 'kernel/genOpcodeFiles.ml') diff --git a/kernel/genOpcodeFiles.ml b/kernel/genOpcodeFiles.ml index 7deffd030b..045a1e361d 100644 --- a/kernel/genOpcodeFiles.ml +++ b/kernel/genOpcodeFiles.ml @@ -140,6 +140,7 @@ let opcodes = "CHECKOPPFLOAT"; "CHECKABSFLOAT"; "CHECKCOMPAREFLOAT"; + "CHECKCLASSIFYFLOAT"; "CHECKADDFLOAT"; "CHECKSUBFLOAT"; "CHECKMULFLOAT"; -- cgit v1.2.3 From 5f1270242f71a0a1da7c868967e1071d28ed83fb Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Tue, 28 Aug 2018 23:37:49 +0200 Subject: Add next_{up,down} primitive float functions --- kernel/genOpcodeFiles.ml | 2 ++ 1 file changed, 2 insertions(+) (limited to 'kernel/genOpcodeFiles.ml') diff --git a/kernel/genOpcodeFiles.ml b/kernel/genOpcodeFiles.ml index 045a1e361d..52b7a822e3 100644 --- a/kernel/genOpcodeFiles.ml +++ b/kernel/genOpcodeFiles.ml @@ -150,6 +150,8 @@ let opcodes = "CHECKFLOATNORMFRMANTISSA"; "CHECKFRSHIFTEXP"; "CHECKLDSHIFTEXP"; + "CHECKNEXTUPFLOAT"; + "CHECKNEXTDOWNFLOAT"; "STOP" |] -- cgit v1.2.3 From f155ba664a782f000e278d97ee5666e2e7d2adea Mon Sep 17 00:00:00 2001 From: Erik Martin-Dorel Date: Wed, 3 Jul 2019 15:08:44 +0200 Subject: Add "==", "<", "<=" in PrimFloat.v * Add a related test-suite in compare.v (generated by a bash script) Co-authored-by: Pierre Roux --- kernel/genOpcodeFiles.ml | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'kernel/genOpcodeFiles.ml') diff --git a/kernel/genOpcodeFiles.ml b/kernel/genOpcodeFiles.ml index 52b7a822e3..82bb2b584d 100644 --- a/kernel/genOpcodeFiles.ml +++ b/kernel/genOpcodeFiles.ml @@ -139,6 +139,11 @@ let opcodes = "AREINT2"; "CHECKOPPFLOAT"; "CHECKABSFLOAT"; + "CHECKEQFLOAT"; + "CHECKLTFLOAT"; + "LTFLOAT"; + "CHECKLEFLOAT"; + "LEFLOAT"; "CHECKCOMPAREFLOAT"; "CHECKCLASSIFYFLOAT"; "CHECKADDFLOAT"; -- cgit v1.2.3