summaryrefslogtreecommitdiff
path: root/compiler/utils/mips/assembler_mips.h
diff options
context:
space:
mode:
author Tijana Jakovljevic <tijana.jakovljevic@imgtec.com> 2017-01-17 16:59:03 +0100
committer Tijana Jakovljevic <tijana.jakovljevic@imgtec.com> 2017-03-03 09:36:43 +0100
commit5743386b4d161f3884275c66b0783bd3cc3a8050 (patch)
tree6794f8047586e7bc02702cc560bca51d1ab5bcc3 /compiler/utils/mips/assembler_mips.h
parent425b5d23e2c60d295471817a75b1b554481c5334 (diff)
MIPS64: Refactor implicit null checks in array/field get/set
Rationale: on MIPS64 64-bit loads and stores may be performed as pairs of 32-bit loads/stores. Implicit null checks must be associated with the first 32-bit load/store in a pair and not the last. This change ensures proper association of said checks (a few were done after the last 32-bit load/store in a pair) and lays ground for further improvements in array/field get/set. Additionally ported to MIPS32. Test: mma test-art-target-run-test in QEMU Test: mma test-art-host-gtest Change-Id: If2612df62c21522959e69c637a36cc4ea962a32e
Diffstat (limited to 'compiler/utils/mips/assembler_mips.h')
-rw-r--r--compiler/utils/mips/assembler_mips.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/utils/mips/assembler_mips.h b/compiler/utils/mips/assembler_mips.h
index 47ddf2547a..1a5a23d10b 100644
--- a/compiler/utils/mips/assembler_mips.h
+++ b/compiler/utils/mips/assembler_mips.h
@@ -501,8 +501,10 @@ class MipsAssembler FINAL : public Assembler, public JNIMacroAssembler<PointerSi
bool is_float = false);
private:
+ // This will be used as an argument for loads/stores
+ // when there is no need for implicit null checks.
struct NoImplicitNullChecker {
- void operator()() {}
+ void operator()() const {}
};
public: