OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // Test that pair locations are remaped in slow path environments. | 4 // Test that pair locations are remaped in slow path environments. |
5 // VMOptions=--optimization_counter_threshold=10 --no-use-osr | 5 // VMOptions=--optimization_counter_threshold=10 --no-use-osr --no-background_co
mpilation |
6 | 6 |
7 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
8 | 8 |
9 class A { | 9 class A { |
10 final f; | 10 final f; |
11 A(this.f); | 11 A(this.f); |
12 } | 12 } |
13 | 13 |
14 foo(i) { | 14 foo(i) { |
15 var j = 0x7fffffffffffffff + i; | 15 var j = 0x7fffffffffffffff + i; |
16 var c = new A(j); // allocation will be sunk | 16 var c = new A(j); // allocation will be sunk |
17 var r = 0; | 17 var r = 0; |
18 for (var k = 0; k < 10; k++) { | 18 for (var k = 0; k < 10; k++) { |
19 if ((j & (1 << k)) != 0) { | 19 if ((j & (1 << k)) != 0) { |
20 r++; | 20 r++; |
21 } | 21 } |
22 } | 22 } |
23 return c.f - r; | 23 return c.f - r; |
24 } | 24 } |
25 | 25 |
26 main() { | 26 main() { |
27 for (var i = 0; i < 1000; i++) { | 27 for (var i = 0; i < 1000; i++) { |
28 Expect.equals(0x7fffffffffffffff - 10, foo(0)); | 28 Expect.equals(0x7fffffffffffffff - 10, foo(0)); |
29 } | 29 } |
30 } | 30 } |
OLD | NEW |