diff options
author | 2016-10-14 00:37:37 +0000 | |
---|---|---|
committer | 2016-10-14 00:37:38 +0000 | |
commit | c8b722b3cebff245d614e95d1849de45ef7bdf06 (patch) | |
tree | 7b7058dfe554d98d8fbf51221c47752845e2b49d /compiler/utils/mips/assembler_mips.h | |
parent | 968c14bd6f62897ca8a0d61b5942c6fe961664de (diff) | |
parent | ae7ff92c430aa12484ff8258ee4ed13421ac7934 (diff) |
Merge "jni: Add read barrier fast path to jni compiler"
Diffstat (limited to 'compiler/utils/mips/assembler_mips.h')
-rw-r--r-- | compiler/utils/mips/assembler_mips.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/compiler/utils/mips/assembler_mips.h b/compiler/utils/mips/assembler_mips.h index e1255f7f23..b932fb82bc 100644 --- a/compiler/utils/mips/assembler_mips.h +++ b/compiler/utils/mips/assembler_mips.h @@ -179,6 +179,8 @@ class MipsExceptionSlowPath { class MipsAssembler FINAL : public Assembler, public JNIMacroAssembler<PointerSize::k32> { public: + using JNIBase = JNIMacroAssembler<PointerSize::k32>; + explicit MipsAssembler(ArenaAllocator* arena, const MipsInstructionSetFeatures* instruction_set_features = nullptr) : Assembler(arena), @@ -723,6 +725,34 @@ class MipsAssembler FINAL : public Assembler, public JNIMacroAssembler<PointerSi UNIMPLEMENTED(FATAL) << "Do not use Jump for MIPS"; } + // Don't warn about a different virtual Bind/Jump in the base class. + using JNIBase::Bind; + using JNIBase::Jump; + + // Create a new label that can be used with Jump/Bind calls. + std::unique_ptr<JNIMacroLabel> CreateLabel() OVERRIDE { + LOG(FATAL) << "Not implemented on MIPS32"; + UNREACHABLE(); + } + // Emit an unconditional jump to the label. + void Jump(JNIMacroLabel* label ATTRIBUTE_UNUSED) OVERRIDE { + LOG(FATAL) << "Not implemented on MIPS32"; + UNREACHABLE(); + } + // Emit a conditional jump to the label by applying a unary condition test to the register. + void Jump(JNIMacroLabel* label ATTRIBUTE_UNUSED, + JNIMacroUnaryCondition cond ATTRIBUTE_UNUSED, + ManagedRegister test ATTRIBUTE_UNUSED) OVERRIDE { + LOG(FATAL) << "Not implemented on MIPS32"; + UNREACHABLE(); + } + + // Code at this offset will serve as the target for the Jump call. + void Bind(JNIMacroLabel* label ATTRIBUTE_UNUSED) OVERRIDE { + LOG(FATAL) << "Not implemented on MIPS32"; + UNREACHABLE(); + } + // Create a new literal with a given value. // NOTE: Force the template parameter to be explicitly specified. template <typename T> |