summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator_arm.h
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2017-01-19 14:22:26 +0000
committerNicolas Geoffray <ngeoffray@google.com>2017-01-26 10:37:58 +0000
commit5b3c6c0fcca76d82a4c9acb03f7714457ae53dd9 (patch)
treee1678dcd577abb63391a0cfcbb27a69a0ac4e769 /compiler/optimizing/code_generator_arm.h
parentc9569731061e560cb56116255b00a49d6a5daeb8 (diff)
Refactor code for unresolved field entrypoint.
- Do macro magic to avoid source code duplication. - Do not fetch the referrer from the assembly, but from the C entrypoint instead. Test: test-art-host test-art-target Change-Id: Ib139c94bc8f74686640cad538ba75dc56fa00e1d
Diffstat (limited to 'compiler/optimizing/code_generator_arm.h')
-rw-r--r--compiler/optimizing/code_generator_arm.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/code_generator_arm.h b/compiler/optimizing/code_generator_arm.h
index 52d18575ff..b38c9155ef 100644
--- a/compiler/optimizing/code_generator_arm.h
+++ b/compiler/optimizing/code_generator_arm.h
@@ -128,7 +128,9 @@ class FieldAccessCallingConventionARM : public FieldAccessCallingConvention {
}
Location GetSetValueLocation(Primitive::Type type, bool is_instance) const OVERRIDE {
return Primitive::Is64BitType(type)
- ? Location::RegisterPairLocation(R2, R3)
+ ? (is_instance
+ ? Location::RegisterPairLocation(R2, R3)
+ : Location::RegisterPairLocation(R1, R2))
: (is_instance
? Location::RegisterLocation(R2)
: Location::RegisterLocation(R1));