hotspot/src/cpu/aarch64/vm/relocInfo_aarch64.cpp
changeset 35159 3ee05e289424
parent 35121 e8900e5763ff
child 35538 7a4f398a4f71
equal deleted inserted replaced
35158:23c52c9c06f5 35159:3ee05e289424
    64     if (trampoline) {
    64     if (trampoline) {
    65       return nativeCallTrampolineStub_at(trampoline)->destination();
    65       return nativeCallTrampolineStub_at(trampoline)->destination();
    66     }
    66     }
    67   }
    67   }
    68   if (orig_addr != NULL) {
    68   if (orig_addr != NULL) {
    69     return MacroAssembler::pd_call_destination(orig_addr);
    69     address new_addr = MacroAssembler::pd_call_destination(orig_addr);
       
    70     // If call is branch to self, don't try to relocate it, just leave it
       
    71     // as branch to self. This happens during code generation if the code
       
    72     // buffer expands. It will be relocated to the trampoline above once
       
    73     // code generation is complete.
       
    74     new_addr = (new_addr == orig_addr) ? addr() : new_addr;
       
    75     return new_addr;
    70   }
    76   }
    71   return MacroAssembler::pd_call_destination(addr());
    77   return MacroAssembler::pd_call_destination(addr());
    72 }
    78 }
    73 
    79 
    74 
    80