src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp	Wed Dec 12 17:34:29 2012
--- new/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp	Wed Dec 12 17:34:29 2012

*** 296,306 **** --- 296,306 ---- } else { // make a copy the code which is going to be patched. for (int i = 0; i < _bytes_to_copy; i++) { address ptr = (address)(_pc_start + i); int a_byte = (*ptr) & 0xFF; ! __ a_byte (a_byte); ! __ emit_int8 (a_byte); } } address end_of_patch = __ pc(); int bytes_to_skip = 0;
*** 338,351 **** --- 338,351 ---- // emit the offsets needed to find the code to patch int being_initialized_entry_offset = __ offset() - being_initialized_entry + sizeof_patch_record; // Emit the patch record. We need to emit a full word, so emit an extra empty byte ! __ a_byte(0); ! __ a_byte(being_initialized_entry_offset); ! __ a_byte(bytes_to_skip); ! __ a_byte(_bytes_to_copy); ! __ emit_int8(0); ! __ emit_int8(being_initialized_entry_offset); ! __ emit_int8(bytes_to_skip); ! __ emit_int8(_bytes_to_copy); address patch_info_pc = __ pc(); assert(patch_info_pc - end_of_patch == bytes_to_skip, "incorrect patch info"); address entry = __ pc(); NativeGeneralJump::insert_unconditional((address)_pc_start, entry);

src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File