src/share/vm/opto/compile.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
7079317 Cdiff src/share/vm/opto/compile.cpp
src/share/vm/opto/compile.cpp
Print this page
*** 517,535 ****
buf.stubs()->initialize_shared_locs( &locs_buf[lsize * 2], lsize);
// Do the emission.
Label fakeL; // Fake label for branch instructions.
! bool is_branch = n->is_Branch() && n->as_Mach()->ideal_Opcode() != Op_Jump;
if (is_branch) {
MacroAssembler masm(&buf);
masm.bind(fakeL);
! n->as_Mach()->label_set(&fakeL, 0);
}
n->emit(buf, this->regalloc());
! if (is_branch) // Clear the reference to fake label.
! n->as_Mach()->label_set(NULL, 0);
// End scratch_emit_size section.
set_in_scratch_emit_size(false);
return buf.insts_size();
--- 517,538 ----
buf.stubs()->initialize_shared_locs( &locs_buf[lsize * 2], lsize);
// Do the emission.
Label fakeL; // Fake label for branch instructions.
! Label* saveL = NULL;
! uint save_bnum = 0;
! bool is_branch = n->is_MachBranch();
if (is_branch) {
MacroAssembler masm(&buf);
masm.bind(fakeL);
! n->as_MachBranch()->save_label(&saveL, &save_bnum);
! n->as_MachBranch()->label_set(&fakeL, 0);
}
n->emit(buf, this->regalloc());
! if (is_branch) // Restore label.
! n->as_MachBranch()->label_set(saveL, save_bnum);
// End scratch_emit_size section.
set_in_scratch_emit_size(false);
return buf.insts_size();
src/share/vm/opto/compile.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File