summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2015-11-02 14:36:43 +0000
committer Vladimir Marko <vmarko@google.com> 2015-11-12 10:43:47 +0000
commit0f7dca4ca0be8d2f8776794d35edf8b51b5bc997 (patch)
treecb2d99a0e9b7c50eb853a64b477268baaa77c11b /compiler/optimizing/nodes.h
parentce0f43b97ffb5e4d14c5df6607d8efb46a5dc9d2 (diff)
Optimizing/X86: PC-relative dex cache array addressing.
Add PC-relative dex cache array addressing for X86 and use it for better invoke-static/-direct dispatch. Also delay the initialization to the PC-relative base until needed. Change-Id: Ib8634d5edce4920cd70172fd13211809cf6948d1
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r--compiler/optimizing/nodes.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index ab53e63300..4c4d0f268d 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -3436,6 +3436,7 @@ class HInvokeStaticOrDirect : public HInvoke {
dispatch_info_ = dispatch_info;
}
+ void InsertInputAt(size_t index, HInstruction* input);
void RemoveInputAt(size_t index);
bool CanDoImplicitNullCheckOn(HInstruction* obj ATTRIBUTE_UNUSED) const OVERRIDE {
@@ -3456,7 +3457,7 @@ class HInvokeStaticOrDirect : public HInvoke {
bool IsStringInit() const { return GetMethodLoadKind() == MethodLoadKind::kStringInit; }
uint32_t GetCurrentMethodInputIndex() const { return GetNumberOfArguments(); }
bool HasMethodAddress() const { return GetMethodLoadKind() == MethodLoadKind::kDirectAddress; }
- bool HasPcRelDexCache() const {
+ bool HasPcRelativeDexCache() const {
return GetMethodLoadKind() == MethodLoadKind::kDexCachePcRelative;
}
bool HasCurrentMethodInput() const {
@@ -3484,7 +3485,7 @@ class HInvokeStaticOrDirect : public HInvoke {
}
uint32_t GetDexCacheArrayOffset() const {
- DCHECK(HasPcRelDexCache());
+ DCHECK(HasPcRelativeDexCache());
return dispatch_info_.method_load_data;
}