src/share/vm/c1/c1_LIR.hpp

Print this page




   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 





  25 class BlockBegin;
  26 class BlockList;
  27 class LIR_Assembler;
  28 class CodeEmitInfo;
  29 class CodeStub;
  30 class CodeStubList;
  31 class ArrayCopyStub;
  32 class LIR_Op;
  33 class ciType;
  34 class ValueType;
  35 class LIR_OpVisitState;
  36 class FpuStackSim;
  37 
  38 //---------------------------------------------------------------------
  39 //                 LIR Operands
  40 //  LIR_OprDesc
  41 //    LIR_OprPtr
  42 //      LIR_Const
  43 //      LIR_Address
  44 //---------------------------------------------------------------------


2231   bool no_operands(LIR_Op* op);
2232 #endif
2233 
2234   // LIR_Op visitor functions use these to fill in the state
2235   void do_input(LIR_Opr& opr)             { append(opr, LIR_OpVisitState::inputMode); }
2236   void do_output(LIR_Opr& opr)            { append(opr, LIR_OpVisitState::outputMode); }
2237   void do_temp(LIR_Opr& opr)              { append(opr, LIR_OpVisitState::tempMode); }
2238   void do_info(CodeEmitInfo* info)        { append(info); }
2239 
2240   void do_stub(CodeStub* stub);
2241   void do_call()                          { _has_call = true; }
2242   void do_slow_case()                     { _has_slow_case = true; }
2243   void do_slow_case(CodeEmitInfo* info) {
2244     _has_slow_case = true;
2245     append(info);
2246   }
2247 };
2248 
2249 
2250 inline LIR_Opr LIR_OprDesc::illegalOpr()   { return LIR_OprFact::illegalOpr; };




   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_C1_C1_LIR_HPP
  26 #define SHARE_VM_C1_C1_LIR_HPP
  27 
  28 #include "c1/c1_ValueType.hpp"
  29 
  30 class BlockBegin;
  31 class BlockList;
  32 class LIR_Assembler;
  33 class CodeEmitInfo;
  34 class CodeStub;
  35 class CodeStubList;
  36 class ArrayCopyStub;
  37 class LIR_Op;
  38 class ciType;
  39 class ValueType;
  40 class LIR_OpVisitState;
  41 class FpuStackSim;
  42 
  43 //---------------------------------------------------------------------
  44 //                 LIR Operands
  45 //  LIR_OprDesc
  46 //    LIR_OprPtr
  47 //      LIR_Const
  48 //      LIR_Address
  49 //---------------------------------------------------------------------


2236   bool no_operands(LIR_Op* op);
2237 #endif
2238 
2239   // LIR_Op visitor functions use these to fill in the state
2240   void do_input(LIR_Opr& opr)             { append(opr, LIR_OpVisitState::inputMode); }
2241   void do_output(LIR_Opr& opr)            { append(opr, LIR_OpVisitState::outputMode); }
2242   void do_temp(LIR_Opr& opr)              { append(opr, LIR_OpVisitState::tempMode); }
2243   void do_info(CodeEmitInfo* info)        { append(info); }
2244 
2245   void do_stub(CodeStub* stub);
2246   void do_call()                          { _has_call = true; }
2247   void do_slow_case()                     { _has_slow_case = true; }
2248   void do_slow_case(CodeEmitInfo* info) {
2249     _has_slow_case = true;
2250     append(info);
2251   }
2252 };
2253 
2254 
2255 inline LIR_Opr LIR_OprDesc::illegalOpr()   { return LIR_OprFact::illegalOpr; };
2256 
2257 #endif // SHARE_VM_C1_C1_LIR_HPP