Adacovex.Target_Profiles

Signed two’s-complement fixed-width integer types. Each carries an explicit Size. IR values map one-to-one onto target machine types.

Note: All items in this package are public.

Types

type IR_Int16

type IR_Int16 is range -2**15 .. 2**15 - 1 with Size => 16;

type IR_Int32

type IR_Int32 is range -2**31 .. 2**31 - 1 with Size => 32;

type IR_Int64

type IR_Int64 is range -2**63 .. 2**63 - 1 with Size => 64;

type IR_Int8

type IR_Int8 is range -2**7 .. 2**7 - 1 with Size => 8;

type IR_UInt16

type IR_UInt16 is mod 2**16;

type IR_UInt32

type IR_UInt32 is mod 2**32;

type IR_UInt64

type IR_UInt64 is mod 2**64;

type IR_UInt8

type IR_UInt8 is mod 2**8;

type Target_Config

type Target_Config is record
Host_Bits    : Word_Size := Bits_64;
Target_Bits  : Word_Size := Bits_64;
Pointer_Bits : Word_Size := Bits_64;
end record;

type Word_Size

type Word_Size is (Bits_8, Bits_16, Bits_32, Bits_64);

Functions

function Checked_Add32 (A : Adacovex.Target_Profiles.IR_Int32; B : Adacovex.Target_Profiles.IR_Int32) return Adacovex.Target_Profiles.IR_Int32 [Pre]

Parameter

Description

A

First operand.

B

Second operand.

Returns: The sum of A and B.

function Checked_Add64 (A : Adacovex.Target_Profiles.IR_Int64; B : Adacovex.Target_Profiles.IR_Int64) return Adacovex.Target_Profiles.IR_Int64 [Pre]

Parameter

Description

A

First operand.

B

Second operand.

Returns: The sum of A and B.

function Host_Word_Size return Adacovex.Target_Profiles.Word_Size [Global]

Returns: Bits_8 .. Bits_64 matching the host word size.