diff options
author | 2015-08-19 14:58:14 -0700 | |
---|---|---|
committer | 2015-08-19 18:51:32 -0700 | |
commit | 05f2056b4f11e0b2bac92b2655abe7030771f5dc (patch) | |
tree | 60d94fc6f0e0825bec14a5f8eb52f2b98d285314 /compiler/optimizing/intrinsics.cc | |
parent | e1e05e0876f303a9f4aca1d8713b7c44f21952b8 (diff) |
Add support to indicate whether intrinsics require a dex cache
A structural change to indicate whether a given intrinsic requires access
to a dex cache. I updated the needs_environment_ field to indicate
whether an HInvoke needs an environment or a dex cache, and if an HInvoke
represents an intrisified method, we utilize this field to determine if
the HInvoke needs a dex cache.
Bug: 21481923
Change-Id: I9dd25a385e1a1397603da6c4c43f6c1aea511b32
Diffstat (limited to 'compiler/optimizing/intrinsics.cc')
-rw-r--r-- | compiler/optimizing/intrinsics.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/compiler/optimizing/intrinsics.cc b/compiler/optimizing/intrinsics.cc index 3db9816173..075ec1ee2e 100644 --- a/compiler/optimizing/intrinsics.cc +++ b/compiler/optimizing/intrinsics.cc @@ -31,7 +31,7 @@ static inline InvokeType GetIntrinsicInvokeType(Intrinsics i) { switch (i) { case Intrinsics::kNone: return kInterface; // Non-sensical for intrinsic. -#define OPTIMIZING_INTRINSICS(Name, IsStatic, NeedsEnvironment) \ +#define OPTIMIZING_INTRINSICS(Name, IsStatic, NeedsEnvironmentOrCache) \ case Intrinsics::k ## Name: \ return IsStatic; #include "intrinsics_list.h" @@ -43,19 +43,19 @@ INTRINSICS_LIST(OPTIMIZING_INTRINSICS) } // Function that returns whether an intrinsic needs an environment or not. -static inline IntrinsicNeedsEnvironment IntrinsicNeedsEnvironment(Intrinsics i) { +static inline IntrinsicNeedsEnvironmentOrCache NeedsEnvironmentOrCache(Intrinsics i) { switch (i) { case Intrinsics::kNone: - return kNeedsEnvironment; // Non-sensical for intrinsic. -#define OPTIMIZING_INTRINSICS(Name, IsStatic, NeedsEnvironment) \ + return kNeedsEnvironmentOrCache; // Non-sensical for intrinsic. +#define OPTIMIZING_INTRINSICS(Name, IsStatic, NeedsEnvironmentOrCache) \ case Intrinsics::k ## Name: \ - return NeedsEnvironment; + return NeedsEnvironmentOrCache; #include "intrinsics_list.h" INTRINSICS_LIST(OPTIMIZING_INTRINSICS) #undef INTRINSICS_LIST #undef OPTIMIZING_INTRINSICS } - return kNeedsEnvironment; + return kNeedsEnvironmentOrCache; } static Primitive::Type GetType(uint64_t data, bool is_op_size) { @@ -376,7 +376,7 @@ void IntrinsicsRecognizer::Run() { << intrinsic << " for " << PrettyMethod(invoke->GetDexMethodIndex(), invoke->GetDexFile()); } else { - invoke->SetIntrinsic(intrinsic, IntrinsicNeedsEnvironment(intrinsic)); + invoke->SetIntrinsic(intrinsic, NeedsEnvironmentOrCache(intrinsic)); } } } @@ -390,7 +390,7 @@ std::ostream& operator<<(std::ostream& os, const Intrinsics& intrinsic) { case Intrinsics::kNone: os << "None"; break; -#define OPTIMIZING_INTRINSICS(Name, IsStatic, NeedsEnvironment) \ +#define OPTIMIZING_INTRINSICS(Name, IsStatic, NeedsEnvironmentOrCache) \ case Intrinsics::k ## Name: \ os << # Name; \ break; |