diff options
author | 2020-10-28 15:59:29 +0000 | |
---|---|---|
committer | 2020-10-28 17:42:50 +0000 | |
commit | eeaf47f7c9bbad29afab84a0f199a5751d9c616b (patch) | |
tree | 3b1572bd8c3cd89dbe060b52d1760bd857e999ed | |
parent | 1f3612f93759823d630e117be5216f694e0702e9 (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.cc | 16 | ||||
-rw-r--r-- | compiler/optimizing/common_arm64.h | 14 | ||||
-rw-r--r-- | compiler/optimizing/intrinsics_arm64.cc | 8 | ||||
-rw-r--r-- | compiler/optimizing/nodes_shared.cc | 2 | ||||
-rw-r--r-- | compiler/utils/arm64/assembler_arm64.cc | 3 | ||||
-rw-r--r-- | compiler/utils/arm64/assembler_arm64.h | 8 | ||||
-rw-r--r-- | dex2oat/linker/arm64/relative_patcher_arm64.cc | 1 |
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 { |