mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8186209: Tool support for ConstantDynamic
8186046: Minimal ConstantDynamic support 8190972: Ensure that AOT/Graal filters out class files containing CONSTANT_Dynamic ahead of full AOT support Co-authored-by: Lois Foltan <lois.foltan@oracle.com> Co-authored-by: John Rose <john.r.rose@oracle.com> Reviewed-by: acorn, coleenp, kvn
This commit is contained in:
parent
52d3bf29b2
commit
e55a05957d
114 changed files with 11762 additions and 404 deletions
|
@ -1878,13 +1878,15 @@ void GenerateOopMap::do_ldc(int bci) {
|
|||
ConstantPool* cp = method()->constants();
|
||||
constantTag tag = cp->tag_at(ldc.pool_index()); // idx is index in resolved_references
|
||||
BasicType bt = ldc.result_type();
|
||||
#ifdef ASSERT
|
||||
BasicType tag_bt = tag.is_dynamic_constant() ? bt : tag.basic_type();
|
||||
assert(bt == tag_bt, "same result");
|
||||
#endif
|
||||
CellTypeState cts;
|
||||
if (tag.basic_type() == T_OBJECT) {
|
||||
if (is_reference_type(bt)) { // could be T_ARRAY with condy
|
||||
assert(!tag.is_string_index() && !tag.is_klass_index(), "Unexpected index tag");
|
||||
assert(bt == T_OBJECT, "Guard is incorrect");
|
||||
cts = CellTypeState::make_line_ref(bci);
|
||||
} else {
|
||||
assert(bt != T_OBJECT, "Guard is incorrect");
|
||||
cts = valCTS;
|
||||
}
|
||||
ppush1(cts);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue