src/share/vm/opto/compile.cpp

changeset 3051
11211f7cb5a0
parent 3037
3d42f82cd811
child 3099
c124e2e7463e
     1.1 --- a/src/share/vm/opto/compile.cpp	Tue Aug 16 04:14:05 2011 -0700
     1.2 +++ b/src/share/vm/opto/compile.cpp	Tue Aug 16 11:53:57 2011 -0700
     1.3 @@ -519,15 +519,18 @@
     1.4    // Do the emission.
     1.5  
     1.6    Label fakeL; // Fake label for branch instructions.
     1.7 -  bool is_branch = n->is_Branch() && n->as_Mach()->ideal_Opcode() != Op_Jump;
     1.8 +  Label*   saveL = NULL;
     1.9 +  uint save_bnum = 0;
    1.10 +  bool is_branch = n->is_MachBranch();
    1.11    if (is_branch) {
    1.12      MacroAssembler masm(&buf);
    1.13      masm.bind(fakeL);
    1.14 -    n->as_Mach()->label_set(&fakeL, 0);
    1.15 +    n->as_MachBranch()->save_label(&saveL, &save_bnum);
    1.16 +    n->as_MachBranch()->label_set(&fakeL, 0);
    1.17    }
    1.18    n->emit(buf, this->regalloc());
    1.19 -  if (is_branch) // Clear the reference to fake label.
    1.20 -    n->as_Mach()->label_set(NULL, 0);
    1.21 +  if (is_branch) // Restore label.
    1.22 +    n->as_MachBranch()->label_set(saveL, save_bnum);
    1.23  
    1.24    // End scratch_emit_size section.
    1.25    set_in_scratch_emit_size(false);

mercurial