comparison src/share/vm/graal/graalCompiler.cpp @ 3649:5a8c44b5fb80

Remove ci usage on field lookup.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 16 Nov 2011 16:46:32 +0100
parents ff6a991c6e3c
children 0e8a2a629afb
comparison
equal deleted inserted replaced
3648:81ad8ab1f9fe 3649:5a8c44b5fb80
178 oop GraalCompiler::get_RiType(KlassHandle klass, TRAPS) { 178 oop GraalCompiler::get_RiType(KlassHandle klass, TRAPS) {
179 Handle name = VmIds::toString<Handle>(klass->name(), THREAD); 179 Handle name = VmIds::toString<Handle>(klass->name(), THREAD);
180 return createHotSpotTypeResolved(klass, name, CHECK_NULL); 180 return createHotSpotTypeResolved(klass, name, CHECK_NULL);
181 } 181 }
182 182
183 oop GraalCompiler::get_RiField(ciField *field, ciInstanceKlass* accessor_klass, Handle field_holder, Handle field_type, Bytecodes::Code byteCode, TRAPS) { 183 oop GraalCompiler::get_RiField(int offset, int flags, Symbol* field_name, Handle field_holder, Handle field_type, Bytecodes::Code byteCode, TRAPS) {
184 int offset; 184 Handle name = VmIds::toString<Handle>(field_name, CHECK_NULL);
185 if (byteCode != Bytecodes::_illegal) { 185 return VMExits::createRiField(field_holder, name, field_type, offset, flags, CHECK_NULL);
186 bool will_link = field->will_link_from_vm(accessor_klass, byteCode);
187 offset = (field->holder()->is_loaded() && will_link) ? field->offset() : -1;
188 } else {
189 offset = field->offset();
190 }
191 Handle field_name = VmIds::toString<Handle>(field->name()->get_symbol(), CHECK_0);
192 int flags = field->flags().as_int();
193 return VMExits::createRiField(field_holder, field_name, field_type, offset, flags, THREAD);
194 } 186 }
195 187
196 oop GraalCompiler::createHotSpotTypeResolved(KlassHandle klass, Handle name, TRAPS) { 188 oop GraalCompiler::createHotSpotTypeResolved(KlassHandle klass, Handle name, TRAPS) {
197 if (klass->graal_mirror() != NULL) { 189 if (klass->graal_mirror() != NULL) {
198 return klass->graal_mirror(); 190 return klass->graal_mirror();