summaryrefslogtreecommitdiff
path: root/runtime/interpreter/interpreter_cache.h
diff options
context:
space:
mode:
author David Srbecky <dsrbecky@google.com> 2018-09-08 18:02:36 +0100
committer David Srbecky <dsrbecky@google.com> 2018-09-27 20:21:38 +0100
commitef79aa317437d5ba2bc2e3dd197cd893a57b0d19 (patch)
tree9f580f5e337c1a9efb61b09ada50ef378c6d147e /runtime/interpreter/interpreter_cache.h
parent233b572a940431a94a1790750afdceab2d6f4fde (diff)
Use the small thread-local cache for mterp field accesses.
This reduces the overhead of non-quickened code from 10% to 7.5%. (measured on golem benchmarks for arm64) Test: ./art/test.py -b -r --interpreter Change-Id: Icce9183eb60c62ac30a0c6ff57e32c796c807f03
Diffstat (limited to 'runtime/interpreter/interpreter_cache.h')
-rw-r--r--runtime/interpreter/interpreter_cache.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/interpreter/interpreter_cache.h b/runtime/interpreter/interpreter_cache.h
index c25222eff3..b4966fd615 100644
--- a/runtime/interpreter/interpreter_cache.h
+++ b/runtime/interpreter/interpreter_cache.h
@@ -35,6 +35,10 @@ class Thread;
// All operations must be done from the owning thread,
// or at a point when the owning thread is suspended.
//
+// The values stored for opcodes in the cache currently are:
+// iget/iput: The field offset. The field must be non-volatile.
+// sget/sput: The ArtField* pointer. The field must be non-volitile.
+//
// Aligned to 16-bytes to make it easier to get the address of the cache
// from assembly (it ensures that the offset is valid immediate value).
class ALIGNED(16) InterpreterCache {