Files
sdk/tests/language/vm/uint32_shift_test.dart
T
johnmccutchan@google.com 2ebd74a740 Add Uint32 representation.
- Add new representation: kUnboxedUint32.
- Add BinaryUint32Op, UnaryUint32Op, ShiftUint32Op instructions.
- Add new optimization pass which replaces Mint instructions with Uint32 instructions when possible.
- IA32 completed.
- ARM completed.

R=fschneider@google.com, vegorov@google.com, zra@google.com

Review URL: https://codereview.chromium.org//345563007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38198 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-14 17:01:02 +00:00

27 lines
625 B
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.
// VMOptions=--optimization_counter_threshold=10
import 'package:expect/expect.dart';
class Good {
use(x) { return x & 0x1; }
}
class Bad {
use(x) { return x & 0x100000000; }
}
f(o, x) => o.use(x << 1);
main() {
final good = new Good();
final bad = new Bad();
for (var i = 0; i < 20000; i++) {
Expect.equals(0, f(good, 0x80000000));
}
Expect.equals(0x100000000, f(bad, 0x80000000));
}