archDesc.hpp revision 1472
2203N/A * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. 1008N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1008N/A * This code is free software; you can redistribute it and/or modify it 1008N/A * under the terms of the GNU General Public License version 2 only, as 1008N/A * published by the Free Software Foundation. 1008N/A * This code is distributed in the hope that it will be useful, but WITHOUT 1008N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1008N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1008N/A * version 2 for more details (a copy is included in the LICENSE file that 1008N/A * You should have received a copy of the GNU General Public License version 1008N/A * 2 along with this work; if not, write to the Free Software Foundation, 1008N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 1008N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 1008N/A// Definitions for Error Flags 1821N/A// Minimal declarations for include files 1821N/A// STRUCTURE FOR HANDLING INPUT AND OUTPUT FILES 1821N/A//---------------------------ChainList----------------------------------------- 1821N/A//---------------------------MatchList----------------------------------------- 1821N/A//---------------------------ArchDesc------------------------------------------ 2228N/A // The Architecture Description identifies which user-defined operand can be used 2228N/A // to access [stack_pointer + offset] 1821N/A // Methods for outputting the DFA 2228N/A // Helper function that outputs code to generate an instruction in MachNodeGenerator 1821N/A // Option flags which control miscellaneous behaviors throughout the code 1821N/A // Accessor for private data. 1821N/A // Machine dependent files, built from architecture definition 0N/A // I/O helper methods 1821N/A // Helper utility that gets MatchList components from inside MatchRule 1821N/A // Helper utilities to generate reduction maps for internal operands 1008N/A // Build enumerations, (1) dense operand index, (2) operands and opcodes 1008N/A // Helper utilities to generate Register Masks 1821N/A // This register class should also generate a stack_or_reg_mask 1821N/A // Generate an enumeration of register mask names and the RegMask objects. 1947N/A // Generate enumeration of machine register numbers 1947N/A // Generate enumeration of machine register encodings 1947N/A // Generate Regsiter Size Array 1947N/A // Generate Pipeline Class information 1947N/A // Generate Pipeline definitions 1821N/A // Generate Pipeline Class information 1947N/A // Declare and define mappings from rules to result and input types 2017N/A // build flags for signaling that our machine needs this instruction cloned 1821N/A // output SUN copyright info 1821N/A // output #include declarations for machine specific files 1821N/A // Output C preprocessor code to verify the backend compilation environment. 1947N/A // Output C source and header (source_hpp) blocks. 1947N/A // output declaration of class State 1821N/A // Generator for MachOper objects given integer type 1821N/A // Generator for MachNode objects given integer type 1821N/A // Generator for Expand methods for instructions with expand rules 1821N/A // Generator for Peephole methods for instructions with peephole rules 2203N/A // Generator for Size methods for instructions 1821N/A // Generator for Emit methods for instructions 1008N/A // Define a MachOper encode method 1008N/A // Methods to construct the MachNode class hierarchy 0N/A // Return the type signature for the ideal operation 1008N/A // Declare and define the classes derived from MachOper and MachNode 0N/A // Emit an ADLC message 1008N/A // Generator for has_match_rule methods 1008N/A // Generator for Frame Methods 1934N/A // Generate CISC_spilling oracle and MachNode::cisc_spill() methods 1821N/A // build MatchList from MatchRule 1821N/A// -------------------------------- maps ------------------------------------ 1934N/A// Base class for generating a mapping from rule number to value. 1821N/A// Used with ArchDesc::build_map() for all maps except "enum MachOperands" 1821N/A// A derived class defines the appropriate output for a specific mapping. 2228N/A // Access files used by this routine 2228N/A // Positions in iteration that derived class will be told about 1008N/A // Output routines specific to the derived class 1821N/A // Allow enum-MachOperands to turn-off instructions 1821N/A // Allow derived class to output name and position specific info