summaryrefslogtreecommitdiffstats
path: root/runtime/oat/utils/arm/managed_register_arm_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/oat/utils/arm/managed_register_arm_test.cc')
-rw-r--r--runtime/oat/utils/arm/managed_register_arm_test.cc767
1 files changed, 0 insertions, 767 deletions
diff --git a/runtime/oat/utils/arm/managed_register_arm_test.cc b/runtime/oat/utils/arm/managed_register_arm_test.cc
deleted file mode 100644
index f5d4cc0..0000000
--- a/runtime/oat/utils/arm/managed_register_arm_test.cc
+++ /dev/null
@@ -1,767 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "globals.h"
-#include "managed_register_arm.h"
-#include "gtest/gtest.h"
-
-namespace art {
-namespace arm {
-
-TEST(ArmManagedRegister, NoRegister) {
- ArmManagedRegister reg = ManagedRegister::NoRegister().AsArm();
- EXPECT_TRUE(reg.IsNoRegister());
- EXPECT_TRUE(!reg.Overlaps(reg));
-}
-
-TEST(ArmManagedRegister, CoreRegister) {
- ArmManagedRegister reg = ArmManagedRegister::FromCoreRegister(R0);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(R0, reg.AsCoreRegister());
-
- reg = ArmManagedRegister::FromCoreRegister(R1);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(R1, reg.AsCoreRegister());
-
- reg = ArmManagedRegister::FromCoreRegister(R8);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(R8, reg.AsCoreRegister());
-
- reg = ArmManagedRegister::FromCoreRegister(R15);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(R15, reg.AsCoreRegister());
-}
-
-
-TEST(ArmManagedRegister, SRegister) {
- ArmManagedRegister reg = ArmManagedRegister::FromSRegister(S0);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(S0, reg.AsSRegister());
-
- reg = ArmManagedRegister::FromSRegister(S1);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(S1, reg.AsSRegister());
-
- reg = ArmManagedRegister::FromSRegister(S3);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(S3, reg.AsSRegister());
-
- reg = ArmManagedRegister::FromSRegister(S15);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(S15, reg.AsSRegister());
-
- reg = ArmManagedRegister::FromSRegister(S30);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(S30, reg.AsSRegister());
-
- reg = ArmManagedRegister::FromSRegister(S31);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(S31, reg.AsSRegister());
-}
-
-
-TEST(ArmManagedRegister, DRegister) {
- ArmManagedRegister reg = ArmManagedRegister::FromDRegister(D0);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D0, reg.AsDRegister());
- EXPECT_EQ(S0, reg.AsOverlappingDRegisterLow());
- EXPECT_EQ(S1, reg.AsOverlappingDRegisterHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S0)));
-
- reg = ArmManagedRegister::FromDRegister(D1);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D1, reg.AsDRegister());
- EXPECT_EQ(S2, reg.AsOverlappingDRegisterLow());
- EXPECT_EQ(S3, reg.AsOverlappingDRegisterHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S2)));
-
- reg = ArmManagedRegister::FromDRegister(D6);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D6, reg.AsDRegister());
- EXPECT_EQ(S12, reg.AsOverlappingDRegisterLow());
- EXPECT_EQ(S13, reg.AsOverlappingDRegisterHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S12)));
-
- reg = ArmManagedRegister::FromDRegister(D14);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D14, reg.AsDRegister());
- EXPECT_EQ(S28, reg.AsOverlappingDRegisterLow());
- EXPECT_EQ(S29, reg.AsOverlappingDRegisterHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S28)));
-
- reg = ArmManagedRegister::FromDRegister(D15);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D15, reg.AsDRegister());
- EXPECT_EQ(S30, reg.AsOverlappingDRegisterLow());
- EXPECT_EQ(S31, reg.AsOverlappingDRegisterHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S30)));
-
-#ifdef VFPv3_D32
- reg = ArmManagedRegister::FromDRegister(D16);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D16, reg.AsDRegister());
-
- reg = ArmManagedRegister::FromDRegister(D18);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D18, reg.AsDRegister());
-
- reg = ArmManagedRegister::FromDRegister(D30);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D30, reg.AsDRegister());
-
- reg = ArmManagedRegister::FromDRegister(D31);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(!reg.IsRegisterPair());
- EXPECT_EQ(D31, reg.AsDRegister());
-#endif // VFPv3_D32
-}
-
-
-TEST(ArmManagedRegister, Pair) {
- ArmManagedRegister reg = ArmManagedRegister::FromRegisterPair(R0_R1);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(reg.IsRegisterPair());
- EXPECT_EQ(R0_R1, reg.AsRegisterPair());
- EXPECT_EQ(R0, reg.AsRegisterPairLow());
- EXPECT_EQ(R1, reg.AsRegisterPairHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R0)));
-
- reg = ArmManagedRegister::FromRegisterPair(R1_R2);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(reg.IsRegisterPair());
- EXPECT_EQ(R1_R2, reg.AsRegisterPair());
- EXPECT_EQ(R1, reg.AsRegisterPairLow());
- EXPECT_EQ(R2, reg.AsRegisterPairHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R1)));
-
- reg = ArmManagedRegister::FromRegisterPair(R2_R3);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(reg.IsRegisterPair());
- EXPECT_EQ(R2_R3, reg.AsRegisterPair());
- EXPECT_EQ(R2, reg.AsRegisterPairLow());
- EXPECT_EQ(R3, reg.AsRegisterPairHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R2)));
-
- reg = ArmManagedRegister::FromRegisterPair(R4_R5);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(reg.IsRegisterPair());
- EXPECT_EQ(R4_R5, reg.AsRegisterPair());
- EXPECT_EQ(R4, reg.AsRegisterPairLow());
- EXPECT_EQ(R5, reg.AsRegisterPairHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R4)));
-
- reg = ArmManagedRegister::FromRegisterPair(R6_R7);
- EXPECT_TRUE(!reg.IsNoRegister());
- EXPECT_TRUE(!reg.IsCoreRegister());
- EXPECT_TRUE(!reg.IsSRegister());
- EXPECT_TRUE(!reg.IsDRegister());
- EXPECT_TRUE(!reg.IsOverlappingDRegister());
- EXPECT_TRUE(reg.IsRegisterPair());
- EXPECT_EQ(R6_R7, reg.AsRegisterPair());
- EXPECT_EQ(R6, reg.AsRegisterPairLow());
- EXPECT_EQ(R7, reg.AsRegisterPairHigh());
- EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R6)));
-}
-
-
-TEST(ArmManagedRegister, Equals) {
- ManagedRegister no_reg = ManagedRegister::NoRegister();
- EXPECT_TRUE(no_reg.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_R0 = ArmManagedRegister::FromCoreRegister(R0);
- EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(reg_R0.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_R1 = ArmManagedRegister::FromCoreRegister(R1);
- EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(reg_R1.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_R8 = ArmManagedRegister::FromCoreRegister(R8);
- EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(reg_R8.Equals(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_S0 = ArmManagedRegister::FromSRegister(S0);
- EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(reg_S0.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_S1 = ArmManagedRegister::FromSRegister(S1);
- EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(reg_S1.Equals(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_S31 = ArmManagedRegister::FromSRegister(S31);
- EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(reg_S31.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_D0 = ArmManagedRegister::FromDRegister(D0);
- EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(reg_D0.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_D15 = ArmManagedRegister::FromDRegister(D15);
- EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(reg_D15.Equals(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
-#ifdef VFPv3_D32
- ArmManagedRegister reg_D16 = ArmManagedRegister::FromDRegister(D16);
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(reg_D16.Equals(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_D30 = ArmManagedRegister::FromDRegister(D30);
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(reg_D30.Equals(ArmManagedRegister::FromDRegister(D30)));
- EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-
- ArmManagedRegister reg_D31 = ArmManagedRegister::FromDRegister(D30);
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D30)));
- EXPECT_TRUE(reg_D31.Equals(ArmManagedRegister::FromDRegister(D31)));
- EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
-#endif // VFPv3_D32
-
- ArmManagedRegister reg_R0R1 = ArmManagedRegister::FromRegisterPair(R0_R1);
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(reg_R0R1.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromRegisterPair(R2_R3)));
-
- ArmManagedRegister reg_R4R5 = ArmManagedRegister::FromRegisterPair(R4_R5);
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(reg_R4R5.Equals(ArmManagedRegister::FromRegisterPair(R4_R5)));
- EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromRegisterPair(R6_R7)));
-
- ArmManagedRegister reg_R6R7 = ArmManagedRegister::FromRegisterPair(R6_R7);
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::NoRegister()));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromRegisterPair(R4_R5)));
- EXPECT_TRUE(reg_R6R7.Equals(ArmManagedRegister::FromRegisterPair(R6_R7)));
-}
-
-
-TEST(ArmManagedRegister, Overlaps) {
- ArmManagedRegister reg = ArmManagedRegister::FromCoreRegister(R0);
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromCoreRegister(R1);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromCoreRegister(R7);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromSRegister(S0);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromSRegister(S1);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromSRegister(S15);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromSRegister(S31);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromDRegister(D0);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromDRegister(D7);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromDRegister(D15);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
-#ifdef VFPv3_D32
- reg = ArmManagedRegister::FromDRegister(D16);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromDRegister(D31);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-#endif // VFPv3_D32
-
- reg = ArmManagedRegister::FromRegisterPair(R0_R1);
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-
- reg = ArmManagedRegister::FromRegisterPair(R4_R5);
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
-#ifdef VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
-#endif // VFPv3_D32
- EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
- EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
-}
-
-} // namespace arm
-} // namespace art