language-c-0.9: src/Language/C/Analysis/MachineDescs.hs
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RecordWildCards #-}
module Language.C.Analysis.MachineDescs
where
import Language.C.Analysis.ConstEval
import Language.C.Analysis.SemRep
x86_64 :: MachineDesc
x86_64 =
let iSize = \case
TyBool -> 1
TyChar -> 1
TySChar -> 1
TyUChar -> 1
TyShort -> 2
TyUShort -> 2
TyInt -> 4
TyUInt -> 4
TyLong -> 8
TyULong -> 8
TyLLong -> 8
TyULLong -> 8
TyInt128 -> 16
TyUInt128 -> 16
fSize = \case
TyFloat -> 4
TyDouble -> 8
TyLDouble -> 16
TyFloatN{} -> error "TyFloatN"
builtinSize = \case
TyVaList -> 24
TyAny -> error "TyAny"
ptrSize = 8
voidSize = 1
iAlign = \case
TyBool -> 1
TyChar -> 1
TySChar -> 1
TyUChar -> 1
TyShort -> 2
TyUShort -> 2
TyInt -> 4
TyUInt -> 4
TyLong -> 8
TyULong -> 8
TyLLong -> 8
TyULLong -> 8
TyInt128 -> 16
TyUInt128 -> 16
fAlign = \case
TyFloat -> 4
TyDouble -> 8
TyLDouble -> 16
TyFloatN{} -> error "TyFloatN"
builtinAlign = \case
TyVaList -> 8
TyAny -> error "TyAny"
ptrAlign = 8
voidAlign = 1
in MachineDesc { .. }
armv7l :: MachineDesc
armv7l =
let iSize = \case
TyBool -> 1
TyChar -> 1
TySChar -> 1
TyUChar -> 1
TyShort -> 2
TyUShort -> 2
TyInt -> 4
TyUInt -> 4
TyLong -> 4
TyULong -> 4
TyLLong -> 8
TyULLong -> 8
TyInt128 -> error "TyInt128 on armv7l"
TyUInt128 -> error "TyUInt128 on armv7l"
fSize = \case
TyFloat -> 4
TyDouble -> 8
TyLDouble -> 8
TyFloatN{} -> error "TyFloatN"
builtinSize = \case
TyVaList -> 4
TyAny -> error "TyAny"
ptrSize = 4
voidSize = 1
iAlign = \case
TyBool -> 1
TyChar -> 1
TySChar -> 1
TyUChar -> 1
TyShort -> 2
TyUShort -> 2
TyInt -> 4
TyUInt -> 4
TyLong -> 4
TyULong -> 4
TyLLong -> 8
TyULLong -> 8
TyInt128 -> error "TyInt128 on armv7l"
TyUInt128 -> error "TyUInt128 on armv7l"
fAlign = \case
TyFloat -> 4
TyDouble -> 8
TyLDouble -> 8
TyFloatN{} -> error "TyFloatN"
builtinAlign = \case
TyVaList -> 4
TyAny -> error "TyAny"
ptrAlign = 4
voidAlign = 1
in MachineDesc { .. }