< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.cpp

Print this page

        

*** 3696,3729 **** Label& is_flat_array) { load_klass(temp_reg, oop); test_flat_array_klass(temp_reg, temp_reg, is_flat_array); } - void MacroAssembler::test_value_is_not_buffered(Register value, Register temp_reg, Label& not_buffered) { - ExternalAddress VTBuffer_top(VTBuffer::top_addr()); - ExternalAddress VTBuffer_end(VTBuffer::end_addr()); - - // Test below is ordered based on the relative positions of - // the Java heap and the VTBuffer to execute a single test for heap-allocated values - - if (VTBuffer::base() < Universe::heap()->base()) { - lea(temp_reg, VTBuffer_end); - cmpptr(value, temp_reg); - jcc(Assembler::greaterEqual, not_buffered); - lea(temp_reg, VTBuffer_top); - cmpptr(value, temp_reg); - jcc(Assembler::less, not_buffered); - } else { - lea(temp_reg, VTBuffer_top); - cmpptr(value, temp_reg); - jcc(Assembler::less, not_buffered); - lea(temp_reg, VTBuffer_end); - cmpptr(value, temp_reg); - jcc(Assembler::greaterEqual, not_buffered); - } - } - void MacroAssembler::os_breakpoint() { // instead of directly emitting a breakpoint, call os:breakpoint for better debugability // (e.g., MSVC can't call ps() otherwise) call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint))); } --- 3696,3705 ----
< prev index next >