comparison src/share/vm/runtime/frame.cpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
1151 oop* frame::oopmapreg_to_location(VMReg reg, const RegisterMap* reg_map) const { 1151 oop* frame::oopmapreg_to_location(VMReg reg, const RegisterMap* reg_map) const {
1152 if(reg->is_reg()) { 1152 if(reg->is_reg()) {
1153 // If it is passed in a register, it got spilled in the stub frame. 1153 // If it is passed in a register, it got spilled in the stub frame.
1154 return (oop *)reg_map->location(reg); 1154 return (oop *)reg_map->location(reg);
1155 } else { 1155 } else {
1156 int sp_offset_in_stack_slots = reg->reg2stack(); 1156 int sp_offset_in_bytes = reg->reg2stack() * VMRegImpl::stack_slot_size;
1157 int sp_offset = sp_offset_in_stack_slots >> (LogBytesPerWord - LogBytesPerInt); 1157 return (oop*)(((address)unextended_sp()) + sp_offset_in_bytes);
1158 return (oop *)&unextended_sp()[sp_offset];
1159 } 1158 }
1160 } 1159 }
1161 1160
1162 BasicLock* frame::compiled_synchronized_native_monitor(nmethod* nm) { 1161 BasicLock* frame::compiled_synchronized_native_monitor(nmethod* nm) {
1163 if (nm == NULL) { 1162 if (nm == NULL) {
1329 void frame::zap_dead_compiled_locals(JavaThread* thread, const RegisterMap* reg_map) { 1328 void frame::zap_dead_compiled_locals(JavaThread* thread, const RegisterMap* reg_map) {
1330 1329
1331 ResourceMark rm(thread); 1330 ResourceMark rm(thread);
1332 assert(_cb != NULL, "sanity check"); 1331 assert(_cb != NULL, "sanity check");
1333 if (_cb->oop_maps() != NULL) { 1332 if (_cb->oop_maps() != NULL) {
1334 OopMapSet::all_do(this, reg_map, &_check_oop, check_derived_oop, 1333 OopMapSet::all_do(this, reg_map, &_check_oop, check_derived_oop, &_check_value);
1335 &_check_value, &_zap_dead);
1336 } 1334 }
1337 } 1335 }
1338 1336
1339 1337
1340 void frame::zap_dead_entry_locals(JavaThread*, const RegisterMap*) { 1338 void frame::zap_dead_entry_locals(JavaThread*, const RegisterMap*) {