Ryan Macnak
688917045f
[vm] Use AT_HWCAP instead of /proc/cpuinfo for most ARM feature detection.
...
Under user-space emulation or 32-bit ARM on a 64-bit ARM system, /proc/cpuinfo describes the host CPU instead of the emulated ARM CPU.
Also fix the encoding of sdiv. Apparently QEMU is stricter than hardware.
TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/29270
Bug: https://github.com/dart-lang/sdk/issues/54909
Change-Id: Icadf1a276e468dbb8142da49f961f33bca499d27
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352680
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2024-02-15 23:08:48 +00:00
Ryan Macnak
df54b81dd1
[vm] Remove dead ARMv5 code.
...
TEST=build
Change-Id: I44b41bb783b5f5cad221d4508fee18ff0a23afe7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/325144
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: William Hesse <whesse@google.com >
2023-09-12 16:22:19 +00:00
Ryan Macnak
1f953c3fe1
[vm, gc] Remove some dead code.
...
TEST=ci
Change-Id: Ia0d0f181b8d54c3ec0e1cc8f2076bea7854379ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/311142
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
2023-06-23 20:35:00 +00:00
Ryan Macnak
f9a6a5bdd2
[vm] Update NULL to nullptr in runtime/vm.
...
TEST=build
Change-Id: I2834ef7cf7cb7c8770f8167a2438cbedcee5c623
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/292063
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
2023-04-10 18:15:12 +00:00
なつき
c50940b56b
Fallback to uname for detecting ARM CPU architecture
...
Currently running official dart `linux/arm/v7` container image on x86_64 with QEMU results in `Unrecognized ARM CPU architecture`.
This is due to QEMU reporting host `/proc/cpuinfo` instead of the emulated architecture.
Checking `uname` in addition to `/proc/cpuinfo` would make `linux/arm/v7` build work consistently regardless of whether `--use-qemu` is supplied during SDK build time.
TEST=running the qemu bot
TEST=ran the ffi/hardfp_test.dart locally both in AOT and JIT mode.
Closes https://github.com/dart-lang/sdk/pull/48665
https://github.com/dart-lang/sdk/pull/48665
GitOrigin-RevId: d1414d747152d048f3ecaadfd0cd3356ce7a2205
Change-Id: If8b42a700d55e83fea0ee0035848308a3211ec43
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/238841
Reviewed-by: Daco Harkes <dacoharkes@google.com >
Commit-Queue: Daco Harkes <dacoharkes@google.com >
2022-04-13 07:54:02 +00:00
Ryan Macnak
53c04ff910
[vm] More pieces of Windows ARM support.
...
TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/47824
Change-Id: Ie7388b12359b9ae11509a3f1b9e86c72507df38f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/240483
Reviewed-by: Alexander Aprelev <aam@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2022-04-07 23:15:48 +00:00
Ryan Macnak
f2d3051598
[vm] Some pieces for Windows ARM support.
...
TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/47824
Change-Id: Iaf401f4d25fc5bf171170728d4a5d3ae6ef17527
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/239369
Reviewed-by: Alexander Aprelev <aam@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2022-03-30 19:01:33 +00:00
Ryan Macnak
5f45f9f46d
[vm, compiler] Assume availability of VFP when targeting ARM32.
...
This is not implied by ARMv7 per se, but is implied by the Debian and Android ABIs.
TEST=ci
Change-Id: Ie838eeec0e7e2e7e64e29e9ad69338532df16cbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/223740
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2021-12-14 20:05:55 +00:00
Ryan Macnak
1d70168786
[build] Fix arm and arm64 gcc builds.
...
TEST=./tools/build.py --no-goma --no-clang --arch=arm,arm64 runtime
Bug: https://github.com/dart-lang/sdk/issues/47330
Change-Id: I32cea56e3ad64200a7057cc6a381bc6d9656ec7b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215984
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
2021-10-12 18:49:52 +00:00
Zach Anderson
f407419d0a
[vm] Reland: Prefix HOST_OS_* and TARGET_OS_* with DART_
...
This relands https://dart-review.googlesource.com/c/sdk/+/205633
but without renaming TARGET_OS_IPHONE to DART_TARGET_OS_IPHONE.
It also changes uses of TARGET_OS_IOS to
DART_TARGET_OS_MACOS_IOS to be consistent with the rest of the
VM.
TargetConditionals.h for XCode 13 defines several
TARGET_OS_* preprocessor symbols that confuse the
Dart build. There is probably a more targeted fix
for this, but renaming the symbols that Dart uses
will also prevent this problem if more symbols
are added to the platform headers in the future.
See: https://github.com/dart-lang/sdk/issues/46499
TEST=It builds.
Change-Id: Ie775c19dd23cfdf5f65e5ebc6ee4ec3a561676fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/205860
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
2021-07-02 19:06:45 +00:00
Slava Egorov
42164cc140
Revert "[vm] Prefix HOST_OS_* and TARGET_OS_* with DART_"
...
This reverts commit aa9201b76b .
Reason for revert: blocks G3 roll (b/192627187)
Original change's description:
> [vm] Prefix HOST_OS_* and TARGET_OS_* with DART_
>
> TargetConditionals.h for XCode 13 defines several
> TARGET_OS_* preprocessor symbols that confuse the
> Dart build. There is probably a more targeted fix
> for this, but renaming the symbols that Dart uses
> will also prevent this problem if more symbols
> are added to the platform headers in the future.
>
> See: https://github.com/dart-lang/sdk/issues/46499
>
> TEST=It builds.
> Change-Id: I3b33a03b4a9a14b76d55fe12f8cdefec4b3c3664
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/205633
> Commit-Queue: Zach Anderson <zra@google.com >
> Reviewed-by: Siva Annamalai <asiva@google.com >
TBR=rmacnak@google.com ,zra@google.com ,asiva@google.com
Change-Id: Ib06ca418c7e9d3b4df62c72c033cd39f462f7667
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/205790
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Slava Egorov <vegorov@google.com >
2021-07-02 14:02:02 +00:00
Zach Anderson
aa9201b76b
[vm] Prefix HOST_OS_* and TARGET_OS_* with DART_
...
TargetConditionals.h for XCode 13 defines several
TARGET_OS_* preprocessor symbols that confuse the
Dart build. There is probably a more targeted fix
for this, but renaming the symbols that Dart uses
will also prevent this problem if more symbols
are added to the platform headers in the future.
See: https://github.com/dart-lang/sdk/issues/46499
TEST=It builds.
Change-Id: I3b33a03b4a9a14b76d55fe12f8cdefec4b3c3664
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/205633
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2021-07-02 06:02:48 +00:00
Daco Harkes
ba5e72ebe4
[vm] Replace TARGET_OS_IOS with TARGET_OS_MACOS_IOS
...
TEST=Manually tested in Flutter iOS build.
Closes https://github.com/dart-lang/sdk/issues/44230 .
Change-Id: I47b3bb9eb1fe567e6f14b1c01548b0c0d9b2a683
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173267
Auto-Submit: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2020-11-30 16:04:12 +00:00
Martin Kustermann
53807c1d79
[vm] Remove ARMv6 related code
...
This also allows unaligned access, since it's mandatory for ARMv7 (we
already take advantage of it for ARMv8).
Issue https://github.com/dart-lang/sdk/issues/42069
Change-Id: I0bd61a930e61dea330ab21fd187fe64b057ca28e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152322
Reviewed-by: Siva Annamalai <asiva@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2020-06-26 09:39:15 +00:00
Vyacheslav Egorov
beb7114861
[vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime
...
This relands commit b0a71d364c
Cq-Include-Trybots: dart/try:vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-linux-release-simarm-try,vm-kernel-precomp-linux-release-x64-try
Change-Id: I1d32e5d0d44f4e422d188643b548ed81859f7d74
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143807
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2020-04-17 13:11:08 +00:00
Jason Simmons
4f2cb5afbe
[vm] Disable integer division on Android ARM emulators
...
Some Android ARM emulators claim support for idiv features in /proc/cpuinfo
but trigger a SIGILL when executing these instructions.
See https://github.com/flutter/flutter/issues/37193
Change-Id: Ie2a93df7a286a933190164bb31d6210c1658a260
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140248
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2020-03-20 19:05:48 +00:00
Daco Harkes
a71d60c1cf
[vm/ffi] Support Linux on Arm 32-bit (hardfp)
...
Implement the hardfp calling convention.
Tested QEMU locally as the bots are not online yet.
tools/test.py -m debug -a arm -c dartkp --use-qemu ffi_2 ; tools/test.py -m debug -a arm -c dartk --use-qemu ffi_2
Test configuration:
custom configuration(architecture: arm, compiler: dartkp, mode: debug, runtime: dart_precompiled, system: linux, use-qemu)
Suites tested: ffi_2
[00:45 | 100% | + 189 | - 0]
Test configuration:
custom configuration(architecture: arm, compiler: dartk, mode: debug, runtime: vm, system: linux, use-qemu)
Suites tested: ffi_2
[09:52 | 100% | + 189 | - 0]
Fixes: https://github.com/dart-lang/sdk/issues/36309
Change-Id: Ic34175bdf9b9f359f1126aeb157362e76443921a
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124136
Commit-Queue: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2020-02-05 14:22:59 +00:00
Martin Kustermann
5581307ae6
[vm] Extend cpu_arm.cc to support devices using ARMv8 in "Processor" field
...
Issue https://github.com/flutter/flutter/issues/48923
Change-Id: I1074dfec8d704c04f3777b6d458afd931aa23964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132901
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2020-01-22 21:17:58 +00:00
Samir Jindel
6a8aae0095
[vm] Enable Dart VM to run in QEMU user-mode emulation for ARM.
...
Normally we consult /proc to determine the host architecture. However, this
reports the actual host architecture, not the QEMU-simulated one.
Also, GDB cannot debug position-independent executables in QEMU, so we disable
PIE when compiling for execution in QEMU.
Pass '--use-qemu' to 'gn.py' to build for QEMU.
Change-Id: Ib125127ceb0582b66754cfc0da22e09d224ee1e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125267
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-11-18 16:58:53 +00:00
Martin Kustermann
e82fedc345
[vm] Remove deprecated (and untested) ARMv5 support from the VM
...
Since we have no CQ/CI test coverage of ARMv5 and none of our customers
uses it, a breaking change request was made (see issue further down).
The breaking change has been approved and a corresponding email has been
sent out:
https://groups.google.com/a/dartlang.org/forum/?nomobile=true#!topic/announce/vRQja7di3FQ
This CL removes any armv5 related code from our codebase.
Closes https://github.com/dart-lang/sdk/issues/36666
Change-Id: I9abf32f1980ca19a9cf882b43c9966b2127f89e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122540
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2019-10-23 14:44:33 +00:00
Samir Jindel
0ea0409401
[vm/ios] Don't use __clear_cache on iOS, it's not always available.
...
Change-Id: Ia80b543587b3dc265c4a4d97befff73d915ad2be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/110560
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2019-08-01 14:14:39 +00:00
Samir Jindel
c6f3d972b8
[vm] Support flushing icache on all ARM platforms.
...
Change-Id: Id6987dca1e284179096de3b74e7b537ca93bd2bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109701
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-07-19 15:56:09 +00:00
Liam Appelbe
a6eb2cd309
[vm] Support for simarm_x64
...
Third sub-CL of https://dart-review.googlesource.com/c/sdk/+/100644
The first was here https://dart-review.googlesource.com/c/sdk/+/103487
The second was here https://dart-review.googlesource.com/c/sdk/+/104286
This is the last major CL to support simarm_x64. Now that the other two
CLs have put the required infrastructure in place, this CL actually
adds the new mode..
Bug: https://github.com/dart-lang/sdk/issues/36839
Change-Id: Ie2f850bf33544f2462f37854e762191c78b1bde6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105500
Commit-Queue: Liam Appelbe <liama@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2019-06-21 04:00:35 +00:00
William Hesse
ed6d7e23f1
Fix build failure introduced in https://dart-review.googlesource.com/c/sdk/+/77013
...
A rename of an identifier "InitOnce" was missed.
Change-Id: I7b6bfea07ec3eaecf0486c5d20c33d4c6ff1d81a
Reviewed-on: https://dart-review.googlesource.com/77320
Reviewed-by: Jonas Termansen <sortie@google.com >
2018-10-01 08:30:42 +00:00
Ben Konyi
07852532e3
[ VM ] Additional cleanup in Dart_Initialize and Dart_Cleanup
...
Change-Id: I6dc02b3d9de16cc176eb97613bc0c7f0bb9b16eb
Reviewed-on: https://dart-review.googlesource.com/77013
Commit-Queue: Ben Konyi <bkonyi@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Auto-Submit: Ben Konyi <bkonyi@google.com >
2018-09-28 23:18:59 +00:00
Ryan Macnak
8da46d35f5
[vm] Move heap-related code to its own subdirectory (cf. compiler).
...
Remove some dead includes.
Change-Id: I31f3e739e5ee46dcbba5d6a2f091491b46402943
Reviewed-on: https://dart-review.googlesource.com/60146
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-06-20 00:39:49 +00:00
Michael Goderbauer
29d6e96370
Use softfp on 32bit ARM for iOS
...
Change-Id: I20ef6c998649aa041639feab93d49166570c53f4
Reviewed-on: https://dart-review.googlesource.com/52524
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-04-24 23:07:38 +00:00
Vyacheslav Egorov
8a179fb953
[VM, Compiler] Move compiler to a separate folder.
...
New folder structure (nested under vm/):
- compiler/
- jit/ - JIT specific code
- aot/ - AOT specific code
- backend/ - all middle-end and back-end code (IL, flow graph)
- assembler/ - assemblers and disassemblers
- frontend/ - front ends (AST -> IL, Kernel -> IL)
compiler/README.md would be the documentation root for the compiler
pipeline
Bug: https://github.com/dart-lang/sdk/issues/30575
Change-Id: I2dfd9688793bff737f7632ddc77fca766875ce36
Reviewed-on: https://dart-review.googlesource.com/2940
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
2017-09-04 15:15:18 +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
Erik Corry
aa6353b6da
Dart SDK Spelling b, c, and d.
...
R=kmillikin@google.com
BUG=
Review-Url: https://codereview.chromium.org/2850783002 .
2017-05-01 08:28:10 +02:00
Ryan Macnak
683077944b
Conservatively disable use of integer division on Android ARM64 devices.
...
R=jsimmons@google.com
Review-Url: https://codereview.chromium.org/2800883002 .
2017-04-05 12:45:01 -07:00
Ryan Macnak
9f2668c998
Set TARGET_OS_* from GN, falling back to HOST_OS_*.
...
Use TARGET_OS_* instead of HOST_OS_* to decide on the assembly variant to use. Allows, say, a gen_snapshot compiled for a Mac to target Android when generating AOT as assembly.
R=fschneider@google.com , zra@google.com
Review-Url: https://codereview.chromium.org/2757783003 .
2017-03-20 14:48:28 -07:00
Ryan Macnak
877284947b
Rename TARGET_OS_* to HOST_OS_*.
...
Like HOST_ARCH_*, HOST_OS_* describes the OS the VM is running on, which may be different from the OS the VM is generating code for during AOT compilation.
Currently we conflate the two when emitting AOT as assembly, and we get away with it because Flutter only uses assembly for targeting iOS and one can only target iOS from a Mac, but we expect to use assembly for Android as well so native tools can unwind Dart frames.
R=zra@google.com
Review-Url: https://codereview.chromium.org/2750843003 .
2017-03-15 13:11:05 -07:00
Ryan Macnak
edb9c4205e
Adjust ARM feature detection to note the Xiaomi MI5 also fails to support integer division in A32 code.
...
flutter/flutter#6901
R=zra@google.com
Review URL: https://codereview.chromium.org/2507113004 .
2016-11-17 14:42:17 -08:00
Ryan Macnak
a01c637522
Make arm32 cpu detection recognize the DragonBoard as arm64.
...
R=zra@google.com
Review URL: https://codereview.chromium.org/2497273003 .
2016-11-14 16:55:25 -08:00
Zachary Anderson
a1bcf051d8
clang-format runtime/vm
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2481873005 .
2016-11-08 13:54:47 -08:00
Ryan Macnak
4d81fee396
Special case the Pixel as not supporting integer division for 32-bit ARM.
...
R=zra@google.com
Review URL: https://codereview.chromium.org/2477453006 .
2016-11-04 15:43:18 -07:00
Zachary Anderson
e29da6037b
Small cleanups and linter fixes.
...
Review URL: https://codereview.chromium.org/2455983002 .
2016-10-27 05:02:20 -07:00
Zachary Anderson
80f358dede
Adds targets for simarmv6 and armv6
...
related #25562
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1624593002 .
2016-01-22 13:07:48 -08:00
Chinmay Garde
dfd7c0b221
Fix CPU features detection and stack alignment assert on iOS
...
R=zra@google.com
Review URL: https://codereview.chromium.org/1413643004 .
2015-10-27 14:23:36 -07:00
Chinmay Garde
52d8128b4e
Avoid compilation errors when the dart_target_arch is TARGET_ARCH_ARM
...
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1424783002 .
2015-10-26 15:39:14 -07:00
Zachary Anderson
ccc7786362
Adds a special case for Marvell Armada 370/XP ARM CPUs
...
It reports availability of integer division instructions, but these
instructions trigger SIGILL faults.
BUG=https://github.com/dart-lang/sdk/issues/24466
R=regis@google.com
Review URL: https://codereview.chromium.org/1391313002 .
2015-10-07 15:56:41 -07:00
Ivan Posva
8f1506e817
- Determine whether the simulator is being used in globals.h
...
- Make sure to switch on HOST_ARCH_ and on USING_SIMULATOR
where appropriate.
- Avoid allocating in new generation when running in the VM isolate.
BUG=
R=srdjan@google.com
Review URL: https://codereview.chromium.org//1156053006
2015-05-29 14:35:29 -07:00
zra@google.com
c90248c51d
Adds comments about ARM versions.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//1067663004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45242 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-17 16:42:32 +00:00
zra@google.com
86bfd7cb30
Adds a simarmv5te build and test target.
...
Also:
- Removes command line flags to choose simulated arm version.
I think we should use build targets instead, like in this change,
to make building and testing more obvious.
- Skips pkg tests on all simulators.
R=regis@google.com , ricow@google.com
Review URL: https://codereview.chromium.org//1077823002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45181 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-15 20:44:43 +00:00
zra@google.com
b253b7c2ba
A few fixes for ARMv5TE.
...
This CL:
- Adds SupportsHardwareDivision() to FlowGraphCompiler.
In FlowGraphOptimizer, if SupportsHardwareDivision()
is false, Smi and Mint division operations are not
inlined.
- Reduces the supported addressing modes for ldrd, strd.
For ARMv6 and up, the address only needs to be 4-byte
aligned, for ARMv5TE and below the address must be
8-byte aligned. So, on ARMv5TE, we can split these
each into two instructions, which is easier to do if
the addressing modes are restricted to base + offset,
which is all we were using anyway.
- Uses the smull instruction on ARMv5TE and ARMv6. I don't
remember why it was disabled, and the docs say
it is supported. Verified working on ARMv5TE hardware.
- Fixes a bug in OSR frame entry caused by the
difference between the PC read offset in store vs.
other instructions.
- Fixes assembler tests that have a float return for
targets without vfp.
R=regis@google.com
Review URL: https://codereview.chromium.org//1043943002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44788 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-30 20:46:52 +00:00
zra@google.com
210085919e
Allows arm cpu feature detection to detect arm64 cpus.
...
This is probalby of limited utility since we have an
arm64 port, but it could be interesting for performance
experiments, etc.
R=regis@google.com
Review URL: https://codereview.chromium.org//602943002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40678 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-25 14:37:57 +00:00
zra@google.com
c816b999bf
Adds recognition of the model string for the DGBox.
...
Even though it is an ARMv5TE like the mindstorm, I'm
creating a separate case for it since store_pc_read_offset_
may need to be different.
R=regis@google.com
Review URL: https://codereview.chromium.org//497893002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39566 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-26 20:38:09 +00:00
zra@google.com
5d3f4708ec
Fixes to support ARMv5 lego mindstorm.
...
1. Deopts on division when neither vfp nor idiv are present.
In a subsequent CL, I can add a leaf runtime call for this.
2. Uses a different PC read offset in STR and STM instructions.
On ARMv5 and earlier, the PC read offset is 8 except in STR
and STM instructions, where it is implementation defined. On
lego mindstorm it is 12. This requires changing
kEntryPointToPcMarkerOffset to be a function.
3. Uses a dummy struct to compute the size of a compressed
pc descriptor to avoid alignment issues. sizeof(PcDescriptorRec)
is 16 on ia32 and arm. Subtracting sizeof(int16_t) gives 14,
which creates alignment problems on ARM, i.e. poor performance on
ARMv6 and later, and wrong results on ARMv5 and earlier.
R=regis@google.com
Review URL: https://codereview.chromium.org//467103005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39250 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 15:42:00 +00:00
iposva@google.com
14ecdbd66a
- Separate the thread implementation used in bin/ and vm/
...
to allow us to make VM specific changes.
R=asiva@google.com
Review URL: https://codereview.chromium.org//463993002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39172 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-12 23:19:53 +00:00