{-# LANGUAGE OverloadedStrings #-} module Funcons.Core.Values.Primitive.BitsBuiltin where import Funcons.EDSL import qualified Funcons.Operations as VAL library :: FunconLibrary library = [(Name, EvalFunction)] -> FunconLibrary libFromList [ (Name "bit-vector-not", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_not_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_not_) , (Name "bit-vector-and", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_and_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_and_) , (Name "bit-vector-or", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_or_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_or_) , (Name "bit-vector-xor", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_xor_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_xor_) , (Name "bit-vector-shift-left", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_shift_left_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_shift_left_) , (Name "bit-vector-logical-shift-right", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_logical_shift_right_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_logical_shift_right_) , (Name "bit-vector-arithmetic-shift-right", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_arithmetical_shift_right_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_arithmetical_shift_right_) , (Name "integer-to-bit-vector", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons integer_to_bit_vector_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.integer_to_bit_vector_) , (Name "bit-vector-to-integer", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_to_integer_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_to_integer_) , (Name "bit-vector-to-natural", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons bit_vector_to_natural_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.bit_vector_to_natural_) ] bit_vector_not_ :: [Funcons] -> Funcons bit_vector_not_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-not" bit_vector_and_ :: [Funcons] -> Funcons bit_vector_and_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-and" bit_vector_or_ :: [Funcons] -> Funcons bit_vector_or_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-or" bit_vector_xor_ :: [Funcons] -> Funcons bit_vector_xor_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-xor" bit_vector_shift_left_ :: [Funcons] -> Funcons bit_vector_shift_left_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-shift-left" bit_vector_logical_shift_right_ :: [Funcons] -> Funcons bit_vector_logical_shift_right_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-logical-shift-right" bit_vector_arithmetical_shift_right_ :: [Funcons] -> Funcons bit_vector_arithmetical_shift_right_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-arithmetical-shift-right" integer_to_bit_vector_ :: [Funcons] -> Funcons integer_to_bit_vector_ = Name -> [Funcons] -> Funcons applyFuncon Name "integer-to-bit-vector" bit_vector_to_integer_ :: [Funcons] -> Funcons bit_vector_to_integer_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-to-integer" bit_vector_to_natural_ :: [Funcons] -> Funcons bit_vector_to_natural_ = Name -> [Funcons] -> Funcons applyFuncon Name "bit-vector-to-natural"