src/cpu/sparc/vm/assembler_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7045514 Cdiff src/cpu/sparc/vm/assembler_sparc.cpp

src/cpu/sparc/vm/assembler_sparc.cpp

Print this page

        

*** 40,49 **** --- 40,55 ---- #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" #include "gc_implementation/g1/heapRegion.hpp" #endif + #ifdef PRODUCT + #define BLOCK_COMMENT(str) /* nothing */ + #else + #define BLOCK_COMMENT(str) block_comment(str) + #endif + // Convert the raw encoding form into the form expected by the // constructor for Address. Address Address::make_raw(int base, int index, int scale, int disp, bool disp_is_oop) { assert(scale == 0, "not supported"); RelocationHolder rspec;
*** 1070,1079 **** --- 1076,1091 ---- // check for pending exceptions. use Gtemp as scratch register. if (check_exceptions) { check_and_forward_exception(Gtemp); } + #ifdef ASSERT + set(badHeapWordVal, G3); + set(badHeapWordVal, G4); + set(badHeapWordVal, G5); + #endif + // get oop result if there is one and reset the value in the thread if (oop_result->is_valid()) { get_vm_result(oop_result); } }
*** 1175,1184 **** --- 1187,1201 ---- save_thread(thread_cache); // do the call call(entry_point, relocInfo::runtime_call_type); delayed()->nop(); restore_thread(thread_cache); + #ifdef ASSERT + set(badHeapWordVal, G3); + set(badHeapWordVal, G4); + set(badHeapWordVal, G5); + #endif } void MacroAssembler::call_VM_leaf(Register thread_cache, address entry_point, int number_of_arguments) { call_VM_leaf_base(thread_cache, entry_point, number_of_arguments);
*** 1516,1526 **** // save_frame: given number of "extra" words in frame, // issue approp. save instruction (p 200, v8 manual) ! void MacroAssembler::save_frame(int extraWords = 0) { int delta = -total_frame_size_in_bytes(extraWords); if (is_simm13(delta)) { save(SP, delta, SP); } else { set(delta, G3_scratch); --- 1533,1543 ---- // save_frame: given number of "extra" words in frame, // issue approp. save instruction (p 200, v8 manual) ! void MacroAssembler::save_frame(int extraWords) { int delta = -total_frame_size_in_bytes(extraWords); if (is_simm13(delta)) { save(SP, delta, SP); } else { set(delta, G3_scratch);
*** 1728,1737 **** --- 1745,1755 ---- // plausibility check for oops if (!VerifyOops) return; if (reg == G0) return; // always NULL, which is always an oop + BLOCK_COMMENT("verify_oop {"); char buffer[64]; #ifdef COMPILER1 if (CommentedAssembly) { snprintf(buffer, sizeof(buffer), "verify_oop at %d", offset()); block_comment(buffer);
*** 1766,1775 **** --- 1784,1794 ---- // Register call to verify_oop_subroutine callr(O7, G0); delayed()->nop(); // recover frame size add(SP, 8*8,SP); + BLOCK_COMMENT("} verify_oop"); } void MacroAssembler::_verify_oop_addr(Address addr, const char* msg, const char * file, int line) { // plausibility check for oops if (!VerifyOops) return;
*** 2038,2048 **** } ThreadStateTransition::transition(JavaThread::current(), _thread_in_vm, saved_state); } else ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg); ! assert(false, "error"); } #ifndef PRODUCT void MacroAssembler::test() { --- 2057,2067 ---- } ThreadStateTransition::transition(JavaThread::current(), _thread_in_vm, saved_state); } else ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg); ! assert(false, err_msg("DEBUG MESSAGE: %s", msg)); } #ifndef PRODUCT void MacroAssembler::test() {
*** 3228,3257 **** } } RegisterOrConstant MacroAssembler::argument_offset(RegisterOrConstant arg_slot, int extra_slot_offset) { // cf. TemplateTable::prepare_invoke(), if (load_receiver). int stackElementSize = Interpreter::stackElementSize; int offset = extra_slot_offset * stackElementSize; if (arg_slot.is_constant()) { offset += arg_slot.as_constant() * stackElementSize; return offset; } else { ! Register temp = arg_slot.as_register(); ! sll_ptr(temp, exact_log2(stackElementSize), temp); if (offset != 0) ! add(temp, offset, temp); ! return temp; } } Address MacroAssembler::argument_address(RegisterOrConstant arg_slot, int extra_slot_offset) { ! return Address(Gargs, argument_offset(arg_slot, extra_slot_offset)); } void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg, Register temp_reg, --- 3247,3278 ---- } } RegisterOrConstant MacroAssembler::argument_offset(RegisterOrConstant arg_slot, + Register temp_reg, int extra_slot_offset) { // cf. TemplateTable::prepare_invoke(), if (load_receiver). int stackElementSize = Interpreter::stackElementSize; int offset = extra_slot_offset * stackElementSize; if (arg_slot.is_constant()) { offset += arg_slot.as_constant() * stackElementSize; return offset; } else { ! assert(temp_reg != noreg, "must specify"); ! sll_ptr(arg_slot.as_register(), exact_log2(stackElementSize), temp_reg); if (offset != 0) ! add(temp_reg, offset, temp_reg); ! return temp_reg; } } Address MacroAssembler::argument_address(RegisterOrConstant arg_slot, + Register temp_reg, int extra_slot_offset) { ! return Address(Gargs, argument_offset(arg_slot, temp_reg, extra_slot_offset)); } void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg, Register temp_reg,
src/cpu/sparc/vm/assembler_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File