< prev index next >

src/hotspot/share/interpreter/oopMapCache.cpp

Print this page

        

*** 273,292 **** LogStream st(logv.trace()); st.print("Locals (%d): ", max_locals); for(int i = 0; i < max_locals; i++) { bool v1 = is_oop(i) ? true : false; ! bool v2 = vars[i].is_reference() || vars[i].is_valuetype() ? true : false; assert(v1 == v2, "locals oop mask generation error"); st.print("%d", v1 ? 1 : 0); } st.cr(); st.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() || stack[j].is_valuetype( )? true : false; assert(v1 == v2, "stack oop mask generation error"); st.print("%d", v1 ? 1 : 0); } st.cr(); return true; --- 273,292 ---- LogStream st(logv.trace()); st.print("Locals (%d): ", max_locals); for(int i = 0; i < max_locals; i++) { bool v1 = is_oop(i) ? true : false; ! bool v2 = vars[i].is_reference(); assert(v1 == v2, "locals oop mask generation error"); st.print("%d", v1 ? 1 : 0); } st.cr(); st.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(); assert(v1 == v2, "stack oop mask generation error"); st.print("%d", v1 ? 1 : 0); } st.cr(); return true;
*** 364,382 **** if (entry_index == max_locals) { cell = stack; } // set oop bit ! // Note: the interpreter handles value types with oops too ! if ( cell->is_reference() || cell->is_valuetype()) { value |= (mask << oop_bit_number ); } // set dead bit if (!cell->is_live()) { value |= (mask << dead_bit_number); ! assert(!cell->is_reference() && !cell->is_valuetype(), "dead value marked as oop"); } } // make sure last word is stored bit_mask()[word_index] = value; --- 364,381 ---- if (entry_index == max_locals) { cell = stack; } // set oop bit ! if (cell->is_reference()) { value |= (mask << oop_bit_number ); } // set dead bit if (!cell->is_live()) { value |= (mask << dead_bit_number); ! assert(!cell->is_reference(), "dead value marked as oop"); } } // make sure last word is stored bit_mask()[word_index] = value;
< prev index next >