aboutsummaryrefslogtreecommitdiffstats
path: root/nodes.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2014-11-04 20:14:19 +0100
committerTristan Gingold <tgingold@free.fr>2014-11-04 20:14:19 +0100
commit9c195bf5d86d67ea5eb419ccf6e48dc153e57c68 (patch)
tree575346e529b99e26382b4a06f6ff2caa0b391ab2 /nodes.ads
parent184a123f91e07c927292d67462561dc84f3a920d (diff)
downloadghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.gz
ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.bz2
ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.zip
Move sources to src/ subdirectory.
Diffstat (limited to 'nodes.ads')
-rw-r--r--nodes.ads335
1 files changed, 0 insertions, 335 deletions
diff --git a/nodes.ads b/nodes.ads
deleted file mode 100644
index adf6a5ee8..000000000
--- a/nodes.ads
+++ /dev/null
@@ -1,335 +0,0 @@
--- Internal node type and operations.
--- Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold
---
--- GHDL is free software; you can redistribute it and/or modify it under
--- the terms of the GNU General Public License as published by the Free
--- Software Foundation; either version 2, or (at your option) any later
--- version.
---
--- GHDL is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
--- for more details.
---
--- You should have received a copy of the GNU General Public License
--- along with GHDL; see the file COPYING. If not, write to the Free
--- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
--- 02111-1307, USA.
-with Types; use Types;
-
-package Nodes is
- type Node_Type is new Int32;
- for Node_Type'Size use 32;
-
- Null_Node : constant Node_Type := 0;
- Error_Node : constant Node_Type := 1;
-
- -- A simple type that needs only 2 bits.
- type Bit2_Type is range 0 .. 2 ** 2 - 1;
- type Bit3_Type is range 0 .. 2 ** 3 - 1;
-
- type Kind_Type is range 0 .. 255;
-
- -- Format of a node.
- type Format_Type is
- (
- Format_Short,
- Format_Medium,
- Format_Fp,
- Format_Int
- );
-
- -- Future layout: (rem)
- -- Format: 0 bits 32
- -- Nkind: 16 bits 16
- -- Flags: 8*1 bits 8
- -- State: 2*2 bits 4
- -- Odigit is to be removed.
-
- -- Future layout (2):(rem)
- -- Format: 2 bits 30
- -- Nkind: 8 bits 22 (vhdl: 216 nodes)
- -- Flags: 8*1 bits 14
- -- State: 2*2 bits 10
- -- Lang: 2 bits 8
- -- Odigit: 1*3 bits 5
-
- -- Common fields are:
- -- Flag1 : Boolean
- -- Flag2 : Boolean
- -- Flag3 : Boolean
- -- Flag4 : Boolean
- -- Flag5 : Boolean
- -- Flag6 : Boolean
- -- Flag7 : Boolean
- -- Flag8 : Boolean
- -- Flag9 : Boolean
- -- Flag10 : Boolean
- -- Nkind : Kind_Type
- -- State1 : Bit2_Type
- -- State2 : Bit2_Type
- -- Location : Location_Type
- -- Field0 : Iir
- -- Field1 : Iir
- -- Field2 : Iir
- -- Field3 : Iir
-
- -- Fields of Format_Fp:
- -- Fp64 : Iir_Fp64
-
- -- Fields of Format_Int:
- -- Int64 : Iir_Int64
-
- -- Fields of Format_Short:
- -- Field4 : Iir
- -- Field5 : Iir
-
- -- Fields of Format_Medium:
- -- Odigit1 : Bit3_Type
- -- Odigit2 : Bit3_Type (odigit1)
- -- State3 : Bit2_Type
- -- State4 : Bit2_Type
- -- Field4 : Iir
- -- Field5 : Iir
- -- Field6 : Iir (location)
- -- Field7 : Iir (field0)
- -- Field8 : Iir (field1)
- -- Field9 : Iir (field2)
- -- Field10 : Iir (field3)
- -- Field11 : Iir (field4)
- -- Field12 : Iir (field5)
-
- function Create_Node (Format : Format_Type) return Node_Type;
- procedure Free_Node (N : Node_Type);
- function Next_Node (N : Node_Type) return Node_Type;
-
- function Get_Nkind (N : Node_Type) return Kind_Type;
- pragma Inline (Get_Nkind);
- procedure Set_Nkind (N : Node_Type; Kind : Kind_Type);
- pragma Inline (Set_Nkind);
-
- function Get_Location (N: Node_Type) return Location_Type;
- pragma Inline (Get_Location);
- procedure Set_Location (N : Node_Type; Location: Location_Type);
- pragma Inline (Set_Location);
-
- function Get_Field0 (N : Node_Type) return Node_Type;
- pragma Inline (Get_Field0);
- procedure Set_Field0 (N : Node_Type; V : Node_Type);
- pragma Inline (Set_Field0);
-
- function Get_Field1 (N : Node_Type) return Node_Type;
- pragma Inline (Get_Field1);
- procedure Set_Field1 (N : Node_Type; V : Node_Type);
- pragma Inline (Set_Field1);
-
- function Get_Field2 (N : Node_Type) return Node_Type;
- pragma Inline (Get_Field2);
- procedure Set_Field2 (N : Node_Type; V : Node_Type);
- pragma Inline (Set_Field2);
-
- function Get_Field3 (N : Node_Type) return Node_Type;
- pragma Inline (Get_Field3);
- procedure Set_Field3 (N : Node_Type; V : Node_Type);
- pragma Inline (Set_Field3);
-
- function Get_Field4 (N : Node_Type) return Node_Type;
- pragma Inline (Get_Field4);
- procedure Set_Field4 (N : Node_Type; V : Node_Type);
- pragma Inline (Set_Field4);
-
-
- function Get_Field5 (N : Node_Type) return Node_Type;
- pragma Inline (Get_Field5);
- procedure Set_Field5 (N : Node_Type; V : Node_Type);
- pragma Inline (Set_Field5);
-
- function Get_Field6 (N: Node_Type) return Node_Type;
- pragma Inline (Get_Field6);
- procedure Set_Field6 (N: Node_Type; Val: Node_Type);
- pragma Inline (Set_Field6);
-
- function Get_Field7 (N: Node_Type) return Node_Type;
- pragma Inline (Get_Field7);
- procedure Set_Field7 (N: Node_Type; Val: Node_Type);
- pragma Inline (Set_Field7);
-
- function Get_Field8 (N: Node_Type) return Node_Type;
- pragma Inline (Get_Field8);
- procedure Set_Field8 (N: Node_Type; Val: Node_Type);
- pragma Inline (Set_Field8);
-
- function Get_Field9 (N: Node_Type) return Node_Type;
- pragma Inline (Get_Field9);
- procedure Set_Field9 (N: Node_Type; Val: Node_Type);
- pragma Inline (Set_Field9);
-
- function Get_Field10 (N: Node_Type) return Node_Type;
- pragma Inline (Get_Field10);
- procedure Set_Field10 (N: Node_Type; Val: Node_Type);
- pragma Inline (Set_Field10);
-
- function Get_Field11 (N: Node_Type) return Node_Type;
- pragma Inline (Get_Field11);
- procedure Set_Field11 (N: Node_Type; Val: Node_Type);
- pragma Inline (Set_Field11);
-
- function Get_Field12 (N: Node_Type) return Node_Type;
- pragma Inline (Get_Field12);
- procedure Set_Field12 (N: Node_Type; Val: Node_Type);
- pragma Inline (Set_Field12);
-
-
- function Get_Flag1 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag1);
- procedure Set_Flag1 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag1);
-
- function Get_Flag2 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag2);
- procedure Set_Flag2 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag2);
-
- function Get_Flag3 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag3);
- procedure Set_Flag3 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag3);
-
- function Get_Flag4 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag4);
- procedure Set_Flag4 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag4);
-
- function Get_Flag5 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag5);
- procedure Set_Flag5 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag5);
-
- function Get_Flag6 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag6);
- procedure Set_Flag6 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag6);
-
- function Get_Flag7 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag7);
- procedure Set_Flag7 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag7);
-
- function Get_Flag8 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag8);
- procedure Set_Flag8 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag8);
-
- function Get_Flag9 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag9);
- procedure Set_Flag9 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag9);
-
- function Get_Flag10 (N : Node_Type) return Boolean;
- pragma Inline (Get_Flag10);
- procedure Set_Flag10 (N : Node_Type; V : Boolean);
- pragma Inline (Set_Flag10);
-
-
- function Get_State1 (N : Node_Type) return Bit2_Type;
- pragma Inline (Get_State1);
- procedure Set_State1 (N : Node_Type; V : Bit2_Type);
- pragma Inline (Set_State1);
-
- function Get_State2 (N : Node_Type) return Bit2_Type;
- pragma Inline (Get_State2);
- procedure Set_State2 (N : Node_Type; V : Bit2_Type);
- pragma Inline (Set_State2);
-
- function Get_State3 (N : Node_Type) return Bit2_Type;
- pragma Inline (Get_State3);
- procedure Set_State3 (N : Node_Type; V : Bit2_Type);
- pragma Inline (Set_State3);
-
- function Get_State4 (N : Node_Type) return Bit2_Type;
- pragma Inline (Get_State4);
- procedure Set_State4 (N : Node_Type; V : Bit2_Type);
- pragma Inline (Set_State4);
-
-
- function Get_Odigit1 (N : Node_Type) return Bit3_Type;
- pragma Inline (Get_Odigit1);
- procedure Set_Odigit1 (N : Node_Type; V : Bit3_Type);
- pragma Inline (Set_Odigit1);
-
- function Get_Odigit2 (N : Node_Type) return Bit3_Type;
- pragma Inline (Get_Odigit2);
- procedure Set_Odigit2 (N : Node_Type; V : Bit3_Type);
- pragma Inline (Set_Odigit2);
-
-
- function Get_Fp64 (N : Node_Type) return Iir_Fp64;
- pragma Inline (Get_Fp64);
- procedure Set_Fp64 (N : Node_Type; V : Iir_Fp64);
- pragma Inline (Set_Fp64);
-
- function Get_Int64 (N : Node_Type) return Iir_Int64;
- pragma Inline (Get_Int64);
- procedure Set_Int64 (N : Node_Type; V : Iir_Int64);
- pragma Inline (Set_Int64);
-
- -- Get the last node allocated.
- function Get_Last_Node return Node_Type;
- pragma Inline (Get_Last_Node);
-
- -- Free all and reinit.
- procedure Initialize;
-private
- type Node_Record (Format : Format_Type := Format_Short) is record
- Flag1 : Boolean := False;
- Flag2 : Boolean := False;
- Flag3 : Boolean := False;
- Flag4 : Boolean := False;
- Flag5 : Boolean := False;
- Flag6 : Boolean := False;
-
- -- Kind field use 8 bits.
- -- So, on 32 bits systems, there are 24 bits left.
- -- + 8 (8 * 1)
- -- + 10 (5 * 2)
- -- + 6 (2 * 3)
- -- = 24
-
- Kind : Kind_Type;
-
- State1 : Bit2_Type := 0;
- State2 : Bit2_Type := 0;
- Flag7 : Boolean := False;
- Flag8 : Boolean := False;
- Flag9 : Boolean := False;
- Flag10 : Boolean := False;
-
- Flag11 : Boolean := False;
- Flag12 : Boolean := False;
- Odigit1 : Bit3_Type := 0;
- Unused_Odigit2 : Bit3_Type := 0;
-
- -- Location.
- Location: Location_Type := Location_Nil;
-
- Field0 : Node_Type := Null_Node;
- Field1: Node_Type := Null_Node;
- Field2: Node_Type := Null_Node;
- Field3: Node_Type := Null_Node;
-
- case Format is
- when Format_Short
- | Format_Medium =>
- Field4: Node_Type := Null_Node;
- Field5: Node_Type := Null_Node;
- when Format_Fp =>
- Fp64 : Iir_Fp64;
- when Format_Int =>
- Int64 : Iir_Int64;
- end case;
- end record;
-
- pragma Pack (Node_Record);
- for Node_Record'Size use 8*32;
- for Node_Record'Alignment use 4;
-end Nodes;