< prev index next >

src/hotspot/share/c1/c1_LIR.hpp

Print this page


1262   LIR_Opr   _length;
1263   LIR_Opr   _tmp;
1264   ciArrayKlass* _expected_type;
1265   int       _flags;
1266 
1267 public:
1268   enum Flags {
1269     src_null_check         = 1 << 0,
1270     dst_null_check         = 1 << 1,
1271     src_pos_positive_check = 1 << 2,
1272     dst_pos_positive_check = 1 << 3,
1273     length_positive_check  = 1 << 4,
1274     src_range_check        = 1 << 5,
1275     dst_range_check        = 1 << 6,
1276     type_check             = 1 << 7,
1277     overlapping            = 1 << 8,
1278     unaligned              = 1 << 9,
1279     src_objarray           = 1 << 10,
1280     dst_objarray           = 1 << 11,
1281     always_slow_path       = 1 << 12,
1282     src_flat_check         = 1 << 13,
1283     dst_flat_check         = 1 << 14,
1284     all_flags              = (1 << 15) - 1
1285   };
1286 
1287   LIR_OpArrayCopy(LIR_Opr src, LIR_Opr src_pos, LIR_Opr dst, LIR_Opr dst_pos, LIR_Opr length, LIR_Opr tmp,
1288                   ciArrayKlass* expected_type, int flags, CodeEmitInfo* info);
1289 
1290   LIR_Opr src() const                            { return _src; }
1291   LIR_Opr src_pos() const                        { return _src_pos; }
1292   LIR_Opr dst() const                            { return _dst; }
1293   LIR_Opr dst_pos() const                        { return _dst_pos; }
1294   LIR_Opr length() const                         { return _length; }
1295   LIR_Opr tmp() const                            { return _tmp; }
1296   int flags() const                              { return _flags; }
1297   ciArrayKlass* expected_type() const            { return _expected_type; }
1298   ArrayCopyStub* stub() const                    { return _stub; }
1299 
1300   virtual void emit_code(LIR_Assembler* masm);
1301   virtual LIR_OpArrayCopy* as_OpArrayCopy() { return this; }
1302   void print_instr(outputStream* out) const PRODUCT_RETURN;
1303 };




1262   LIR_Opr   _length;
1263   LIR_Opr   _tmp;
1264   ciArrayKlass* _expected_type;
1265   int       _flags;
1266 
1267 public:
1268   enum Flags {
1269     src_null_check         = 1 << 0,
1270     dst_null_check         = 1 << 1,
1271     src_pos_positive_check = 1 << 2,
1272     dst_pos_positive_check = 1 << 3,
1273     length_positive_check  = 1 << 4,
1274     src_range_check        = 1 << 5,
1275     dst_range_check        = 1 << 6,
1276     type_check             = 1 << 7,
1277     overlapping            = 1 << 8,
1278     unaligned              = 1 << 9,
1279     src_objarray           = 1 << 10,
1280     dst_objarray           = 1 << 11,
1281     always_slow_path       = 1 << 12,
1282     src_valuetype_check    = 1 << 13,
1283     dst_valuetype_check    = 1 << 14,
1284     all_flags              = (1 << 15) - 1
1285   };
1286 
1287   LIR_OpArrayCopy(LIR_Opr src, LIR_Opr src_pos, LIR_Opr dst, LIR_Opr dst_pos, LIR_Opr length, LIR_Opr tmp,
1288                   ciArrayKlass* expected_type, int flags, CodeEmitInfo* info);
1289 
1290   LIR_Opr src() const                            { return _src; }
1291   LIR_Opr src_pos() const                        { return _src_pos; }
1292   LIR_Opr dst() const                            { return _dst; }
1293   LIR_Opr dst_pos() const                        { return _dst_pos; }
1294   LIR_Opr length() const                         { return _length; }
1295   LIR_Opr tmp() const                            { return _tmp; }
1296   int flags() const                              { return _flags; }
1297   ciArrayKlass* expected_type() const            { return _expected_type; }
1298   ArrayCopyStub* stub() const                    { return _stub; }
1299 
1300   virtual void emit_code(LIR_Assembler* masm);
1301   virtual LIR_OpArrayCopy* as_OpArrayCopy() { return this; }
1302   void print_instr(outputStream* out) const PRODUCT_RETURN;
1303 };


< prev index next >