Mercurial > hg > graal-compiler
diff src/share/vm/graal/graalCompilerToVM.cpp @ 4316:b4b16e4e043f
Fix eager resolving for class constants
author | Peter Hofer <peter.hofer@jku.at> |
---|---|
date | Mon, 23 Jan 2012 14:35:29 +0100 |
parents | 874fcc2ddd9d |
children | 539fca6a3b98 |
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompilerToVM.cpp Mon Jan 23 12:21:06 2012 +0100 +++ b/src/share/vm/graal/graalCompilerToVM.cpp Mon Jan 23 14:35:29 2012 +0100 @@ -506,7 +506,9 @@ constantPoolOop cp = instanceKlass::cast(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(type)))->constants(); int byteCode = (op & 0xFF); - if (byteCode != Bytecodes::_checkcast && byteCode != Bytecodes::_instanceof && byteCode != Bytecodes::_new && byteCode != Bytecodes::_anewarray && byteCode != Bytecodes::_multianewarray) { + if (byteCode != Bytecodes::_checkcast && byteCode != Bytecodes::_instanceof && byteCode != Bytecodes::_new && byteCode != Bytecodes::_anewarray + && byteCode != Bytecodes::_multianewarray && byteCode != Bytecodes::_ldc && byteCode != Bytecodes::_ldc_w && byteCode != Bytecodes::_ldc2_w) + { index = cp->remap_instruction_operand_from_cache(GraalCompiler::to_cp_index_u2(index)); } constantTag tag = cp->tag_at(index);