diff options
Diffstat (limited to 'compiler/utils/mips/assembler_mips.cc')
-rw-r--r-- | compiler/utils/mips/assembler_mips.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/compiler/utils/mips/assembler_mips.cc b/compiler/utils/mips/assembler_mips.cc index a9d1a25530..6b73695208 100644 --- a/compiler/utils/mips/assembler_mips.cc +++ b/compiler/utils/mips/assembler_mips.cc @@ -5191,6 +5191,17 @@ void MipsAssembler::VerifyObject(FrameOffset src ATTRIBUTE_UNUSED, // TODO: not validating references. } +void MipsAssembler::Jump(ManagedRegister mbase, Offset offset, ManagedRegister mscratch) { + MipsManagedRegister base = mbase.AsMips(); + MipsManagedRegister scratch = mscratch.AsMips(); + CHECK(base.IsCoreRegister()) << base; + CHECK(scratch.IsCoreRegister()) << scratch; + LoadFromOffset(kLoadWord, scratch.AsCoreRegister(), + base.AsCoreRegister(), offset.Int32Value()); + Jr(scratch.AsCoreRegister()); + NopIfNoReordering(); +} + void MipsAssembler::Call(ManagedRegister mbase, Offset offset, ManagedRegister mscratch) { MipsManagedRegister base = mbase.AsMips(); MipsManagedRegister scratch = mscratch.AsMips(); |