038c281a47
Quite a few changes were made to method_override* tests. Bug: Change-Id: I554c83ae766010b55f17a86caee9418d0c34cbe7 Reviewed-on: https://dart-review.googlesource.com/7683 Commit-Queue: Ben Konyi <bkonyi@google.com> Reviewed-by: Bob Nystrom <rnystrom@google.com>
91 lines
1.6 KiB
Dart
91 lines
1.6 KiB
Dart
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
// Test that the ParalleMoveResolver in the VM uses valid registers
|
|
// when requiring scratch registers.
|
|
|
|
main() {
|
|
// Iterate enough to ensure optimizing `spillingMethod`.
|
|
for (int i = 0; i < 100000; i++) {
|
|
spillingMethod(i, () => 0);
|
|
}
|
|
}
|
|
|
|
spillingMethod(what, obfuscate) {
|
|
// Define lots of variables to get a few in stack.
|
|
var a = obfuscate();
|
|
var b = obfuscate();
|
|
var c = obfuscate();
|
|
var d = obfuscate();
|
|
var e = obfuscate();
|
|
var f = obfuscate();
|
|
var g = obfuscate();
|
|
var h = obfuscate();
|
|
var i = obfuscate();
|
|
var j = obfuscate();
|
|
var k = obfuscate();
|
|
var l = obfuscate();
|
|
var m = obfuscate();
|
|
var n = obfuscate();
|
|
var o = obfuscate();
|
|
var p = obfuscate();
|
|
var q = obfuscate();
|
|
var r = obfuscate();
|
|
var s = obfuscate();
|
|
var t = obfuscate();
|
|
var u = obfuscate();
|
|
var v = obfuscate();
|
|
|
|
// Swap all variables, in the hope of a memory <-> memory swap operation.
|
|
while (what == 42) {
|
|
a = b;
|
|
b = a;
|
|
c = d;
|
|
d = c;
|
|
e = f;
|
|
f = e;
|
|
g = h;
|
|
h = g;
|
|
i = j;
|
|
j = i;
|
|
k = l;
|
|
l = k;
|
|
m = n;
|
|
n = m;
|
|
o = p;
|
|
p = o;
|
|
q = r;
|
|
r = q;
|
|
s = t;
|
|
t = s;
|
|
u = v;
|
|
v = u;
|
|
what++;
|
|
}
|
|
|
|
// Keep all variables alive.
|
|
return a +
|
|
b +
|
|
c +
|
|
d +
|
|
e +
|
|
f +
|
|
g +
|
|
h +
|
|
i +
|
|
j +
|
|
k +
|
|
l +
|
|
m +
|
|
n +
|
|
o +
|
|
p +
|
|
q +
|
|
r +
|
|
s +
|
|
t +
|
|
u +
|
|
v;
|
|
}
|