diff options
| author | 2017-05-24 14:28:32 +0000 | |
|---|---|---|
| committer | 2017-05-24 14:28:34 +0000 | |
| commit | 2e7fb6341e4013ff813a22433cf3d4c1ff82be57 (patch) | |
| tree | a9f0f572394fa0995d5aaec6d21ecedcda3c3d5b | |
| parent | b2a550b565a3d7f87b868e966fb0b2ea842e6700 (diff) | |
| parent | 19d7d50c0ae23f2041b1aee4aa8a5b789e3d2020 (diff) | |
Merge "ARM64: Fix IsAdrpPatch()."
| -rw-r--r-- | compiler/linker/arm64/relative_patcher_arm64.cc | 10 | ||||
| -rw-r--r-- | compiler/optimizing/nodes.cc | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/compiler/linker/arm64/relative_patcher_arm64.cc b/compiler/linker/arm64/relative_patcher_arm64.cc index 6d2b243d07..117684a66b 100644 --- a/compiler/linker/arm64/relative_patcher_arm64.cc +++ b/compiler/linker/arm64/relative_patcher_arm64.cc @@ -54,11 +54,11 @@ constexpr uint32_t kAdrpThunkSize = 8u; inline bool IsAdrpPatch(const LinkerPatch& patch) { switch (patch.GetType()) { - case LinkerPatch::Type::kMethodRelative: case LinkerPatch::Type::kCall: case LinkerPatch::Type::kCallRelative: case LinkerPatch::Type::kBakerReadBarrierBranch: return false; + case LinkerPatch::Type::kMethodRelative: case LinkerPatch::Type::kTypeRelative: case LinkerPatch::Type::kTypeBssEntry: case LinkerPatch::Type::kStringRelative: @@ -567,10 +567,10 @@ bool Arm64RelativePatcher::NeedsErratum843419Thunk(ArrayRef<const uint8_t> code, return false; } - // And since LinkerPatch::Type::kStringRelative is using the result of the ADRP - // for an ADD immediate, check for that as well. We generalize a bit to include - // ADD/ADDS/SUB/SUBS immediate that either uses the ADRP destination or stores - // the result to a different register. + // And since LinkerPatch::Type::k{Method,Type,String}Relative is using the result + // of the ADRP for an ADD immediate, check for that as well. We generalize a bit + // to include ADD/ADDS/SUB/SUBS immediate that either uses the ADRP destination + // or stores the result to a different register. if ((next_insn & 0x1f000000) == 0x11000000 && ((((next_insn >> 5) ^ adrp) & 0x1f) == 0 || ((next_insn ^ adrp) & 0x1f) != 0)) { return false; diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc index bde7f2c1e0..689991010e 100644 --- a/compiler/optimizing/nodes.cc +++ b/compiler/optimizing/nodes.cc @@ -2642,7 +2642,7 @@ std::ostream& operator<<(std::ostream& os, HInvokeStaticOrDirect::MethodLoadKind case HInvokeStaticOrDirect::MethodLoadKind::kBootImageLinkTimePcRelative: return os << "BootImageLinkTimePcRelative"; case HInvokeStaticOrDirect::MethodLoadKind::kDirectAddress: - return os << "Direct"; + return os << "DirectAddress"; case HInvokeStaticOrDirect::MethodLoadKind::kDexCachePcRelative: return os << "DexCachePcRelative"; case HInvokeStaticOrDirect::MethodLoadKind::kDexCacheViaMethod: |