diff src/share/vm/graal/graalCompiler.cpp @ 3090:536528f48708

more escape analysis work: debug info
author Lukas Stadler <lukas.stadler@jku.at>
date Tue, 28 Jun 2011 19:14:28 +0200
parents 8b0236cbed14
children 22d11b3bc561
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompiler.cpp	Mon Jun 27 17:15:12 2011 +0200
+++ b/src/share/vm/graal/graalCompiler.cpp	Tue Jun 28 19:14:28 2011 +0200
@@ -144,8 +144,13 @@
 }
 
 oop GraalCompiler::get_RiField(ciField *field, ciInstanceKlass* accessor_klass, KlassHandle accessor, Bytecodes::Code byteCode, TRAPS) {
-  bool will_link = field->will_link_from_vm(accessor_klass, byteCode);
-  int offset = (field->holder()->is_loaded() && will_link) ? field->offset() : -1;
+  int offset;
+  if (byteCode != Bytecodes::_illegal) {
+    bool will_link = field->will_link_from_vm(accessor_klass, byteCode);
+    offset = (field->holder()->is_loaded() && will_link) ? field->offset() : -1;
+  } else {
+    offset = field->offset();
+  }
   Handle field_name = VmIds::toString<Handle>(field->name()->get_symbol(), CHECK_0);
   Handle field_holder = get_RiType(field->holder(), accessor, CHECK_0);
   Handle field_type = get_RiType(field->type(), accessor, CHECK_0);