111 BciMask = 0xffff << 1 * BitsPerByte,
112 BciForThis = ((u2)-1), // A bci of -1 is an Unintialized-This
113
114 // Query values
115 ReferenceQuery = (ReferenceFlag << 1 * BitsPerByte) | TypeQuery,
116 Category1Query = (Category1Flag << 1 * BitsPerByte) | TypeQuery,
117 Category2Query = (Category2Flag << 1 * BitsPerByte) | TypeQuery,
118 Category2_2ndQuery = (Category2_2ndFlag << 1 * BitsPerByte) | TypeQuery
119 };
120
121 VerificationType(uintptr_t raw_data) {
122 _u._data = raw_data;
123 }
124
125 public:
126
127 VerificationType() { *this = bogus_type(); }
128
129 // Create verification types
130 static VerificationType bogus_type() { return VerificationType(Bogus); }
131 static VerificationType null_type() { return VerificationType(Null); }
132 static VerificationType integer_type() { return VerificationType(Integer); }
133 static VerificationType float_type() { return VerificationType(Float); }
134 static VerificationType long_type() { return VerificationType(Long); }
135 static VerificationType long2_type() { return VerificationType(Long_2nd); }
136 static VerificationType double_type() { return VerificationType(Double); }
137 static VerificationType boolean_type() { return VerificationType(Boolean); }
138 static VerificationType byte_type() { return VerificationType(Byte); }
139 static VerificationType char_type() { return VerificationType(Char); }
140 static VerificationType short_type() { return VerificationType(Short); }
141 static VerificationType double2_type()
142 { return VerificationType(Double_2nd); }
143
144 // "check" types are used for queries. A "check" type is not assignable
145 // to anything, but the specified types are assignable to a "check". For
146 // example, any category1 primitive is assignable to category1_check and
147 // any reference is assignable to reference_check.
148 static VerificationType reference_check()
149 { return VerificationType(ReferenceQuery); }
150 static VerificationType category1_check()
|
111 BciMask = 0xffff << 1 * BitsPerByte,
112 BciForThis = ((u2)-1), // A bci of -1 is an Unintialized-This
113
114 // Query values
115 ReferenceQuery = (ReferenceFlag << 1 * BitsPerByte) | TypeQuery,
116 Category1Query = (Category1Flag << 1 * BitsPerByte) | TypeQuery,
117 Category2Query = (Category2Flag << 1 * BitsPerByte) | TypeQuery,
118 Category2_2ndQuery = (Category2_2ndFlag << 1 * BitsPerByte) | TypeQuery
119 };
120
121 VerificationType(uintptr_t raw_data) {
122 _u._data = raw_data;
123 }
124
125 public:
126
127 VerificationType() { *this = bogus_type(); }
128
129 // Create verification types
130 static VerificationType bogus_type() { return VerificationType(Bogus); }
131 static VerificationType top_type() { return bogus_type(); } // alias
132 static VerificationType null_type() { return VerificationType(Null); }
133 static VerificationType integer_type() { return VerificationType(Integer); }
134 static VerificationType float_type() { return VerificationType(Float); }
135 static VerificationType long_type() { return VerificationType(Long); }
136 static VerificationType long2_type() { return VerificationType(Long_2nd); }
137 static VerificationType double_type() { return VerificationType(Double); }
138 static VerificationType boolean_type() { return VerificationType(Boolean); }
139 static VerificationType byte_type() { return VerificationType(Byte); }
140 static VerificationType char_type() { return VerificationType(Char); }
141 static VerificationType short_type() { return VerificationType(Short); }
142 static VerificationType double2_type()
143 { return VerificationType(Double_2nd); }
144
145 // "check" types are used for queries. A "check" type is not assignable
146 // to anything, but the specified types are assignable to a "check". For
147 // example, any category1 primitive is assignable to category1_check and
148 // any reference is assignable to reference_check.
149 static VerificationType reference_check()
150 { return VerificationType(ReferenceQuery); }
151 static VerificationType category1_check()
|