summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ulyana Trafimovich <skvadrik@google.com> 2020-10-28 15:59:29 +0000
committer Treehugger Robot <treehugger-gerrit@google.com> 2020-10-28 17:42:50 +0000
commiteeaf47f7c9bbad29afab84a0f199a5751d9c616b (patch)
tree3b1572bd8c3cd89dbe060b52d1760bd857e999ed
parent1f3612f93759823d630e117be5216f694e0702e9 (diff)
Revert "ART: Fix breaking changes from recent VIXL update."
Revert submission 1331125-VIXL_UPDATE_SVE Reason for revert: broken build git_master-art-host/art-gtest-heap-poisoning @ 6936943 Reverted Changes: Ic10af84a0:Merge remote-tracking branch 'aosp/upstream-master... I752a0b0ba:ART: Fix breaking changes from recent VIXL update.... Bug: 171879890 Change-Id: Idb0d5c2e88948d799a4ef2c828be2828ea2270ea
-rw-r--r--compiler/optimizing/code_generator_arm64.cc16
-rw-r--r--compiler/optimizing/common_arm64.h14
-rw-r--r--compiler/optimizing/intrinsics_arm64.cc8
-rw-r--r--compiler/optimizing/nodes_shared.cc2
-rw-r--r--compiler/utils/arm64/assembler_arm64.cc3
-rw-r--r--compiler/utils/arm64/assembler_arm64.h8
-rw-r--r--dex2oat/linker/arm64/relative_patcher_arm64.cc1
7 files changed, 25 insertions, 27 deletions
diff --git a/compiler/optimizing/code_generator_arm64.cc b/compiler/optimizing/code_generator_arm64.cc
index 6cfe67b3ed..5920a48586 100644
--- a/compiler/optimizing/code_generator_arm64.cc
+++ b/compiler/optimizing/code_generator_arm64.cc
@@ -6901,11 +6901,11 @@ void CodeGeneratorARM64::CompileBakerReadBarrierThunk(Arm64Assembler& assembler,
switch (kind) {
case BakerReadBarrierKind::kField:
case BakerReadBarrierKind::kAcquire: {
- Register base_reg =
- vixl::aarch64::XRegister(BakerReadBarrierFirstRegField::Decode(encoded_data));
+ auto base_reg =
+ Register::GetXRegFromCode(BakerReadBarrierFirstRegField::Decode(encoded_data));
CheckValidReg(base_reg.GetCode());
- Register holder_reg =
- vixl::aarch64::XRegister(BakerReadBarrierSecondRegField::Decode(encoded_data));
+ auto holder_reg =
+ Register::GetXRegFromCode(BakerReadBarrierSecondRegField::Decode(encoded_data));
CheckValidReg(holder_reg.GetCode());
UseScratchRegisterScope temps(assembler.GetVIXLAssembler());
temps.Exclude(ip0, ip1);
@@ -6951,8 +6951,8 @@ void CodeGeneratorARM64::CompileBakerReadBarrierThunk(Arm64Assembler& assembler,
break;
}
case BakerReadBarrierKind::kArray: {
- Register base_reg =
- vixl::aarch64::XRegister(BakerReadBarrierFirstRegField::Decode(encoded_data));
+ auto base_reg =
+ Register::GetXRegFromCode(BakerReadBarrierFirstRegField::Decode(encoded_data));
CheckValidReg(base_reg.GetCode());
DCHECK_EQ(kBakerReadBarrierInvalidEncodedReg,
BakerReadBarrierSecondRegField::Decode(encoded_data));
@@ -6980,8 +6980,8 @@ void CodeGeneratorARM64::CompileBakerReadBarrierThunk(Arm64Assembler& assembler,
// and it does not have a forwarding address), call the correct introspection entrypoint;
// otherwise return the reference (or the extracted forwarding address).
// There is no gray bit check for GC roots.
- Register root_reg =
- vixl::aarch64::WRegister(BakerReadBarrierFirstRegField::Decode(encoded_data));
+ auto root_reg =
+ Register::GetWRegFromCode(BakerReadBarrierFirstRegField::Decode(encoded_data));
CheckValidReg(root_reg.GetCode());
DCHECK_EQ(kBakerReadBarrierInvalidEncodedReg,
BakerReadBarrierSecondRegField::Decode(encoded_data));
diff --git a/compiler/optimizing/common_arm64.h b/compiler/optimizing/common_arm64.h
index d652492c24..41f284fad2 100644
--- a/compiler/optimizing/common_arm64.h
+++ b/compiler/optimizing/common_arm64.h
@@ -65,12 +65,12 @@ inline int ARTRegCodeFromVIXL(int code) {
inline vixl::aarch64::Register XRegisterFrom(Location location) {
DCHECK(location.IsRegister()) << location;
- return vixl::aarch64::XRegister(VIXLRegCodeFromART(location.reg()));
+ return vixl::aarch64::Register::GetXRegFromCode(VIXLRegCodeFromART(location.reg()));
}
inline vixl::aarch64::Register WRegisterFrom(Location location) {
DCHECK(location.IsRegister()) << location;
- return vixl::aarch64::WRegister(VIXLRegCodeFromART(location.reg()));
+ return vixl::aarch64::Register::GetWRegFromCode(VIXLRegCodeFromART(location.reg()));
}
inline vixl::aarch64::Register RegisterFrom(Location location, DataType::Type type) {
@@ -89,27 +89,27 @@ inline vixl::aarch64::Register InputRegisterAt(HInstruction* instr, int input_in
inline vixl::aarch64::VRegister DRegisterFrom(Location location) {
DCHECK(location.IsFpuRegister()) << location;
- return vixl::aarch64::DRegister(location.reg());
+ return vixl::aarch64::VRegister::GetDRegFromCode(location.reg());
}
inline vixl::aarch64::VRegister QRegisterFrom(Location location) {
DCHECK(location.IsFpuRegister()) << location;
- return vixl::aarch64::QRegister(location.reg());
+ return vixl::aarch64::VRegister::GetQRegFromCode(location.reg());
}
inline vixl::aarch64::VRegister VRegisterFrom(Location location) {
DCHECK(location.IsFpuRegister()) << location;
- return vixl::aarch64::VRegister(location.reg());
+ return vixl::aarch64::VRegister::GetVRegFromCode(location.reg());
}
inline vixl::aarch64::VRegister SRegisterFrom(Location location) {
DCHECK(location.IsFpuRegister()) << location;
- return vixl::aarch64::SRegister(location.reg());
+ return vixl::aarch64::VRegister::GetSRegFromCode(location.reg());
}
inline vixl::aarch64::VRegister HRegisterFrom(Location location) {
DCHECK(location.IsFpuRegister()) << location;
- return vixl::aarch64::HRegister(location.reg());
+ return vixl::aarch64::VRegister::GetHRegFromCode(location.reg());
}
inline vixl::aarch64::VRegister FPRegisterFrom(Location location, DataType::Type type) {
diff --git a/compiler/optimizing/intrinsics_arm64.cc b/compiler/optimizing/intrinsics_arm64.cc
index 4b31ac8e02..c38f5d6748 100644
--- a/compiler/optimizing/intrinsics_arm64.cc
+++ b/compiler/optimizing/intrinsics_arm64.cc
@@ -2768,16 +2768,16 @@ void IntrinsicCodeGeneratorARM64::VisitSystemArrayCopy(HInvoke* invoke) {
static void GenIsInfinite(LocationSummary* locations,
bool is64bit,
MacroAssembler* masm) {
- Operand infinity(0);
- Operand tst_mask(0);
+ Operand infinity;
+ Operand tst_mask;
Register out;
if (is64bit) {
- infinity = Operand(kPositiveInfinityDouble);
+ infinity = kPositiveInfinityDouble;
tst_mask = MaskLeastSignificant<uint64_t>(63);
out = XRegisterFrom(locations->Out());
} else {
- infinity = Operand(kPositiveInfinityFloat);
+ infinity = kPositiveInfinityFloat;
tst_mask = MaskLeastSignificant<uint32_t>(31);
out = WRegisterFrom(locations->Out());
}
diff --git a/compiler/optimizing/nodes_shared.cc b/compiler/optimizing/nodes_shared.cc
index eca97d7a70..2f971b93a6 100644
--- a/compiler/optimizing/nodes_shared.cc
+++ b/compiler/optimizing/nodes_shared.cc
@@ -21,7 +21,7 @@
#include "nodes_shared.h"
-#include "instruction_simplifier_shared.h"
+#include "common_arm64.h"
namespace art {
diff --git a/compiler/utils/arm64/assembler_arm64.cc b/compiler/utils/arm64/assembler_arm64.cc
index 7ab767f4fe..d722e00646 100644
--- a/compiler/utils/arm64/assembler_arm64.cc
+++ b/compiler/utils/arm64/assembler_arm64.cc
@@ -54,9 +54,6 @@ static void SetVIXLCPUFeaturesFromART(vixl::aarch64::MacroAssembler* vixl_masm_,
if (art_features->HasLSE()) {
features->Combine(vixl::CPUFeatures::kAtomics);
}
- if (art_features->HasSVE()) {
- features->Combine(vixl::CPUFeatures::kSVE);
- }
}
Arm64Assembler::Arm64Assembler(ArenaAllocator* allocator,
diff --git a/compiler/utils/arm64/assembler_arm64.h b/compiler/utils/arm64/assembler_arm64.h
index 5442b6a980..232efd4917 100644
--- a/compiler/utils/arm64/assembler_arm64.h
+++ b/compiler/utils/arm64/assembler_arm64.h
@@ -144,7 +144,7 @@ class Arm64Assembler final : public Assembler {
} else if (code == XZR) {
return vixl::aarch64::xzr;
}
- return vixl::aarch64::XRegister(code);
+ return vixl::aarch64::Register::GetXRegFromCode(code);
}
static vixl::aarch64::Register reg_w(int code) {
@@ -154,15 +154,15 @@ class Arm64Assembler final : public Assembler {
} else if (code == WZR) {
return vixl::aarch64::wzr;
}
- return vixl::aarch64::WRegister(code);
+ return vixl::aarch64::Register::GetWRegFromCode(code);
}
static vixl::aarch64::VRegister reg_d(int code) {
- return vixl::aarch64::DRegister(code);
+ return vixl::aarch64::VRegister::GetDRegFromCode(code);
}
static vixl::aarch64::VRegister reg_s(int code) {
- return vixl::aarch64::SRegister(code);
+ return vixl::aarch64::VRegister::GetSRegFromCode(code);
}
private:
diff --git a/dex2oat/linker/arm64/relative_patcher_arm64.cc b/dex2oat/linker/arm64/relative_patcher_arm64.cc
index 4028f758b9..4a73b83317 100644
--- a/dex2oat/linker/arm64/relative_patcher_arm64.cc
+++ b/dex2oat/linker/arm64/relative_patcher_arm64.cc
@@ -33,6 +33,7 @@
#include "oat_quick_method_header.h"
#include "read_barrier.h"
#include "stream/output_stream.h"
+#include "utils/arm64/assembler_arm64.h"
namespace art {
namespace linker {