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