summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/code_generator_mips64.h
diff options
context:
space:
mode:
authorAlexey Frunze <Alexey.Frunze@imgtec.com>2016-12-22 13:54:23 -0800
committerAlexey Frunze <Alexey.Frunze@imgtec.com>2016-12-22 16:42:01 -0800
commitc378980e32f0ec9ab7f1d0b87e1d5b97c1f3972c (patch)
tree11023f47469b9042091197ea3d2b5fb6e32cfb9e /compiler/optimizing/code_generator_mips64.h
parent07001c8540718117b91e8137804fa94d35cbb37a (diff)
downloadart-c378980e32f0ec9ab7f1d0b87e1d5b97c1f3972c.tar.gz
art-c378980e32f0ec9ab7f1d0b87e1d5b97c1f3972c.tar.bz2
art-c378980e32f0ec9ab7f1d0b87e1d5b97c1f3972c.zip
MIPS64: Align register spills on 8-byte boundaries in slow paths
64-bit loads/stores would otherwise be split into pairs of 32-bit ones. Test: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU Test: test-art-target-run-test-optimizing (MIPS64R6) in QEMU Change-Id: I4846d11b52b71507dfd5ca2e27b3f2a5befcc58e
Diffstat (limited to 'compiler/optimizing/code_generator_mips64.h')
-rw-r--r--compiler/optimizing/code_generator_mips64.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_mips64.h b/compiler/optimizing/code_generator_mips64.h
index cbd4957e4a..2f71059730 100644
--- a/compiler/optimizing/code_generator_mips64.h
+++ b/compiler/optimizing/code_generator_mips64.h
@@ -320,6 +320,10 @@ class CodeGeneratorMIPS64 : public CodeGenerator {
block_labels_ = CommonInitializeLabels<Mips64Label>();
}
+ // We prefer aligned loads and stores (less code), so spill and restore registers in slow paths
+ // at aligned locations.
+ uint32_t GetPreferredSlotsAlignment() const OVERRIDE { return kMips64DoublewordSize; }
+
void Finalize(CodeAllocator* allocator) OVERRIDE;
// Code generation helpers.