Add basic bit types
This commit is contained in:
parent
c4ebe23f73
commit
5e42b68f47
|
|
@ -1,18 +1,29 @@
|
|||
package Interfaces
|
||||
with Pure is
|
||||
|
||||
type Integer_32 is range -2**31 .. 2**31 - 1;
|
||||
type Unsigned_32 is mod 2**32;
|
||||
type Bit_1 is mod 2**1
|
||||
with Size => 1;
|
||||
type Bit_2 is mod 2**2
|
||||
with Size => 2;
|
||||
type Bit_3 is mod 2**3
|
||||
with Size => 3;
|
||||
type Bit_4 is mod 2**4
|
||||
with Size => 4;
|
||||
|
||||
function Shift_Left (Value : Unsigned_32; Amount : Natural)
|
||||
return Unsigned_32 with Import, Convention => Intrinsic;
|
||||
function Shift_Right (Value : Unsigned_32; Amount : Natural)
|
||||
return Unsigned_32 with Import, Convention => Intrinsic;
|
||||
function Shift_Right_Arithmetic (Value : Unsigned_32; Amount : Natural)
|
||||
return Unsigned_32 with Import, Convention => Intrinsic;
|
||||
function Rotate_Left (Value : Unsigned_32; Amount : Natural)
|
||||
return Unsigned_32 with Import, Convention => Intrinsic;
|
||||
function Rotate_Right (Value : Unsigned_32; Amount : Natural)
|
||||
return Unsigned_32 with Import, Convention => Intrinsic;
|
||||
type Bit_31 is mod 2**32
|
||||
with Size => 31;
|
||||
type Bit_32 is mod 2**32
|
||||
with Size => 32;
|
||||
|
||||
function Shift_Left (Value : Bit_32; Amount : Natural)
|
||||
return Bit_32 with Import, Convention => Intrinsic;
|
||||
function Shift_Right (Value : Bit_32; Amount : Natural)
|
||||
return Bit_32 with Import, Convention => Intrinsic;
|
||||
function Shift_Right_Arithmetic (Value : Bit_32; Amount : Natural)
|
||||
return Bit_32 with Import, Convention => Intrinsic;
|
||||
function Rotate_Left (Value : Bit_32; Amount : Natural)
|
||||
return Bit_32 with Import, Convention => Intrinsic;
|
||||
function Rotate_Right (Value : Bit_32; Amount : Natural)
|
||||
return Bit_32 with Import, Convention => Intrinsic;
|
||||
|
||||
end Interfaces;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user