qute-0.1.0: A software analysis framework built around the QBE intermediate language.
Safe HaskellNone
LanguageGHC2021

Language.QBE.Simulator.Default.Expression

Description

This module provides an implementation of the expression abstract from Expression which uses concrete fixed-width integer values from Data.Word internally.

Synopsis

Documentation

data RegVal Source #

Instances

Instances details
Show RegVal Source # 
Instance details

Defined in Language.QBE.Simulator.Default.Expression

Eq RegVal Source # 
Instance details

Defined in Language.QBE.Simulator.Default.Expression

Methods

(==) :: RegVal -> RegVal -> Bool #

(/=) :: RegVal -> RegVal -> Bool #

ValueRepr RegVal Source # 
Instance details

Defined in Language.QBE.Simulator.Default.Expression

Methods

fromLit :: ExtType -> Word64 -> RegVal Source #

fromFloat :: Float -> RegVal Source #

fromDouble :: Double -> RegVal Source #

toWord64 :: RegVal -> Word64 Source #

getType :: RegVal -> ExtType Source #

floatToInt :: ExtType -> Bool -> RegVal -> Maybe RegVal Source #

intToFloat :: ExtType -> Bool -> RegVal -> Maybe RegVal Source #

extendFloat :: RegVal -> Maybe RegVal Source #

truncFloat :: RegVal -> Maybe RegVal Source #

extend :: ExtType -> Bool -> RegVal -> Maybe RegVal Source #

extract :: ExtType -> RegVal -> Maybe RegVal Source #

add :: RegVal -> RegVal -> Maybe RegVal Source #

sub :: RegVal -> RegVal -> Maybe RegVal Source #

mul :: RegVal -> RegVal -> Maybe RegVal Source #

div :: RegVal -> RegVal -> Maybe RegVal Source #

urem :: RegVal -> RegVal -> Maybe RegVal Source #

srem :: RegVal -> RegVal -> Maybe RegVal Source #

udiv :: RegVal -> RegVal -> Maybe RegVal Source #

or :: RegVal -> RegVal -> Maybe RegVal Source #

xor :: RegVal -> RegVal -> Maybe RegVal Source #

and :: RegVal -> RegVal -> Maybe RegVal Source #

neg :: RegVal -> Maybe RegVal Source #

sar :: RegVal -> RegVal -> Maybe RegVal Source #

shr :: RegVal -> RegVal -> Maybe RegVal Source #

shl :: RegVal -> RegVal -> Maybe RegVal Source #

eq :: RegVal -> RegVal -> Maybe RegVal Source #

ne :: RegVal -> RegVal -> Maybe RegVal Source #

sle :: RegVal -> RegVal -> Maybe RegVal Source #

slt :: RegVal -> RegVal -> Maybe RegVal Source #

sge :: RegVal -> RegVal -> Maybe RegVal Source #

sgt :: RegVal -> RegVal -> Maybe RegVal Source #

ule :: RegVal -> RegVal -> Maybe RegVal Source #

ult :: RegVal -> RegVal -> Maybe RegVal Source #

uge :: RegVal -> RegVal -> Maybe RegVal Source #

ugt :: RegVal -> RegVal -> Maybe RegVal Source #

ord :: RegVal -> RegVal -> Maybe RegVal Source #

unord :: RegVal -> RegVal -> Maybe RegVal Source #

Storable RegVal Word8 Source # 
Instance details

Defined in Language.QBE.Simulator.Default.Expression

bitSize :: RegVal -> Int Source #

Size of the value in bits.

fromBits :: Int -> Integer -> Maybe RegVal Source #

Create a a RegVal from an Integer inferring the type from a given amount of bits instead of requiring the user to provide a ExtType, as required by fromLit.