Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
isa_subset_gen.h
Go to the documentation of this file.
00001 /*
00002 
00003   Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
00004 
00005   This program is free software; you can redistribute it and/or modify it
00006   under the terms of version 2 of the GNU General Public License as
00007   published by the Free Software Foundation.
00008 
00009   This program is distributed in the hope that it would be useful, but
00010   WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
00012 
00013   Further, this software is distributed without any warranty that it is
00014   free of the rightful claim of any third person regarding infringement 
00015   or the like.  Any license provided herein, whether implied or 
00016   otherwise, applies only to this software file.  Patent licenses, if 
00017   any, provided herein do not apply to combinations of this program with 
00018   other software, or any other product whatsoever.  
00019 
00020   You should have received a copy of the GNU General Public License along
00021   with this program; if not, write the Free Software Foundation, Inc., 59
00022   Temple Place - Suite 330, Boston MA 02111-1307, USA.
00023 
00024   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00025   Mountain View, CA 94043, or:
00026 
00027   http://www.sgi.com
00028 
00029   For further information regarding this notice, see:
00030 
00031   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00032 
00033 */
00034 
00035 
00036 // isa_subset_gen.h
00038 //
00039 //  Interface for describing which instructions are valid in which ISA subsets.
00040 //
00041 //  void ISA_Subset_Begin( const char* archname )
00042 //      Initialize to generate Instruction Set Architecture subset information
00043 //      for the architecture with the given <archname>.  The information will
00044 //      be written to the files targ_isa_subset.[ch].  
00045 //
00046 //  TYPE ISA_SUBSET
00047 //      An abstract type that represents a subset of the Instruction Set
00048 //      Architecture.  No client visible fields.
00049 //
00050 //  ISA_SUBSET ISA_Subset_Create( ISA_SUBSET isa_subset, const char* name )
00051 //      Used to create a new ISA_SUBTYPE.  <isa_subset> may be either another
00052 //      ISA_SUBSET in which case the newly created set will be a subset of the
00053 //      given <isa_subset>, or it may be NULL, in which case the created set
00054 //      is a root subset.  <name> should be the name for the created
00055 //      ISA_SUBSET and is provided for debugging and documentation purposes.
00056 //
00057 //  void Instruction_Group( ISA_SUBSET subset, ... )
00058 //      Lists the instructions the given <subset>.  Subsequent arguments are
00059 //      TOPs, terminating in TOP_UNDEFINED.  These instructions are also
00060 //      added to all supersets of <subset>.
00061 //
00062 //  void ISA_Subset_End(void)
00063 //      Complete processing.
00064 //
00065 //
00067 
00068 
00069 
00070 
00071 #ifndef ISA_SUBSET_GEN_INCLUDED
00072 #define ISA_SUBSET_GEN_INCLUDED
00073 #ifdef __cplusplus
00074 extern "C" {
00075 #endif
00076 #ifndef ISA_SUBSET_GEN_RCS_ID
00077 #define ISA_SUBSET_GEN_RCS_ID
00078 #ifdef _KEEP_RCS_ID
00079 #endif
00080 #endif
00081 
00082 void ISA_Subset_Begin( const char* archname );
00083 typedef struct isa_subset *ISA_SUBSET;
00084 ISA_SUBSET ISA_Subset_Create( ISA_SUBSET subset, const char* name );
00085 void Instruction_Group( ISA_SUBSET isa_subset, ... );
00086 void ISA_Subset_End(void);
00087 
00088 #ifdef __cplusplus
00089 }
00090 #endif
00091 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines