| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Language.QBE.Types
Synopsis
- newtype UserIdent = UserIdent {}
- newtype LocalIdent = LocalIdent {
- localIdent :: String
- newtype BlockIdent = BlockIdent {
- blockIdent :: String
- newtype GlobalIdent = GlobalIdent {}
- data BaseType
- baseTypeByteSize :: BaseType -> Int
- baseTypeBitSize :: BaseType -> Int
- data ExtType
- extTypeBitSize :: ExtType -> Int
- extTypeByteSize :: ExtType -> Int
- data SubWordType
- data SubType
- data LoadType
- loadByteSize :: LoadType -> Word64
- data Const
- data DynConst
- data Value
- data TypeDef = TypeDef {}
- data DataDef = DataDef {}
- data Linkage
- type Field = (SubType, Maybe Word64)
- data AggType
- dataSize :: DataDef -> Int
- data DataObj
- objAlign :: DataObj -> Word64
- objSize :: DataObj -> Int
- data DataItem
- data JumpInstr
- = Jump BlockIdent
- | Jnz Value BlockIdent BlockIdent
- | Return (Maybe Value)
- | Halt
- data FuncDef = FuncDef {
- fLinkage :: [Linkage]
- fName :: GlobalIdent
- fStart :: BlockIdent
- fAbity :: Maybe Abity
- fParams :: [FuncParam]
- fBlock :: Map BlockIdent Block
- data FuncParam
- data FuncArg
- data Abity
- abityToBase :: Abity -> BaseType
- data Block = Block {}
- fEntry :: FuncDef -> Block
- data Statement
- = Assign LocalIdent BaseType Instr
- | Call (Maybe (LocalIdent, Abity)) Value [FuncArg]
- | Volatile VolatileInstr
- data Instr
- = Add Value Value
- | Sub Value Value
- | Div Value Value
- | Mul Value Value
- | Neg Value
- | URem Value Value
- | Rem Value Value
- | UDiv Value Value
- | Or Value Value
- | Xor Value Value
- | And Value Value
- | Sar Value Value
- | Shr Value Value
- | Shl Value Value
- | Alloc AllocSize Value
- | Load LoadType Value
- | CompareInt IntArg IntCmpOp Value Value
- | CompareFloat FloatArg FloatCmpOp Value Value
- | Ext ExtArg Value
- | FloatToInt FloatArg Bool Value
- | IntToFloat IntArg Bool Value
- | TruncDouble Value
- | Cast Value
- | Copy Value
- | VAArg Value
- data VolatileInstr
- data ExtArg
- toExtType :: ExtArg -> (Bool, ExtType)
- data FloatArg
- f2BaseType :: FloatArg -> BaseType
- data IntArg
- i2BaseType :: IntArg -> BaseType
- data IntCmpOp
- data FloatCmpOp
- data Phi = Phi {
- pName :: LocalIdent
- pType :: BaseType
- pLabels :: Map BlockIdent Value
- data AllocSize
- getSize :: AllocSize -> Int
Identifiers
Instances
| Show UserIdent Source # | |
| Eq UserIdent Source # | |
| Ord UserIdent Source # | |
newtype LocalIdent Source #
Constructors
| LocalIdent | |
Fields
| |
Instances
| Show LocalIdent Source # | |
Defined in Language.QBE.Types Methods showsPrec :: Int -> LocalIdent -> ShowS # show :: LocalIdent -> String # showList :: [LocalIdent] -> ShowS # | |
| Eq LocalIdent Source # | |
Defined in Language.QBE.Types | |
| Ord LocalIdent Source # | |
Defined in Language.QBE.Types Methods compare :: LocalIdent -> LocalIdent -> Ordering # (<) :: LocalIdent -> LocalIdent -> Bool # (<=) :: LocalIdent -> LocalIdent -> Bool # (>) :: LocalIdent -> LocalIdent -> Bool # (>=) :: LocalIdent -> LocalIdent -> Bool # max :: LocalIdent -> LocalIdent -> LocalIdent # min :: LocalIdent -> LocalIdent -> LocalIdent # | |
newtype BlockIdent Source #
Constructors
| BlockIdent | |
Fields
| |
Instances
| Show BlockIdent Source # | |
Defined in Language.QBE.Types Methods showsPrec :: Int -> BlockIdent -> ShowS # show :: BlockIdent -> String # showList :: [BlockIdent] -> ShowS # | |
| Eq BlockIdent Source # | |
Defined in Language.QBE.Types | |
| Ord BlockIdent Source # | |
Defined in Language.QBE.Types Methods compare :: BlockIdent -> BlockIdent -> Ordering # (<) :: BlockIdent -> BlockIdent -> Bool # (<=) :: BlockIdent -> BlockIdent -> Bool # (>) :: BlockIdent -> BlockIdent -> Bool # (>=) :: BlockIdent -> BlockIdent -> Bool # max :: BlockIdent -> BlockIdent -> BlockIdent # min :: BlockIdent -> BlockIdent -> BlockIdent # | |
newtype GlobalIdent Source #
Constructors
| GlobalIdent | |
Fields | |
Instances
| Show GlobalIdent Source # | |
Defined in Language.QBE.Types Methods showsPrec :: Int -> GlobalIdent -> ShowS # show :: GlobalIdent -> String # showList :: [GlobalIdent] -> ShowS # | |
| Eq GlobalIdent Source # | |
Defined in Language.QBE.Types | |
| Ord GlobalIdent Source # | |
Defined in Language.QBE.Types Methods compare :: GlobalIdent -> GlobalIdent -> Ordering # (<) :: GlobalIdent -> GlobalIdent -> Bool # (<=) :: GlobalIdent -> GlobalIdent -> Bool # (>) :: GlobalIdent -> GlobalIdent -> Bool # (>=) :: GlobalIdent -> GlobalIdent -> Bool # max :: GlobalIdent -> GlobalIdent -> GlobalIdent # min :: GlobalIdent -> GlobalIdent -> GlobalIdent # | |
Types
Instances
baseTypeByteSize :: BaseType -> Int Source #
baseTypeBitSize :: BaseType -> Int Source #
extTypeBitSize :: ExtType -> Int Source #
extTypeByteSize :: ExtType -> Int Source #
data SubWordType Source #
Constructors
| SignedByte | |
| UnsignedByte | |
| SignedHalf | |
| UnsignedHalf |
Instances
| Show SubWordType Source # | |
Defined in Language.QBE.Types Methods showsPrec :: Int -> SubWordType -> ShowS # show :: SubWordType -> String # showList :: [SubWordType] -> ShowS # | |
| Eq SubWordType Source # | |
Defined in Language.QBE.Types | |
Constructors
| LSubWord SubWordType | |
| LBase BaseType |
Instances
loadByteSize :: LoadType -> Word64 Source #
Values
Constructors
| Const Const | |
| Thread GlobalIdent | |
| Extern GlobalIdent | |
| ExternThread GlobalIdent |
Instances
Constructors
| VConst DynConst | |
| VLocal LocalIdent |
Definitions
Constructors
| DataDef | |
Instances
Constructors
| Jump BlockIdent | |
| Jnz Value BlockIdent BlockIdent | |
| Return (Maybe Value) | |
| Halt |
Functions
Constructors
| Regular Abity LocalIdent | |
| Env LocalIdent | |
| Variadic |
Constructors
| ABase BaseType | |
| ASubWordType SubWordType | |
| AUserDef UserIdent |
abityToBase :: Abity -> BaseType Source #
Instructions
Constructors
| Assign LocalIdent BaseType Instr | |
| Call (Maybe (LocalIdent, Abity)) Value [FuncArg] | |
| Volatile VolatileInstr |
Constructors
data VolatileInstr Source #
Constructors
| Store ExtType Value Value | |
| VAStart Value | |
| Blit Value Value Word64 | |
| DBGLoc Word64 Word64 (Maybe Word64) |
Instances
| Show VolatileInstr Source # | |
Defined in Language.QBE.Types Methods showsPrec :: Int -> VolatileInstr -> ShowS # show :: VolatileInstr -> String # showList :: [VolatileInstr] -> ShowS # | |
| Eq VolatileInstr Source # | |
Defined in Language.QBE.Types Methods (==) :: VolatileInstr -> VolatileInstr -> Bool # (/=) :: VolatileInstr -> VolatileInstr -> Bool # | |
Constructors
| ExtSingle | |
| ExtSubWord SubWordType | |
| ExtSignedWord | |
| ExtUnsignedWord |
Instances
f2BaseType :: FloatArg -> BaseType Source #
i2BaseType :: IntArg -> BaseType Source #
Instances
data FloatCmpOp Source #
Instances
| Show FloatCmpOp Source # | |
Defined in Language.QBE.Types Methods showsPrec :: Int -> FloatCmpOp -> ShowS # show :: FloatCmpOp -> String # showList :: [FloatCmpOp] -> ShowS # | |
| Eq FloatCmpOp Source # | |
Defined in Language.QBE.Types | |
Constructors
| Phi | |
Fields
| |