diff options
author | Georgia Kouveli <georgia.kouveli@arm.com> | 2017-02-10 15:39:19 +0000 |
---|---|---|
committer | Georgia Kouveli <georgia.kouveli@arm.com> | 2017-02-13 13:20:11 +0000 |
commit | 896682f0411643afa78e8c62caf723ec5f2b4dbe (patch) | |
tree | 2fa57870af5a7e26bd5b621690dab52e28e42cf6 /src/aarch64/macro-assembler-aarch64.h | |
parent | 2ab5c802e70ab95e794032878c95a7e446b23a07 (diff) |
Fix issue with TBZ and large literal pool.
Before emitting a TBZ or TBNZ instruction, check whether the literal pool
exceeds the range of these branches and if it does, emit it.
Change-Id: I7de1e58c7ff0670a10dc09961bdafcabc5f874d5
Diffstat (limited to 'src/aarch64/macro-assembler-aarch64.h')
-rw-r--r-- | src/aarch64/macro-assembler-aarch64.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/aarch64/macro-assembler-aarch64.h b/src/aarch64/macro-assembler-aarch64.h index f32edfd1..825c16dd 100644 --- a/src/aarch64/macro-assembler-aarch64.h +++ b/src/aarch64/macro-assembler-aarch64.h @@ -123,6 +123,9 @@ class LiteralPool : public Pool { } void CheckEmitFor(size_t amount, EmitOption option = kBranchRequired); + // Check whether we need to emit the literal pool in order to be able to + // safely emit a branch with a given range. + void CheckEmitForBranch(size_t range); void Emit(EmitOption option = kNoBranchRequired); void SetNextRecommendedCheckpoint(ptrdiff_t offset); |