hotspot/src/share/vm/opto/type.hpp
changeset 14621 fd9265ab0f67
parent 13969 d2a189b83b87
child 17383 3665c0901a0d
equal deleted inserted replaced
14620:45167d2bc15a 14621:fd9265ab0f67
   240 
   240 
   241   const TypeInt    *is_int() const;
   241   const TypeInt    *is_int() const;
   242   const TypeInt    *isa_int() const;             // Returns NULL if not an Int
   242   const TypeInt    *isa_int() const;             // Returns NULL if not an Int
   243   const TypeLong   *is_long() const;
   243   const TypeLong   *is_long() const;
   244   const TypeLong   *isa_long() const;            // Returns NULL if not a Long
   244   const TypeLong   *isa_long() const;            // Returns NULL if not a Long
       
   245   const TypeD      *isa_double() const;          // Returns NULL if not a Double{Top,Con,Bot}
   245   const TypeD      *is_double_constant() const;  // Asserts it is a DoubleCon
   246   const TypeD      *is_double_constant() const;  // Asserts it is a DoubleCon
   246   const TypeD      *isa_double_constant() const; // Returns NULL if not a DoubleCon
   247   const TypeD      *isa_double_constant() const; // Returns NULL if not a DoubleCon
       
   248   const TypeF      *isa_float() const;           // Returns NULL if not a Float{Top,Con,Bot}
   247   const TypeF      *is_float_constant() const;   // Asserts it is a FloatCon
   249   const TypeF      *is_float_constant() const;   // Asserts it is a FloatCon
   248   const TypeF      *isa_float_constant() const;  // Returns NULL if not a FloatCon
   250   const TypeF      *isa_float_constant() const;  // Returns NULL if not a FloatCon
   249   const TypeTuple  *is_tuple() const;            // Collection of fields, NOT a pointer
   251   const TypeTuple  *is_tuple() const;            // Collection of fields, NOT a pointer
   250   const TypeAry    *is_ary() const;              // Array, NOT array pointer
   252   const TypeAry    *is_ary() const;              // Array, NOT array pointer
   251   const TypeVect   *is_vect() const;             // Vector
   253   const TypeVect   *is_vect() const;             // Vector
  1318 inline double Type::getd() const {
  1320 inline double Type::getd() const {
  1319   assert( _base == DoubleCon, "Not a DoubleCon" );
  1321   assert( _base == DoubleCon, "Not a DoubleCon" );
  1320   return ((TypeD*)this)->_d;
  1322   return ((TypeD*)this)->_d;
  1321 }
  1323 }
  1322 
  1324 
       
  1325 inline const TypeInt *Type::is_int() const {
       
  1326   assert( _base == Int, "Not an Int" );
       
  1327   return (TypeInt*)this;
       
  1328 }
       
  1329 
       
  1330 inline const TypeInt *Type::isa_int() const {
       
  1331   return ( _base == Int ? (TypeInt*)this : NULL);
       
  1332 }
       
  1333 
       
  1334 inline const TypeLong *Type::is_long() const {
       
  1335   assert( _base == Long, "Not a Long" );
       
  1336   return (TypeLong*)this;
       
  1337 }
       
  1338 
       
  1339 inline const TypeLong *Type::isa_long() const {
       
  1340   return ( _base == Long ? (TypeLong*)this : NULL);
       
  1341 }
       
  1342 
       
  1343 inline const TypeF *Type::isa_float() const {
       
  1344   return ((_base == FloatTop ||
       
  1345            _base == FloatCon ||
       
  1346            _base == FloatBot) ? (TypeF*)this : NULL);
       
  1347 }
       
  1348 
  1323 inline const TypeF *Type::is_float_constant() const {
  1349 inline const TypeF *Type::is_float_constant() const {
  1324   assert( _base == FloatCon, "Not a Float" );
  1350   assert( _base == FloatCon, "Not a Float" );
  1325   return (TypeF*)this;
  1351   return (TypeF*)this;
  1326 }
  1352 }
  1327 
  1353 
  1328 inline const TypeF *Type::isa_float_constant() const {
  1354 inline const TypeF *Type::isa_float_constant() const {
  1329   return ( _base == FloatCon ? (TypeF*)this : NULL);
  1355   return ( _base == FloatCon ? (TypeF*)this : NULL);
  1330 }
  1356 }
  1331 
  1357 
       
  1358 inline const TypeD *Type::isa_double() const {
       
  1359   return ((_base == DoubleTop ||
       
  1360            _base == DoubleCon ||
       
  1361            _base == DoubleBot) ? (TypeD*)this : NULL);
       
  1362 }
       
  1363 
  1332 inline const TypeD *Type::is_double_constant() const {
  1364 inline const TypeD *Type::is_double_constant() const {
  1333   assert( _base == DoubleCon, "Not a Double" );
  1365   assert( _base == DoubleCon, "Not a Double" );
  1334   return (TypeD*)this;
  1366   return (TypeD*)this;
  1335 }
  1367 }
  1336 
  1368 
  1337 inline const TypeD *Type::isa_double_constant() const {
  1369 inline const TypeD *Type::isa_double_constant() const {
  1338   return ( _base == DoubleCon ? (TypeD*)this : NULL);
  1370   return ( _base == DoubleCon ? (TypeD*)this : NULL);
  1339 }
       
  1340 
       
  1341 inline const TypeInt *Type::is_int() const {
       
  1342   assert( _base == Int, "Not an Int" );
       
  1343   return (TypeInt*)this;
       
  1344 }
       
  1345 
       
  1346 inline const TypeInt *Type::isa_int() const {
       
  1347   return ( _base == Int ? (TypeInt*)this : NULL);
       
  1348 }
       
  1349 
       
  1350 inline const TypeLong *Type::is_long() const {
       
  1351   assert( _base == Long, "Not a Long" );
       
  1352   return (TypeLong*)this;
       
  1353 }
       
  1354 
       
  1355 inline const TypeLong *Type::isa_long() const {
       
  1356   return ( _base == Long ? (TypeLong*)this : NULL);
       
  1357 }
  1371 }
  1358 
  1372 
  1359 inline const TypeTuple *Type::is_tuple() const {
  1373 inline const TypeTuple *Type::is_tuple() const {
  1360   assert( _base == Tuple, "Not a Tuple" );
  1374   assert( _base == Tuple, "Not a Tuple" );
  1361   return (TypeTuple*)this;
  1375   return (TypeTuple*)this;