Mercurial > hg > truffle
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*) { |