Merge master into oc-dev
Vixl dependencies discovered during merge for ART.
Fixes for O release, including CC code size issue, JVMTI, ART
vectorization, the borg scanner, secondary dex files, and others.
Bug: 29516974
Bug: 30126666
Bug: 36141117
Bug: 30773047
Bug: 30933338
Test: make -j 40 test-art-host; art/test.py -j 8 --target
Change-Id: I817eaa7b76f30f39a1d67995b6bbae14decf092b
diff --git a/src/aarch64/macro-assembler-aarch64.cc b/src/aarch64/macro-assembler-aarch64.cc
index 9973e2e..7316887 100644
--- a/src/aarch64/macro-assembler-aarch64.cc
+++ b/src/aarch64/macro-assembler-aarch64.cc
@@ -2697,7 +2697,7 @@
VIXL_ASSERT(masm_ != NULL);
if (reg.IsRegister()) {
ReleaseByCode(masm_->GetScratchRegisterList(), reg.GetCode());
- } else if (reg.IsFPRegister()) {
+ } else if (reg.IsVRegister()) {
ReleaseByCode(masm_->GetScratchFPRegisterList(), reg.GetCode());
} else {
VIXL_ASSERT(reg.IsNone());
diff --git a/test/aarch64/test-assembler-aarch64.cc b/test/aarch64/test-assembler-aarch64.cc
index 50e7800..2d618e9 100644
--- a/test/aarch64/test-assembler-aarch64.cc
+++ b/test/aarch64/test-assembler-aarch64.cc
@@ -23276,6 +23276,25 @@
masm.FinalizeCode();
}
+TEST(scratch_scope_basic_v) {
+ MacroAssembler masm;
+
+ {
+ UseScratchRegisterScope temps(&masm);
+ VRegister temp = temps.AcquireVRegisterOfSize(kQRegSize);
+ VIXL_CHECK(temp.Aliases(v31));
+ }
+ {
+ UseScratchRegisterScope temps(&masm);
+ VRegister temp = temps.AcquireVRegisterOfSize(kDRegSize);
+ VIXL_CHECK(temp.Aliases(v31));
+ }
+ {
+ UseScratchRegisterScope temps(&masm);
+ VRegister temp = temps.AcquireVRegisterOfSize(kSRegSize);
+ VIXL_CHECK(temp.Aliases(v31));
+ }
+}
TEST(static_register_types) {
SETUP();