blob: 6a8d0437b93013f0f44cbeda2a6cff8422ccf380 [file] [log] [blame]
Ian Rogersb033c752011-07-20 12:22:35 -07001// Copyright 2011 Google Inc. All Rights Reserved.
2
Brian Carlstrom578bbdc2011-07-21 14:07:47 -07003#include "globals.h"
4#include "managed_register_arm.h"
Ian Rogersb033c752011-07-20 12:22:35 -07005#include "gtest/gtest.h"
6
7namespace art {
Ian Rogers2c8f6532011-09-02 17:16:34 -07008namespace arm {
Ian Rogersb033c752011-07-20 12:22:35 -07009
Ian Rogers2c8f6532011-09-02 17:16:34 -070010TEST(ArmManagedRegister, NoRegister) {
11 ArmManagedRegister reg = ManagedRegister::NoRegister().AsArm();
Ian Rogersb033c752011-07-20 12:22:35 -070012 EXPECT_TRUE(reg.IsNoRegister());
13 EXPECT_TRUE(!reg.Overlaps(reg));
14}
15
Ian Rogers2c8f6532011-09-02 17:16:34 -070016TEST(ArmManagedRegister, CoreRegister) {
17 ArmManagedRegister reg = ArmManagedRegister::FromCoreRegister(R0);
Ian Rogersb033c752011-07-20 12:22:35 -070018 EXPECT_TRUE(!reg.IsNoRegister());
19 EXPECT_TRUE(reg.IsCoreRegister());
20 EXPECT_TRUE(!reg.IsSRegister());
21 EXPECT_TRUE(!reg.IsDRegister());
22 EXPECT_TRUE(!reg.IsRegisterPair());
23 EXPECT_EQ(R0, reg.AsCoreRegister());
24
Ian Rogers2c8f6532011-09-02 17:16:34 -070025 reg = ArmManagedRegister::FromCoreRegister(R1);
Ian Rogersb033c752011-07-20 12:22:35 -070026 EXPECT_TRUE(!reg.IsNoRegister());
27 EXPECT_TRUE(reg.IsCoreRegister());
28 EXPECT_TRUE(!reg.IsSRegister());
29 EXPECT_TRUE(!reg.IsDRegister());
30 EXPECT_TRUE(!reg.IsOverlappingDRegister());
31 EXPECT_TRUE(!reg.IsRegisterPair());
32 EXPECT_EQ(R1, reg.AsCoreRegister());
33
Ian Rogers2c8f6532011-09-02 17:16:34 -070034 reg = ArmManagedRegister::FromCoreRegister(R8);
Ian Rogersb033c752011-07-20 12:22:35 -070035 EXPECT_TRUE(!reg.IsNoRegister());
36 EXPECT_TRUE(reg.IsCoreRegister());
37 EXPECT_TRUE(!reg.IsSRegister());
38 EXPECT_TRUE(!reg.IsDRegister());
39 EXPECT_TRUE(!reg.IsOverlappingDRegister());
40 EXPECT_TRUE(!reg.IsRegisterPair());
41 EXPECT_EQ(R8, reg.AsCoreRegister());
42
Ian Rogers2c8f6532011-09-02 17:16:34 -070043 reg = ArmManagedRegister::FromCoreRegister(R15);
Ian Rogersb033c752011-07-20 12:22:35 -070044 EXPECT_TRUE(!reg.IsNoRegister());
45 EXPECT_TRUE(reg.IsCoreRegister());
46 EXPECT_TRUE(!reg.IsSRegister());
47 EXPECT_TRUE(!reg.IsDRegister());
48 EXPECT_TRUE(!reg.IsOverlappingDRegister());
49 EXPECT_TRUE(!reg.IsRegisterPair());
50 EXPECT_EQ(R15, reg.AsCoreRegister());
51}
52
53
Ian Rogers2c8f6532011-09-02 17:16:34 -070054TEST(ArmManagedRegister, SRegister) {
55 ArmManagedRegister reg = ArmManagedRegister::FromSRegister(S0);
Ian Rogersb033c752011-07-20 12:22:35 -070056 EXPECT_TRUE(!reg.IsNoRegister());
57 EXPECT_TRUE(!reg.IsCoreRegister());
58 EXPECT_TRUE(reg.IsSRegister());
59 EXPECT_TRUE(!reg.IsDRegister());
60 EXPECT_TRUE(!reg.IsOverlappingDRegister());
61 EXPECT_TRUE(!reg.IsRegisterPair());
62 EXPECT_EQ(S0, reg.AsSRegister());
63
Ian Rogers2c8f6532011-09-02 17:16:34 -070064 reg = ArmManagedRegister::FromSRegister(S1);
Ian Rogersb033c752011-07-20 12:22:35 -070065 EXPECT_TRUE(!reg.IsNoRegister());
66 EXPECT_TRUE(!reg.IsCoreRegister());
67 EXPECT_TRUE(reg.IsSRegister());
68 EXPECT_TRUE(!reg.IsDRegister());
69 EXPECT_TRUE(!reg.IsOverlappingDRegister());
70 EXPECT_TRUE(!reg.IsRegisterPair());
71 EXPECT_EQ(S1, reg.AsSRegister());
72
Ian Rogers2c8f6532011-09-02 17:16:34 -070073 reg = ArmManagedRegister::FromSRegister(S3);
Ian Rogersb033c752011-07-20 12:22:35 -070074 EXPECT_TRUE(!reg.IsNoRegister());
75 EXPECT_TRUE(!reg.IsCoreRegister());
76 EXPECT_TRUE(reg.IsSRegister());
77 EXPECT_TRUE(!reg.IsDRegister());
78 EXPECT_TRUE(!reg.IsOverlappingDRegister());
79 EXPECT_TRUE(!reg.IsRegisterPair());
80 EXPECT_EQ(S3, reg.AsSRegister());
81
Ian Rogers2c8f6532011-09-02 17:16:34 -070082 reg = ArmManagedRegister::FromSRegister(S15);
Ian Rogersb033c752011-07-20 12:22:35 -070083 EXPECT_TRUE(!reg.IsNoRegister());
84 EXPECT_TRUE(!reg.IsCoreRegister());
85 EXPECT_TRUE(reg.IsSRegister());
86 EXPECT_TRUE(!reg.IsDRegister());
87 EXPECT_TRUE(!reg.IsOverlappingDRegister());
88 EXPECT_TRUE(!reg.IsRegisterPair());
89 EXPECT_EQ(S15, reg.AsSRegister());
90
Ian Rogers2c8f6532011-09-02 17:16:34 -070091 reg = ArmManagedRegister::FromSRegister(S30);
Ian Rogersb033c752011-07-20 12:22:35 -070092 EXPECT_TRUE(!reg.IsNoRegister());
93 EXPECT_TRUE(!reg.IsCoreRegister());
94 EXPECT_TRUE(reg.IsSRegister());
95 EXPECT_TRUE(!reg.IsDRegister());
96 EXPECT_TRUE(!reg.IsOverlappingDRegister());
97 EXPECT_TRUE(!reg.IsRegisterPair());
98 EXPECT_EQ(S30, reg.AsSRegister());
99
Ian Rogers2c8f6532011-09-02 17:16:34 -0700100 reg = ArmManagedRegister::FromSRegister(S31);
Ian Rogersb033c752011-07-20 12:22:35 -0700101 EXPECT_TRUE(!reg.IsNoRegister());
102 EXPECT_TRUE(!reg.IsCoreRegister());
103 EXPECT_TRUE(reg.IsSRegister());
104 EXPECT_TRUE(!reg.IsDRegister());
105 EXPECT_TRUE(!reg.IsOverlappingDRegister());
106 EXPECT_TRUE(!reg.IsRegisterPair());
107 EXPECT_EQ(S31, reg.AsSRegister());
108}
109
110
Ian Rogers2c8f6532011-09-02 17:16:34 -0700111TEST(ArmManagedRegister, DRegister) {
112 ArmManagedRegister reg = ArmManagedRegister::FromDRegister(D0);
Ian Rogersb033c752011-07-20 12:22:35 -0700113 EXPECT_TRUE(!reg.IsNoRegister());
114 EXPECT_TRUE(!reg.IsCoreRegister());
115 EXPECT_TRUE(!reg.IsSRegister());
116 EXPECT_TRUE(reg.IsDRegister());
117 EXPECT_TRUE(reg.IsOverlappingDRegister());
118 EXPECT_TRUE(!reg.IsRegisterPair());
119 EXPECT_EQ(D0, reg.AsDRegister());
120 EXPECT_EQ(S0, reg.AsOverlappingDRegisterLow());
121 EXPECT_EQ(S1, reg.AsOverlappingDRegisterHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700122 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S0)));
Ian Rogersb033c752011-07-20 12:22:35 -0700123
Ian Rogers2c8f6532011-09-02 17:16:34 -0700124 reg = ArmManagedRegister::FromDRegister(D1);
Ian Rogersb033c752011-07-20 12:22:35 -0700125 EXPECT_TRUE(!reg.IsNoRegister());
126 EXPECT_TRUE(!reg.IsCoreRegister());
127 EXPECT_TRUE(!reg.IsSRegister());
128 EXPECT_TRUE(reg.IsDRegister());
129 EXPECT_TRUE(reg.IsOverlappingDRegister());
130 EXPECT_TRUE(!reg.IsRegisterPair());
131 EXPECT_EQ(D1, reg.AsDRegister());
132 EXPECT_EQ(S2, reg.AsOverlappingDRegisterLow());
133 EXPECT_EQ(S3, reg.AsOverlappingDRegisterHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700134 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S2)));
Ian Rogersb033c752011-07-20 12:22:35 -0700135
Ian Rogers2c8f6532011-09-02 17:16:34 -0700136 reg = ArmManagedRegister::FromDRegister(D6);
Ian Rogersb033c752011-07-20 12:22:35 -0700137 EXPECT_TRUE(!reg.IsNoRegister());
138 EXPECT_TRUE(!reg.IsCoreRegister());
139 EXPECT_TRUE(!reg.IsSRegister());
140 EXPECT_TRUE(reg.IsDRegister());
141 EXPECT_TRUE(reg.IsOverlappingDRegister());
142 EXPECT_TRUE(!reg.IsRegisterPair());
143 EXPECT_EQ(D6, reg.AsDRegister());
144 EXPECT_EQ(S12, reg.AsOverlappingDRegisterLow());
145 EXPECT_EQ(S13, reg.AsOverlappingDRegisterHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700146 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S12)));
Ian Rogersb033c752011-07-20 12:22:35 -0700147
Ian Rogers2c8f6532011-09-02 17:16:34 -0700148 reg = ArmManagedRegister::FromDRegister(D14);
Ian Rogersb033c752011-07-20 12:22:35 -0700149 EXPECT_TRUE(!reg.IsNoRegister());
150 EXPECT_TRUE(!reg.IsCoreRegister());
151 EXPECT_TRUE(!reg.IsSRegister());
152 EXPECT_TRUE(reg.IsDRegister());
153 EXPECT_TRUE(reg.IsOverlappingDRegister());
154 EXPECT_TRUE(!reg.IsRegisterPair());
155 EXPECT_EQ(D14, reg.AsDRegister());
156 EXPECT_EQ(S28, reg.AsOverlappingDRegisterLow());
157 EXPECT_EQ(S29, reg.AsOverlappingDRegisterHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700158 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S28)));
Ian Rogersb033c752011-07-20 12:22:35 -0700159
Ian Rogers2c8f6532011-09-02 17:16:34 -0700160 reg = ArmManagedRegister::FromDRegister(D15);
Ian Rogersb033c752011-07-20 12:22:35 -0700161 EXPECT_TRUE(!reg.IsNoRegister());
162 EXPECT_TRUE(!reg.IsCoreRegister());
163 EXPECT_TRUE(!reg.IsSRegister());
164 EXPECT_TRUE(reg.IsDRegister());
165 EXPECT_TRUE(reg.IsOverlappingDRegister());
166 EXPECT_TRUE(!reg.IsRegisterPair());
167 EXPECT_EQ(D15, reg.AsDRegister());
168 EXPECT_EQ(S30, reg.AsOverlappingDRegisterLow());
169 EXPECT_EQ(S31, reg.AsOverlappingDRegisterHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700170 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromSRegisterPair(S30)));
Ian Rogersb033c752011-07-20 12:22:35 -0700171
172#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700173 reg = ArmManagedRegister::FromDRegister(D16);
Ian Rogersb033c752011-07-20 12:22:35 -0700174 EXPECT_TRUE(!reg.IsNoRegister());
175 EXPECT_TRUE(!reg.IsCoreRegister());
176 EXPECT_TRUE(!reg.IsSRegister());
177 EXPECT_TRUE(reg.IsDRegister());
178 EXPECT_TRUE(!reg.IsOverlappingDRegister());
179 EXPECT_TRUE(!reg.IsRegisterPair());
180 EXPECT_EQ(D16, reg.AsDRegister());
181
Ian Rogers2c8f6532011-09-02 17:16:34 -0700182 reg = ArmManagedRegister::FromDRegister(D18);
Ian Rogersb033c752011-07-20 12:22:35 -0700183 EXPECT_TRUE(!reg.IsNoRegister());
184 EXPECT_TRUE(!reg.IsCoreRegister());
185 EXPECT_TRUE(!reg.IsSRegister());
186 EXPECT_TRUE(reg.IsDRegister());
187 EXPECT_TRUE(!reg.IsOverlappingDRegister());
188 EXPECT_TRUE(!reg.IsRegisterPair());
189 EXPECT_EQ(D18, reg.AsDRegister());
190
Ian Rogers2c8f6532011-09-02 17:16:34 -0700191 reg = ArmManagedRegister::FromDRegister(D30);
Ian Rogersb033c752011-07-20 12:22:35 -0700192 EXPECT_TRUE(!reg.IsNoRegister());
193 EXPECT_TRUE(!reg.IsCoreRegister());
194 EXPECT_TRUE(!reg.IsSRegister());
195 EXPECT_TRUE(reg.IsDRegister());
196 EXPECT_TRUE(!reg.IsOverlappingDRegister());
197 EXPECT_TRUE(!reg.IsRegisterPair());
198 EXPECT_EQ(D30, reg.AsDRegister());
199
Ian Rogers2c8f6532011-09-02 17:16:34 -0700200 reg = ArmManagedRegister::FromDRegister(D31);
Ian Rogersb033c752011-07-20 12:22:35 -0700201 EXPECT_TRUE(!reg.IsNoRegister());
202 EXPECT_TRUE(!reg.IsCoreRegister());
203 EXPECT_TRUE(!reg.IsSRegister());
204 EXPECT_TRUE(reg.IsDRegister());
205 EXPECT_TRUE(!reg.IsOverlappingDRegister());
206 EXPECT_TRUE(!reg.IsRegisterPair());
207 EXPECT_EQ(D31, reg.AsDRegister());
208#endif // VFPv3_D32
209}
210
211
Ian Rogers2c8f6532011-09-02 17:16:34 -0700212TEST(ArmManagedRegister, Pair) {
213 ArmManagedRegister reg = ArmManagedRegister::FromRegisterPair(R0_R1);
Ian Rogersb033c752011-07-20 12:22:35 -0700214 EXPECT_TRUE(!reg.IsNoRegister());
215 EXPECT_TRUE(!reg.IsCoreRegister());
216 EXPECT_TRUE(!reg.IsSRegister());
217 EXPECT_TRUE(!reg.IsDRegister());
218 EXPECT_TRUE(!reg.IsOverlappingDRegister());
219 EXPECT_TRUE(reg.IsRegisterPair());
220 EXPECT_EQ(R0_R1, reg.AsRegisterPair());
221 EXPECT_EQ(R0, reg.AsRegisterPairLow());
222 EXPECT_EQ(R1, reg.AsRegisterPairHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700223 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R0)));
Ian Rogersb033c752011-07-20 12:22:35 -0700224
Ian Rogers2c8f6532011-09-02 17:16:34 -0700225 reg = ArmManagedRegister::FromRegisterPair(R1_R2);
Ian Rogers7a99c112011-09-07 12:48:27 -0700226 EXPECT_TRUE(!reg.IsNoRegister());
227 EXPECT_TRUE(!reg.IsCoreRegister());
228 EXPECT_TRUE(!reg.IsSRegister());
229 EXPECT_TRUE(!reg.IsDRegister());
230 EXPECT_TRUE(!reg.IsOverlappingDRegister());
231 EXPECT_TRUE(reg.IsRegisterPair());
232 EXPECT_EQ(R1_R2, reg.AsRegisterPair());
233 EXPECT_EQ(R1, reg.AsRegisterPairLow());
234 EXPECT_EQ(R2, reg.AsRegisterPairHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700235 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R1)));
Ian Rogers7a99c112011-09-07 12:48:27 -0700236
Ian Rogers2c8f6532011-09-02 17:16:34 -0700237 reg = ArmManagedRegister::FromRegisterPair(R2_R3);
Ian Rogersb033c752011-07-20 12:22:35 -0700238 EXPECT_TRUE(!reg.IsNoRegister());
239 EXPECT_TRUE(!reg.IsCoreRegister());
240 EXPECT_TRUE(!reg.IsSRegister());
241 EXPECT_TRUE(!reg.IsDRegister());
242 EXPECT_TRUE(!reg.IsOverlappingDRegister());
243 EXPECT_TRUE(reg.IsRegisterPair());
244 EXPECT_EQ(R2_R3, reg.AsRegisterPair());
245 EXPECT_EQ(R2, reg.AsRegisterPairLow());
246 EXPECT_EQ(R3, reg.AsRegisterPairHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700247 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R2)));
Ian Rogersb033c752011-07-20 12:22:35 -0700248
Ian Rogers2c8f6532011-09-02 17:16:34 -0700249 reg = ArmManagedRegister::FromRegisterPair(R4_R5);
Ian Rogersb033c752011-07-20 12:22:35 -0700250 EXPECT_TRUE(!reg.IsNoRegister());
251 EXPECT_TRUE(!reg.IsCoreRegister());
252 EXPECT_TRUE(!reg.IsSRegister());
253 EXPECT_TRUE(!reg.IsDRegister());
254 EXPECT_TRUE(!reg.IsOverlappingDRegister());
255 EXPECT_TRUE(reg.IsRegisterPair());
256 EXPECT_EQ(R4_R5, reg.AsRegisterPair());
257 EXPECT_EQ(R4, reg.AsRegisterPairLow());
258 EXPECT_EQ(R5, reg.AsRegisterPairHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700259 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R4)));
Ian Rogersb033c752011-07-20 12:22:35 -0700260
Ian Rogers2c8f6532011-09-02 17:16:34 -0700261 reg = ArmManagedRegister::FromRegisterPair(R6_R7);
Ian Rogersb033c752011-07-20 12:22:35 -0700262 EXPECT_TRUE(!reg.IsNoRegister());
263 EXPECT_TRUE(!reg.IsCoreRegister());
264 EXPECT_TRUE(!reg.IsSRegister());
265 EXPECT_TRUE(!reg.IsDRegister());
266 EXPECT_TRUE(!reg.IsOverlappingDRegister());
267 EXPECT_TRUE(reg.IsRegisterPair());
268 EXPECT_EQ(R6_R7, reg.AsRegisterPair());
269 EXPECT_EQ(R6, reg.AsRegisterPairLow());
270 EXPECT_EQ(R7, reg.AsRegisterPairHigh());
Ian Rogers2c8f6532011-09-02 17:16:34 -0700271 EXPECT_TRUE(reg.Equals(ArmManagedRegister::FromCoreRegisterPair(R6)));
Ian Rogersb033c752011-07-20 12:22:35 -0700272}
273
274
Ian Rogers2c8f6532011-09-02 17:16:34 -0700275TEST(ArmManagedRegister, Equals) {
Ian Rogersb033c752011-07-20 12:22:35 -0700276 ManagedRegister no_reg = ManagedRegister::NoRegister();
Ian Rogers2c8f6532011-09-02 17:16:34 -0700277 EXPECT_TRUE(no_reg.Equals(ArmManagedRegister::NoRegister()));
278 EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromCoreRegister(R0)));
279 EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromCoreRegister(R1)));
280 EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromSRegister(S0)));
281 EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromDRegister(D0)));
282 EXPECT_TRUE(!no_reg.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700283
Ian Rogers2c8f6532011-09-02 17:16:34 -0700284 ArmManagedRegister reg_R0 = ArmManagedRegister::FromCoreRegister(R0);
285 EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::NoRegister()));
286 EXPECT_TRUE(reg_R0.Equals(ArmManagedRegister::FromCoreRegister(R0)));
287 EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::FromCoreRegister(R1)));
288 EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::FromSRegister(S0)));
289 EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::FromDRegister(D0)));
290 EXPECT_TRUE(!reg_R0.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700291
Ian Rogers2c8f6532011-09-02 17:16:34 -0700292 ArmManagedRegister reg_R1 = ArmManagedRegister::FromCoreRegister(R1);
293 EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::NoRegister()));
294 EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromCoreRegister(R0)));
295 EXPECT_TRUE(reg_R1.Equals(ArmManagedRegister::FromCoreRegister(R1)));
296 EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromSRegister(S0)));
297 EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromDRegister(D0)));
298 EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromSRegister(S1)));
299 EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromDRegister(D1)));
300 EXPECT_TRUE(!reg_R1.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700301
Ian Rogers2c8f6532011-09-02 17:16:34 -0700302 ArmManagedRegister reg_R8 = ArmManagedRegister::FromCoreRegister(R8);
303 EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::NoRegister()));
304 EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromCoreRegister(R0)));
305 EXPECT_TRUE(reg_R8.Equals(ArmManagedRegister::FromCoreRegister(R8)));
306 EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromSRegister(S0)));
307 EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromDRegister(D0)));
308 EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromSRegister(S1)));
309 EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromDRegister(D1)));
310 EXPECT_TRUE(!reg_R8.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700311
Ian Rogers2c8f6532011-09-02 17:16:34 -0700312 ArmManagedRegister reg_S0 = ArmManagedRegister::FromSRegister(S0);
313 EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::NoRegister()));
314 EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromCoreRegister(R0)));
315 EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromCoreRegister(R1)));
316 EXPECT_TRUE(reg_S0.Equals(ArmManagedRegister::FromSRegister(S0)));
317 EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromSRegister(S1)));
318 EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromDRegister(D0)));
319 EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromDRegister(D1)));
320 EXPECT_TRUE(!reg_S0.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700321
Ian Rogers2c8f6532011-09-02 17:16:34 -0700322 ArmManagedRegister reg_S1 = ArmManagedRegister::FromSRegister(S1);
323 EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::NoRegister()));
324 EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromCoreRegister(R0)));
325 EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromCoreRegister(R1)));
326 EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromSRegister(S0)));
327 EXPECT_TRUE(reg_S1.Equals(ArmManagedRegister::FromSRegister(S1)));
328 EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromDRegister(D0)));
329 EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromDRegister(D1)));
330 EXPECT_TRUE(!reg_S1.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700331
Ian Rogers2c8f6532011-09-02 17:16:34 -0700332 ArmManagedRegister reg_S31 = ArmManagedRegister::FromSRegister(S31);
333 EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::NoRegister()));
334 EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromCoreRegister(R0)));
335 EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromCoreRegister(R1)));
336 EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromSRegister(S0)));
337 EXPECT_TRUE(reg_S31.Equals(ArmManagedRegister::FromSRegister(S31)));
338 EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromDRegister(D0)));
339 EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromDRegister(D1)));
340 EXPECT_TRUE(!reg_S31.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700341
Ian Rogers2c8f6532011-09-02 17:16:34 -0700342 ArmManagedRegister reg_D0 = ArmManagedRegister::FromDRegister(D0);
343 EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::NoRegister()));
344 EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromCoreRegister(R0)));
345 EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromCoreRegister(R1)));
346 EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromSRegister(S0)));
347 EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromSRegister(S31)));
348 EXPECT_TRUE(reg_D0.Equals(ArmManagedRegister::FromDRegister(D0)));
349 EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromDRegister(D1)));
350 EXPECT_TRUE(!reg_D0.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700351
Ian Rogers2c8f6532011-09-02 17:16:34 -0700352 ArmManagedRegister reg_D15 = ArmManagedRegister::FromDRegister(D15);
353 EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::NoRegister()));
354 EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromCoreRegister(R0)));
355 EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromCoreRegister(R1)));
356 EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromSRegister(S0)));
357 EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromSRegister(S31)));
358 EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromDRegister(D0)));
359 EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromDRegister(D1)));
360 EXPECT_TRUE(reg_D15.Equals(ArmManagedRegister::FromDRegister(D15)));
361 EXPECT_TRUE(!reg_D15.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700362
363#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700364 ArmManagedRegister reg_D16 = ArmManagedRegister::FromDRegister(D16);
365 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::NoRegister()));
366 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromCoreRegister(R0)));
367 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromCoreRegister(R1)));
368 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromSRegister(S0)));
369 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromSRegister(S31)));
370 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromDRegister(D0)));
371 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromDRegister(D1)));
372 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromDRegister(D15)));
373 EXPECT_TRUE(reg_D16.Equals(ArmManagedRegister::FromDRegister(D16)));
374 EXPECT_TRUE(!reg_D16.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700375
Ian Rogers2c8f6532011-09-02 17:16:34 -0700376 ArmManagedRegister reg_D30 = ArmManagedRegister::FromDRegister(D30);
377 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::NoRegister()));
378 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromCoreRegister(R0)));
379 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromCoreRegister(R1)));
380 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromSRegister(S0)));
381 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromSRegister(S31)));
382 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromDRegister(D0)));
383 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromDRegister(D1)));
384 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromDRegister(D15)));
385 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromDRegister(D16)));
386 EXPECT_TRUE(reg_D30.Equals(ArmManagedRegister::FromDRegister(D30)));
387 EXPECT_TRUE(!reg_D30.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700388
Ian Rogers2c8f6532011-09-02 17:16:34 -0700389 ArmManagedRegister reg_D31 = ArmManagedRegister::FromDRegister(D30);
390 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::NoRegister()));
391 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromCoreRegister(R0)));
392 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromCoreRegister(R1)));
393 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromSRegister(S0)));
394 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromSRegister(S31)));
395 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D0)));
396 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D1)));
397 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D15)));
398 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D16)));
399 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromDRegister(D30)));
400 EXPECT_TRUE(reg_D31.Equals(ArmManagedRegister::FromDRegister(D31)));
401 EXPECT_TRUE(!reg_D31.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
Ian Rogersb033c752011-07-20 12:22:35 -0700402#endif // VFPv3_D32
403
Ian Rogers2c8f6532011-09-02 17:16:34 -0700404 ArmManagedRegister reg_R0R1 = ArmManagedRegister::FromRegisterPair(R0_R1);
405 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::NoRegister()));
406 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromCoreRegister(R0)));
407 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromCoreRegister(R1)));
408 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromSRegister(S0)));
409 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromSRegister(S31)));
410 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromDRegister(D0)));
411 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromDRegister(D1)));
412 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromDRegister(D15)));
413 EXPECT_TRUE(reg_R0R1.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
414 EXPECT_TRUE(!reg_R0R1.Equals(ArmManagedRegister::FromRegisterPair(R2_R3)));
Ian Rogersb033c752011-07-20 12:22:35 -0700415
Ian Rogers2c8f6532011-09-02 17:16:34 -0700416 ArmManagedRegister reg_R4R5 = ArmManagedRegister::FromRegisterPair(R4_R5);
417 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::NoRegister()));
418 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromCoreRegister(R0)));
419 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromCoreRegister(R1)));
420 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromSRegister(S0)));
421 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromSRegister(S31)));
422 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromDRegister(D0)));
423 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromDRegister(D1)));
424 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromDRegister(D15)));
425 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
426 EXPECT_TRUE(reg_R4R5.Equals(ArmManagedRegister::FromRegisterPair(R4_R5)));
427 EXPECT_TRUE(!reg_R4R5.Equals(ArmManagedRegister::FromRegisterPair(R6_R7)));
Ian Rogersb033c752011-07-20 12:22:35 -0700428
Ian Rogers2c8f6532011-09-02 17:16:34 -0700429 ArmManagedRegister reg_R6R7 = ArmManagedRegister::FromRegisterPair(R6_R7);
430 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::NoRegister()));
431 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromCoreRegister(R0)));
432 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromCoreRegister(R1)));
433 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromSRegister(S0)));
434 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromSRegister(S31)));
435 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromDRegister(D0)));
436 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromDRegister(D1)));
437 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromDRegister(D15)));
438 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromRegisterPair(R0_R1)));
439 EXPECT_TRUE(!reg_R6R7.Equals(ArmManagedRegister::FromRegisterPair(R4_R5)));
440 EXPECT_TRUE(reg_R6R7.Equals(ArmManagedRegister::FromRegisterPair(R6_R7)));
Ian Rogersb033c752011-07-20 12:22:35 -0700441}
442
443
Ian Rogers2c8f6532011-09-02 17:16:34 -0700444TEST(ArmManagedRegister, Overlaps) {
445 ArmManagedRegister reg = ArmManagedRegister::FromCoreRegister(R0);
446 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
447 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
448 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
449 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
450 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
451 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
452 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
453 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
454 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
455 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
456 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
457 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
458 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
459 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700460#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700461 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
462 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700463#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700464 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
465 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700466
Ian Rogers2c8f6532011-09-02 17:16:34 -0700467 reg = ArmManagedRegister::FromCoreRegister(R1);
468 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
469 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
470 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
471 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
472 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
473 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
474 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
475 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
476 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
477 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
478 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
479 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
480 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
481 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700482#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700483 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
484 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700485#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700486 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
487 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700488
Ian Rogers2c8f6532011-09-02 17:16:34 -0700489 reg = ArmManagedRegister::FromCoreRegister(R7);
490 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
491 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
492 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
493 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
494 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
495 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
496 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
497 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
498 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
499 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
500 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
501 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
502 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
503 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700504#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700505 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
506 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700507#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700508 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
509 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700510
Ian Rogers2c8f6532011-09-02 17:16:34 -0700511 reg = ArmManagedRegister::FromSRegister(S0);
512 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
513 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
514 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
515 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
516 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
517 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
518 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
519 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
520 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
521 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
522 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
523 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
524 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
525 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700526#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700527 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
528 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700529#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700530 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
531 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700532
Ian Rogers2c8f6532011-09-02 17:16:34 -0700533 reg = ArmManagedRegister::FromSRegister(S1);
534 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
535 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
536 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
537 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
538 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
539 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
540 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
541 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
542 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
543 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
544 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
545 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
546 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
547 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700548#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700549 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
550 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700551#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700552 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
553 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700554
Ian Rogers2c8f6532011-09-02 17:16:34 -0700555 reg = ArmManagedRegister::FromSRegister(S15);
556 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
557 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
558 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
559 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
560 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
561 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
562 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
563 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
564 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
565 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
566 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
567 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
568 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
569 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700570#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700571 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
572 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700573#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700574 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
575 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700576
Ian Rogers2c8f6532011-09-02 17:16:34 -0700577 reg = ArmManagedRegister::FromSRegister(S31);
578 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
579 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
580 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
581 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
582 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
583 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
584 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
585 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
586 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
587 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
588 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
589 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
590 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
591 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700592#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700593 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
594 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700595#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700596 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
597 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700598
Ian Rogers2c8f6532011-09-02 17:16:34 -0700599 reg = ArmManagedRegister::FromDRegister(D0);
600 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
601 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
602 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
603 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
604 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
605 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
606 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
607 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
608 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
609 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
610 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
611 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
612 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
613 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700614#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700615 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
616 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700617#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700618 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
619 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700620
Ian Rogers2c8f6532011-09-02 17:16:34 -0700621 reg = ArmManagedRegister::FromDRegister(D7);
622 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
623 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
624 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
625 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
626 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
627 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
628 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
629 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
630 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
631 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
632 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
633 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
634 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
635 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700636#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700637 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
638 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700639#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700640 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
641 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700642
Ian Rogers2c8f6532011-09-02 17:16:34 -0700643 reg = ArmManagedRegister::FromDRegister(D15);
644 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
645 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
646 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
647 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
648 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
649 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
650 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
651 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
652 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
653 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
654 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
655 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
656 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
657 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700658#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700659 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
660 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700661#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700662 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
663 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700664
665#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700666 reg = ArmManagedRegister::FromDRegister(D16);
667 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
668 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
669 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
670 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
671 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
672 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
673 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
674 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
675 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
676 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
677 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
678 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
679 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
680 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
681 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
682 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
683 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
684 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700685
Ian Rogers2c8f6532011-09-02 17:16:34 -0700686 reg = ArmManagedRegister::FromDRegister(D31);
687 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
688 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
689 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
690 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
691 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
692 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
693 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
694 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
695 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
696 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
697 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
698 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
699 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
700 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
701 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
702 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
703 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
704 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700705#endif // VFPv3_D32
706
Ian Rogers2c8f6532011-09-02 17:16:34 -0700707 reg = ArmManagedRegister::FromRegisterPair(R0_R1);
708 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
709 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
710 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
711 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
712 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
713 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
714 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
715 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
716 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
717 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
718 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
719 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
720 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
721 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700722#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700723 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
724 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700725#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700726 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
727 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700728
Ian Rogers2c8f6532011-09-02 17:16:34 -0700729 reg = ArmManagedRegister::FromRegisterPair(R4_R5);
730 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R0)));
731 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R1)));
732 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R7)));
733 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromCoreRegister(R8)));
734 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S0)));
735 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S1)));
736 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S2)));
737 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S15)));
738 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S30)));
739 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromSRegister(S31)));
740 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D0)));
741 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D1)));
742 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D7)));
743 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D15)));
Ian Rogersb033c752011-07-20 12:22:35 -0700744#ifdef VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700745 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D16)));
746 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromDRegister(D31)));
Ian Rogersb033c752011-07-20 12:22:35 -0700747#endif // VFPv3_D32
Ian Rogers2c8f6532011-09-02 17:16:34 -0700748 EXPECT_TRUE(!reg.Overlaps(ArmManagedRegister::FromRegisterPair(R0_R1)));
749 EXPECT_TRUE(reg.Overlaps(ArmManagedRegister::FromRegisterPair(R4_R5)));
Ian Rogersb033c752011-07-20 12:22:35 -0700750}
751
Ian Rogers2c8f6532011-09-02 17:16:34 -0700752} // namespace arm
Ian Rogersb033c752011-07-20 12:22:35 -0700753} // namespace art