diff options
Diffstat (limited to 'compiler/utils')
| -rw-r--r-- | compiler/utils/mips/assembler_mips.cc | 4 | ||||
| -rw-r--r-- | compiler/utils/mips/assembler_mips.h | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/compiler/utils/mips/assembler_mips.cc b/compiler/utils/mips/assembler_mips.cc index ebaf1c0cab..608b3bc23c 100644 --- a/compiler/utils/mips/assembler_mips.cc +++ b/compiler/utils/mips/assembler_mips.cc @@ -2024,6 +2024,10 @@ void MipsAssembler::BindPcRelBaseLabel() { Bind(&pc_rel_base_label_); } +uint32_t MipsAssembler::GetPcRelBaseLabelLocation() const { + return GetLabelLocation(&pc_rel_base_label_); +} + void MipsAssembler::FinalizeLabeledBranch(MipsLabel* label) { uint32_t length = branches_.back().GetLength(); if (!label->IsBound()) { diff --git a/compiler/utils/mips/assembler_mips.h b/compiler/utils/mips/assembler_mips.h index 1f7781fef9..8367e68ebc 100644 --- a/compiler/utils/mips/assembler_mips.h +++ b/compiler/utils/mips/assembler_mips.h @@ -646,6 +646,9 @@ class MipsAssembler FINAL : public Assembler { // The assembler then computes literal offsets relative to this label. void BindPcRelBaseLabel(); + // Returns the location of the label bound with BindPcRelBaseLabel(). + uint32_t GetPcRelBaseLabelLocation() const; + // Note that PC-relative literal loads are handled as pseudo branches because they need very // similar relocation and may similarly expand in size to accomodate for larger offsets relative // to PC. |