Tess Strickland
5fc2ba5fc4
[platform] Adjust Utils::StringHash() for misaligned starts.
...
Fixes https://github.com/dart-lang/sdk/issues/45290
TEST=vm/cc/StringHash
Cq-Include-Trybots: luci.dart.try:vm-kernel-ubsan-linux-release-x64-try,vm-kernel-precomp-ubsan-linux-release-x64-try
Change-Id: I7c1ef59cece77c6c9b705116e956e945bfcb55d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190882
Commit-Queue: Tess Strickland <sstrickl@google.com >
Reviewed-by: Liam Appelbe <liama@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2021-03-18 17:42:53 +00:00
Artem Serov
9ae7b10cea
[vm] Fix a bug in Utils::NBitMask.
...
The function was broken on arm64 due to incorrect
mask calculation (based on the target ISA).
Change-Id: Ib5c26bf4c7b901ae27f2a0580c4f88b2b7952212
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121709
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
2019-10-17 17:19:32 +00:00
Aart Bik
c38e19cbbe
[vm/compiler] bit utilities
...
Rationale:
Useful in the future when compiler wants to constant fold
operations related to leading/trailing/counting (non)zeros.
https://github.com/dart-lang/sdk/issues/38346
Change-Id: I158aca125d3a15019af20ca7c2a516b74e4d84c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119920
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Aart Bik <ajcbik@google.com >
2019-10-07 18:13:06 +00:00
Aart Bik
7e99f49629
[vm/compiler] general rbit utilities
...
Rationale:
Useful to implement the simulator, but also useful
in the future when compiler wants to constant fold
operations related to bit reversal.
https://github.com/dart-lang/sdk/issues/38346
Change-Id: I2f09ba6b1897202b5c07a2cff771afd7bbc99495
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119703
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Aart Bik <ajcbik@google.com >
2019-10-02 20:37:10 +00:00
Clement Skau
f546362691
[SDK] Adds dart2exe to create standalone executables.
...
Tested:
./tools/build.py --arch x64 --mode release --verbose create_sdk copy_gen_kernel_snapshot copy_dart2aot
./tools/build.py --arch x64 --mode product --verbose copy_gen_snapshot copy_dartaotruntime
cp -r out/ProductX64/dart-sdk/bin/{dartaotruntime,utils/} out/ReleaseX64/dart-sdk/bin/
out/ReleaseX64/dart-sdk/bin/dart2native ~/src/hello_world.dart
~/tmp/hello_world.exe
dart tools/bots/aot_smoke_tests.dart
python tools/test.py -n dartkp-linux-release-x64 vm/dart/run_appended_aot_snapshot_test
Change-Id: I149fcd18405cdf0a87b8f4b4072c0f0e8f98c067
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117140
Commit-Queue: Clement Skau <cskau@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-09-23 12:00:08 +00:00
Ryan Macnak
f60efb7e40
Reapply "[vm] Popcount via compiler intrinsics."
...
Add missing rename of CountOneBits in ARM assembler.
Change-Id: I735da06343248573a1b049109ebc2bf0d1634960
Reviewed-on: https://dart-review.googlesource.com/18504
Reviewed-by: Zach Anderson <zra@google.com >
2017-11-03 17:39:16 +00:00
Ryan Macnak
2761c556ca
Revert "[vm] Popcount via compiler intrinsics."
...
This reverts commit c4f4cdbf29 .
Reason for revert: ARM compile-time errors
Original change's description:
> [vm] Popcount via compiler intrinsics.
>
> Change-Id: I8913beea7b984f04cec7f9efc00673aa12095eda
> Reviewed-on: https://dart-review.googlesource.com/18423
> Reviewed-by: Zach Anderson <zra@google.com >
TBR=rmacnak@google.com ,zra@google.com
Change-Id: I5efe8100e3c1fa404b1c24f369dca5c137acd2b8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/18640
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2017-11-03 16:50:47 +00:00
Ryan Macnak
c4f4cdbf29
[vm] Popcount via compiler intrinsics.
...
Change-Id: I8913beea7b984f04cec7f9efc00673aa12095eda
Reviewed-on: https://dart-review.googlesource.com/18423
Reviewed-by: Zach Anderson <zra@google.com >
2017-11-03 16:34:35 +00:00
Zachary Anderson
6cd8a79078
VM: Re-format to use at most one newline between functions
...
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2974233002 .
2017-07-13 08:08:37 -07:00
Ben Konyi
f2fd150ea0
Added new type of unit test, RAW_UNIT_TEST_CASE, which is used for tests that can be flaky if run while the VM is alive. Tests created using the RAW_UNIT_TEST_CASE macro will run after the VM has shutdown to avoid having any worker threads contaminating the test results.
...
BUG=
R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2666133002 .
2017-01-31 15:16:38 -08:00
koda@google.com
c12d38d5b9
Fix typo in unit test.
...
TBR=iposva@google.com
Review URL: https://codereview.chromium.org//555333002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40071 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-09 23:31:16 +00:00
koda@google.com
d70cfe1f52
Fix ancient Windows freelist bug.
...
Since r9836 (July 2012), we have been searching the freelists in the wrong order on Windows. The recently added bit_set_test.cc uncovered this bug.
Also add dedicated unit test case for Utils::Count*Zeros.
R=asiva@google.com
Review URL: https://codereview.chromium.org//558753003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40067 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-09 22:59:04 +00:00
srdjan@google.com
a9ecc2118c
Use xorps xmm1, xmm1 to creat a 0.0 cconstant. Add to utils a bitwise double test.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//267793005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35718 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-02 23:50:22 +00:00
fschneider@google.com
e174a4c18e
Fix a compiler bug caused by Utils::IsPowerOfTwo treating zero as a power of two.
...
The IsPowerOfTwo function is used together with ShiftForPowerOfTwo. Both function
do not work with zero. This caused the optimizing compiler to generate invalid code
for the expression
x ? 0 : 0
where it assumed that if one of the constants is a power-of-two, it can
be computed by (1 << n). We check for 0 in a number of places, but instead
I decided to fix Utils::IsPowerOfTwo itself and remove unnecessary checks
for the zero case.
TEST=tests/language/vm/if_conversion_vm_test.dart, runtime/vm/utils_test.cc
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//23604024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27033 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 09:28:34 +00:00
asiva@google.com
fc88f85589
Add utilities for converting from Host endianity to big endian and little endian formats for the various OSs.
...
Review URL: https://codereview.chromium.org//14299008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21593 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-16 23:29:26 +00:00
regis@google.com
9993072ff2
Simplify integer arithmetic code.
...
Optimize Mint multiplication in 32-bit mode.
Review URL: https://chromiumcodereview.appspot.com//9112050
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3417 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 22:00:40 +00:00
sgjesse@google.com
65896148c9
Move utils.h and utils.cc from runtime/vm to runtime/platform
...
Moved additional parts of globals.h from vm/ to platform/ to support
types and constants used by utils.*.
R=ager@google.com , iposva@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//9209001
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3337 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-16 13:23:40 +00:00
sgjesse@google.com
bf67f24098
Move assert.h/assert.cc from runtime/vm to runtime/platform
...
The purpose of this change is twofold:
1. Source in the bin directory can now use the same assertions as
source in the vm directory. The ASSERT macro used by the code
in runtime/bin was just defined to use assert from the standard
C library.
2. Moving other implementation parts from runtime/vm to
runtime/platform (e.g. classes Monitor and Mutex) for sharing
between runtime/bin and runtime/vm will be easier as these
implementations rely on these assertion macros.
Created two gypi files for the platform directory. One for the
headers and one for the source. The source one is only included
when building the VM library and will be present in libdart.a
when the dart executable is linked.
All the code for asserts is still in the dart namespace.
Also re-arranged the order of includes to be alphabetically in
the files touched.
R=ager@google.com , iposva@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//9189003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3335 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-16 12:28:10 +00:00
dgrove@google.com
4c0f559d23
Initial checkin.
...
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 05:20:07 +00:00