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