< prev index next >

src/hotspot/share/utilities/globalDefinitions.hpp

Print this page

        

*** 623,632 **** --- 623,650 ---- T_NARROWKLASS = 18, T_CONFLICT = 19, // for stack value type with conflicting contents T_ILLEGAL = 99 }; + #define SIGNATURE_TYPES_DO(F, N) \ + F(JVM_SIGNATURE_BOOLEAN, T_BOOLEAN, N) \ + F(JVM_SIGNATURE_CHAR, T_CHAR, N) \ + F(JVM_SIGNATURE_FLOAT, T_FLOAT, N) \ + F(JVM_SIGNATURE_DOUBLE, T_DOUBLE, N) \ + F(JVM_SIGNATURE_BYTE, T_BYTE, N) \ + F(JVM_SIGNATURE_SHORT, T_SHORT, N) \ + F(JVM_SIGNATURE_INT, T_INT, N) \ + F(JVM_SIGNATURE_LONG, T_LONG, N) \ + F(JVM_SIGNATURE_CLASS, T_OBJECT, N) \ + F(JVM_SIGNATURE_ARRAY, T_ARRAY, N) \ + F(JVM_SIGNATURE_VOID, T_VOID, N) \ + /*end*/ + + inline bool is_java_type(BasicType t) { + return T_BOOLEAN <= t && t <= T_VOID; + } + inline bool is_java_primitive(BasicType t) { return T_BOOLEAN <= t && t <= T_LONG; } inline bool is_subword_type(BasicType t) {
*** 644,671 **** inline bool is_reference_type(BasicType t) { return (t == T_OBJECT || t == T_ARRAY); } - // Convert a char from a classfile signature to a BasicType - inline BasicType char2type(char c) { - switch( c ) { - case JVM_SIGNATURE_BYTE: return T_BYTE; - case JVM_SIGNATURE_CHAR: return T_CHAR; - case JVM_SIGNATURE_DOUBLE: return T_DOUBLE; - case JVM_SIGNATURE_FLOAT: return T_FLOAT; - case JVM_SIGNATURE_INT: return T_INT; - case JVM_SIGNATURE_LONG: return T_LONG; - case JVM_SIGNATURE_SHORT: return T_SHORT; - case JVM_SIGNATURE_BOOLEAN: return T_BOOLEAN; - case JVM_SIGNATURE_VOID: return T_VOID; - case JVM_SIGNATURE_CLASS: return T_OBJECT; - case JVM_SIGNATURE_ARRAY: return T_ARRAY; - } - return T_ILLEGAL; - } - extern char type2char_tab[T_CONFLICT+1]; // Map a BasicType to a jchar inline char type2char(BasicType t) { return (uint)t < T_CONFLICT+1 ? type2char_tab[t] : 0; } extern int type2size[T_CONFLICT+1]; // Map BasicType to result stack elements extern const char* type2name_tab[T_CONFLICT+1]; // Map a BasicType to a jchar inline const char* type2name(BasicType t) { return (uint)t < T_CONFLICT+1 ? type2name_tab[t] : NULL; } --- 662,671 ----
*** 691,700 **** --- 691,707 ---- T_NARROWOOP_size = 1, T_NARROWKLASS_size = 1, T_VOID_size = 0 }; + // this works on valid parameter types but not T_VOID, T_CONFLICT, etc. + inline int parameter_type_word_count(BasicType t) { + if (is_double_word_type(t)) return 2; + assert(is_java_primitive(t) || is_reference_type(t), "no goofy types here please"); + assert(type2size[t] == 1, "must be"); + return 1; + } // maps a BasicType to its instance field storage type: // all sub-word integral types are widened to T_INT extern BasicType type2field[T_CONFLICT+1]; extern BasicType type2wfield[T_CONFLICT+1];
< prev index next >