src/share/vm/interpreter/oopMapCache.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/interpreter/oopMapCache.cpp
src/share/vm/interpreter/oopMapCache.cpp
Print this page
*** 211,245 ****
// test for oop
if ((value & (mask << oop_bit_number)) != 0) oop_closure->offset_do(i);
}
}
-
- #ifdef ENABLE_ZAP_DEAD_LOCALS
-
- void InterpreterOopMap::iterate_all(OffsetClosure* oop_closure, OffsetClosure* value_closure, OffsetClosure* dead_closure) {
- int n = number_of_entries();
- int word_index = 0;
- uintptr_t value = 0;
- uintptr_t mask = 0;
- // iterate over entries
- for (int i = 0; i < n; i++, mask <<= bits_per_entry) {
- // get current word
- if (mask == 0) {
- value = bit_mask()[word_index++];
- mask = 1;
- }
- // test for dead values & oops, and for live values
- if ((value & (mask << dead_bit_number)) != 0) dead_closure->offset_do(i); // call this for all dead values or oops
- else if ((value & (mask << oop_bit_number)) != 0) oop_closure->offset_do(i); // call this for all live oops
- else value_closure->offset_do(i); // call this for all live values
- }
- }
-
- #endif
-
-
void InterpreterOopMap::print() const {
int n = number_of_entries();
tty->print("oop map for ");
method()->print_value();
tty->print(" @ %d = [%d] { ", bci(), n);
--- 211,220 ----
*** 295,324 ****
for(int i = 0; i < max_locals; i++) {
bool v1 = is_oop(i) ? true : false;
bool v2 = vars[i].is_reference() ? true : false;
assert(v1 == v2, "locals oop mask generation error");
if (TraceOopMapGeneration && Verbose) tty->print("%d", v1 ? 1 : 0);
- #ifdef ENABLE_ZAP_DEAD_LOCALS
- bool v3 = is_dead(i) ? true : false;
- bool v4 = !vars[i].is_live() ? true : false;
- assert(v3 == v4, "locals live mask generation error");
- assert(!(v1 && v3), "dead value marked as oop");
- #endif
}
if (TraceOopMapGeneration && Verbose) { tty->cr(); tty->print("Stack (%d): ", stack_top); }
for(int j = 0; j < stack_top; j++) {
bool v1 = is_oop(max_locals + j) ? true : false;
bool v2 = stack[j].is_reference() ? true : false;
assert(v1 == v2, "stack oop mask generation error");
if (TraceOopMapGeneration && Verbose) tty->print("%d", v1 ? 1 : 0);
- #ifdef ENABLE_ZAP_DEAD_LOCALS
- bool v3 = is_dead(max_locals + j) ? true : false;
- bool v4 = !stack[j].is_live() ? true : false;
- assert(v3 == v4, "stack live mask generation error");
- assert(!(v1 && v3), "dead value marked as oop");
- #endif
}
if (TraceOopMapGeneration && Verbose) tty->cr();
return true;
}
--- 270,287 ----
src/share/vm/interpreter/oopMapCache.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File