< prev index next >

src/hotspot/share/c1/c1_LIR.hpp

Print this page
rev 50076 : Fold Partial GC into Traversal GC


1443   CodeStub*     stub()        const              { return _stub;       }
1444 
1445   void          change_block(BlockBegin* b);
1446   void          change_ublock(BlockBegin* b);
1447   void          negate_cond();
1448 
1449   virtual void emit_code(LIR_Assembler* masm);
1450   virtual LIR_OpBranch* as_OpBranch() { return this; }
1451   virtual void print_instr(outputStream* out) const PRODUCT_RETURN;
1452 };
1453 
1454 class LIR_OpShenandoahWriteBarrier : public LIR_Op1 {
1455  friend class LIR_OpVisitState;
1456 
1457 private:
1458   bool _need_null_check;
1459 
1460 public:
1461   LIR_OpShenandoahWriteBarrier(LIR_Opr obj, LIR_Opr result, CodeEmitInfo* info, bool need_null_check)
1462     : LIR_Op1(lir_shenandoah_wb, obj, result, T_OBJECT, lir_patch_none, info), _need_null_check(need_null_check) {
1463     assert(UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValWriteBarrier || ShenandoahStoreValEnqueueBarrier), "should be enabled");
1464   }
1465   bool need_null_check() const { return _need_null_check; }
1466   virtual void emit_code(LIR_Assembler* masm);
1467   virtual LIR_OpShenandoahWriteBarrier* as_OpShenandoahWriteBarrier() { return this; }
1468   virtual void print_instr(outputStream* out) const PRODUCT_RETURN;
1469 
1470 };
1471 
1472 class ConversionStub;
1473 
1474 class LIR_OpConvert: public LIR_Op1 {
1475  friend class LIR_OpVisitState;
1476 
1477  private:
1478    Bytecodes::Code _bytecode;
1479    ConversionStub* _stub;
1480 
1481  public:
1482    LIR_OpConvert(Bytecodes::Code code, LIR_Opr opr, LIR_Opr result, ConversionStub* stub)
1483      : LIR_Op1(lir_convert, opr, result)




1443   CodeStub*     stub()        const              { return _stub;       }
1444 
1445   void          change_block(BlockBegin* b);
1446   void          change_ublock(BlockBegin* b);
1447   void          negate_cond();
1448 
1449   virtual void emit_code(LIR_Assembler* masm);
1450   virtual LIR_OpBranch* as_OpBranch() { return this; }
1451   virtual void print_instr(outputStream* out) const PRODUCT_RETURN;
1452 };
1453 
1454 class LIR_OpShenandoahWriteBarrier : public LIR_Op1 {
1455  friend class LIR_OpVisitState;
1456 
1457 private:
1458   bool _need_null_check;
1459 
1460 public:
1461   LIR_OpShenandoahWriteBarrier(LIR_Opr obj, LIR_Opr result, CodeEmitInfo* info, bool need_null_check)
1462     : LIR_Op1(lir_shenandoah_wb, obj, result, T_OBJECT, lir_patch_none, info), _need_null_check(need_null_check) {
1463     assert(UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValEnqueueBarrier), "should be enabled");
1464   }
1465   bool need_null_check() const { return _need_null_check; }
1466   virtual void emit_code(LIR_Assembler* masm);
1467   virtual LIR_OpShenandoahWriteBarrier* as_OpShenandoahWriteBarrier() { return this; }
1468   virtual void print_instr(outputStream* out) const PRODUCT_RETURN;
1469 
1470 };
1471 
1472 class ConversionStub;
1473 
1474 class LIR_OpConvert: public LIR_Op1 {
1475  friend class LIR_OpVisitState;
1476 
1477  private:
1478    Bytecodes::Code _bytecode;
1479    ConversionStub* _stub;
1480 
1481  public:
1482    LIR_OpConvert(Bytecodes::Code code, LIR_Opr opr, LIR_Opr result, ConversionStub* stub)
1483      : LIR_Op1(lir_convert, opr, result)


< prev index next >