src/share/vm/shark/sharkCacheDecache.cpp
Print this page
rev 3850 : [mq]: shark.patch
*** 105,119 ****
}
void SharkDecacher::process_method_slot(Value** value, int offset) {
// Decache the method pointer
write_value_to_frame(
! SharkType::Method*_type(),
*value,
offset);
- oopmap()->set_oop(slot2reg(offset));
}
void SharkDecacher::process_pc_slot(int offset) {
// Record the PC
builder()->CreateStore(
--- 105,118 ----
}
void SharkDecacher::process_method_slot(Value** value, int offset) {
// Decache the method pointer
write_value_to_frame(
! SharkType::Method_type(),
*value,
offset);
}
void SharkDecacher::process_pc_slot(int offset) {
// Record the PC
builder()->CreateStore(
*** 203,213 ****
*value = read_value_from_frame(SharkType::oop_type(), offset);
}
void SharkCacher::process_method_slot(Value** value, int offset) {
// Cache the method pointer
! *value = read_value_from_frame(SharkType::Method*_type(), offset);
}
void SharkFunctionEntryCacher::process_method_slot(Value** value, int offset) {
// "Cache" the method pointer
*value = method();
--- 202,212 ----
*value = read_value_from_frame(SharkType::oop_type(), offset);
}
void SharkCacher::process_method_slot(Value** value, int offset) {
// Cache the method pointer
! *value = read_value_from_frame(SharkType::Method_type(), offset);
}
void SharkFunctionEntryCacher::process_method_slot(Value** value, int offset) {
// "Cache" the method pointer
*value = method();
*** 228,238 ****
value->zero_checked());
}
}
Value* SharkOSREntryCacher::CreateAddressOfOSRBufEntry(int offset,
! const Type* type) {
Value *result = builder()->CreateStructGEP(osr_buf(), offset);
if (type != SharkType::intptr_type())
result = builder()->CreateBitCast(result, PointerType::getUnqual(type));
return result;
}
--- 227,237 ----
value->zero_checked());
}
}
Value* SharkOSREntryCacher::CreateAddressOfOSRBufEntry(int offset,
! Type* type) {
Value *result = builder()->CreateStructGEP(osr_buf(), offset);
if (type != SharkType::intptr_type())
result = builder()->CreateBitCast(result, PointerType::getUnqual(type));
return result;
}
*** 252,265 ****
SharkType::to_stackType(value->basic_type()))),
value->zero_checked());
}
}
! void SharkDecacher::write_value_to_frame(const Type* type,
Value* value,
int offset) {
builder()->CreateStore(value, stack()->slot_addr(offset, type));
}
! Value* SharkCacher::read_value_from_frame(const Type* type, int offset) {
return builder()->CreateLoad(stack()->slot_addr(offset, type));
}
--- 251,264 ----
SharkType::to_stackType(value->basic_type()))),
value->zero_checked());
}
}
! void SharkDecacher::write_value_to_frame(Type* type,
Value* value,
int offset) {
builder()->CreateStore(value, stack()->slot_addr(offset, type));
}
! Value* SharkCacher::read_value_from_frame(Type* type, int offset) {
return builder()->CreateLoad(stack()->slot_addr(offset, type));
}