| Index: src/arm64/assembler-arm64.h
|
| diff --git a/src/arm64/assembler-arm64.h b/src/arm64/assembler-arm64.h
|
| index 9a8cd467a0f7b8425c6dabe754f9f7f89cc54686..b0dd3b84addd1a32cd059d09a78646e292f3d08b 100644
|
| --- a/src/arm64/assembler-arm64.h
|
| +++ b/src/arm64/assembler-arm64.h
|
| @@ -1694,6 +1694,10 @@ class Assembler : public AssemblerBase {
|
| return reinterpret_cast<Instruction*>(buffer_ + offset);
|
| }
|
|
|
| + ptrdiff_t InstructionOffset(Instruction* instr) const {
|
| + return reinterpret_cast<byte*>(instr) - buffer_;
|
| + }
|
| +
|
| // Register encoding.
|
| static Instr Rd(CPURegister rd) {
|
| ASSERT(rd.code() != kSPRegInternalCode);
|
| @@ -2182,6 +2186,15 @@ class Assembler : public AssemblerBase {
|
| // not later attempt (likely unsuccessfully) to patch it to branch directly to
|
| // the label.
|
| void DeleteUnresolvedBranchInfoForLabel(Label* label);
|
| + // This function deletes the information related to the label by iterating
|
| + // through all unresolved branch infos and deleting the appropriating one. Its
|
| + // complexity is proportional to the number of unresolved branches pending.
|
| + void DeleteUnresolvedBranchInfoForLabelIterate(Label* label);
|
| + // This function deletes the information related to the label by traversing
|
| + // the label chain, and for each PC-relative instruction in the chain checking
|
| + // if pending unresolved information exists. Its complexity is proportional to
|
| + // the length of the label chain.
|
| + void DeleteUnresolvedBranchInfoForLabelTraverse(Label* label);
|
|
|
| private:
|
| PositionsRecorder positions_recorder_;
|
|
|