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