diff options
Diffstat (limited to 'kvx/SelectLong.vp')
-rw-r--r-- | kvx/SelectLong.vp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/kvx/SelectLong.vp b/kvx/SelectLong.vp index b3638eca..3598025a 100644 --- a/kvx/SelectLong.vp +++ b/kvx/SelectLong.vp @@ -23,6 +23,7 @@ Require Import OpHelpers. Require Import SelectOp SplitLong. Require Import ExtValues. Require Import DecBoolOps. +Require FPExtra. Local Open Scope cminorsel_scope. Local Open Scope string_scope. @@ -433,28 +434,30 @@ Definition cmpl (c: comparison) (e1 e2: expr) := (** ** Floating-point conversions *) Definition longoffloat (e: expr) := - if Archi.splitlong then SplitLong.longoffloat e else Eop Olongoffloat (e:::Enil). Definition longuoffloat (e: expr) := - if Archi.splitlong then SplitLong.longuoffloat e else Eop Olonguoffloat (e:::Enil). Definition floatoflong (e: expr) := - if Archi.splitlong then SplitLong.floatoflong e else Eop Ofloatoflong (e:::Enil). Definition floatoflongu (e: expr) := - if Archi.splitlong then SplitLong.floatoflongu e else Eop Ofloatoflongu (e:::Enil). Definition longofsingle (e: expr) := longoffloat (floatofsingle e). Definition longuofsingle (e: expr) := longuoffloat (floatofsingle e). +Definition use_inlined_fp_conversions := true. +Opaque use_inlined_fp_conversions. + Definition singleoflong (e: expr) := SplitLong.singleoflong e. -Definition singleoflongu (e: expr) := SplitLong.singleoflongu e. +Definition singleoflongu (e: expr) := + if use_inlined_fp_conversions + then FPExtra.e_single_of_longu e + else SplitLong.singleoflongu e. End SELECT. |