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 //---------------------------------------------------------------------


2265   bool no_operands(LIR_Op* op);
2266 #endif
2267 
2268   // LIR_Op visitor functions use these to fill in the state
2269   void do_input(LIR_Opr& opr)             { append(opr, LIR_OpVisitState::inputMode); }
2270   void do_output(LIR_Opr& opr)            { append(opr, LIR_OpVisitState::outputMode); }
2271   void do_temp(LIR_Opr& opr)              { append(opr, LIR_OpVisitState::tempMode); }
2272   void do_info(CodeEmitInfo* info)        { append(info); }
2273 
2274   void do_stub(CodeStub* stub);
2275   void do_call()                          { _has_call = true; }
2276   void do_slow_case()                     { _has_slow_case = true; }
2277   void do_slow_case(CodeEmitInfo* info) {
2278     _has_slow_case = true;
2279     append(info);
2280   }
2281 };
2282 
2283 
2284 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 //---------------------------------------------------------------------


2270   bool no_operands(LIR_Op* op);
2271 #endif
2272 
2273   // LIR_Op visitor functions use these to fill in the state
2274   void do_input(LIR_Opr& opr)             { append(opr, LIR_OpVisitState::inputMode); }
2275   void do_output(LIR_Opr& opr)            { append(opr, LIR_OpVisitState::outputMode); }
2276   void do_temp(LIR_Opr& opr)              { append(opr, LIR_OpVisitState::tempMode); }
2277   void do_info(CodeEmitInfo* info)        { append(info); }
2278 
2279   void do_stub(CodeStub* stub);
2280   void do_call()                          { _has_call = true; }
2281   void do_slow_case()                     { _has_slow_case = true; }
2282   void do_slow_case(CodeEmitInfo* info) {
2283     _has_slow_case = true;
2284     append(info);
2285   }
2286 };
2287 
2288 
2289 inline LIR_Opr LIR_OprDesc::illegalOpr()   { return LIR_OprFact::illegalOpr; };
2290 
2291 #endif // SHARE_VM_C1_C1_LIR_HPP