mirror of
https://github.com/dart-lang/sdk
synced 2024-07-19 20:17:27 +00:00
Adds targets for simarmv6 and armv6
related #25562 R=rmacnak@google.com Review URL: https://codereview.chromium.org/1624593002 .
This commit is contained in:
parent
771fea4502
commit
80f358dede
|
@ -157,7 +157,7 @@ observe/test/transformer_test: Fail, OK # Uses dart:io.
|
|||
observe/test/unique_message_test: SkipByDesign # Uses dart:io.
|
||||
dart_messages/test/dart_messages_test: Skip # Uses dart:io.
|
||||
|
||||
[ $runtime == vm && ($arch == simarm64 || $arch == simarm || $arch == simarmv5te || $arch == simmips || $arch == armv5te) ]
|
||||
[ $runtime == vm && ($arch == simarm64 || $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simmips || $arch == armv6 || $arch == armv5te) ]
|
||||
# Timeout. These are not unit tests. They do not run efficiently on our
|
||||
# simulator or low-end devices.
|
||||
*: Skip
|
||||
|
|
|
@ -33,7 +33,7 @@ cc/Service_Profile: Skip
|
|||
cc/Dart2JSCompilerStats: Skip
|
||||
cc/CorelibCompilerStats: Skip
|
||||
|
||||
[ $arch == simarm || $arch == simarmv5te || $arch == simarm64 || $arch == simmips ]
|
||||
[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $arch == simmips ]
|
||||
cc/Service_Profile: Skip
|
||||
|
||||
[ $arch == arm ]
|
||||
|
|
|
@ -92,6 +92,20 @@
|
|||
},
|
||||
},
|
||||
|
||||
'Dart_simarmv6_Base': {
|
||||
'abstract': 1,
|
||||
'xcode_settings': {
|
||||
'ARCHS': [ 'i386' ],
|
||||
},
|
||||
},
|
||||
|
||||
'Dart_simarmv5te_Base': {
|
||||
'abstract': 1,
|
||||
'xcode_settings': {
|
||||
'ARCHS': [ 'i386' ],
|
||||
},
|
||||
},
|
||||
|
||||
'Dart_simmips_Base': {
|
||||
'abstract': 1,
|
||||
'xcode_settings': {
|
||||
|
|
|
@ -1798,10 +1798,20 @@ ASSEMBLER_TEST_GENERATE(IntDiv_supported, assembler) {
|
|||
|
||||
ASSEMBLER_TEST_RUN(IntDiv_supported, test) {
|
||||
EXPECT(test != NULL);
|
||||
#if defined(USING_SIMULATOR)
|
||||
bool orig = TargetCPUFeatures::integer_division_supported();
|
||||
HostCPUFeatures::set_integer_division_supported(true);
|
||||
if (TargetCPUFeatures::can_divide()) {
|
||||
typedef int (*Tst)() DART_UNUSED;
|
||||
EXPECT_EQ(3, EXECUTE_TEST_CODE_INT32(Tst, test->entry()));
|
||||
}
|
||||
HostCPUFeatures::set_integer_division_supported(orig);
|
||||
#else
|
||||
if (TargetCPUFeatures::can_divide()) {
|
||||
typedef int (*Tst)() DART_UNUSED;
|
||||
EXPECT_EQ(3, EXECUTE_TEST_CODE_INT32(Tst, test->entry()));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -1829,10 +1839,20 @@ ASSEMBLER_TEST_GENERATE(IntDiv_unsupported, assembler) {
|
|||
|
||||
ASSEMBLER_TEST_RUN(IntDiv_unsupported, test) {
|
||||
EXPECT(test != NULL);
|
||||
#if defined(USING_SIMULATOR)
|
||||
bool orig = TargetCPUFeatures::integer_division_supported();
|
||||
HostCPUFeatures::set_integer_division_supported(false);
|
||||
if (TargetCPUFeatures::can_divide()) {
|
||||
typedef int (*Tst)() DART_UNUSED;
|
||||
EXPECT_EQ(3, EXECUTE_TEST_CODE_INT32(Tst, test->entry()));
|
||||
}
|
||||
HostCPUFeatures::set_integer_division_supported(orig);
|
||||
#else
|
||||
if (TargetCPUFeatures::can_divide()) {
|
||||
typedef int (*Tst)() DART_UNUSED;
|
||||
EXPECT_EQ(3, EXECUTE_TEST_CODE_INT32(Tst, test->entry()));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -56,10 +56,14 @@
|
|||
|
||||
namespace dart {
|
||||
|
||||
// TODO(zra): Add a target for ARMv6.
|
||||
#if defined(TARGET_ARCH_ARM_5TE)
|
||||
DEFINE_FLAG(bool, use_vfp, false, "Use vfp instructions if supported");
|
||||
DEFINE_FLAG(bool, use_neon, false, "Use neon instructions if supported");
|
||||
DEFINE_FLAG(bool, use_integer_division, false,
|
||||
"Use integer division instruction if supported");
|
||||
#elif defined(TARGET_ARCH_ARM_6)
|
||||
DEFINE_FLAG(bool, use_vfp, true, "Use vfp instructions if supported");
|
||||
DEFINE_FLAG(bool, use_neon, false, "Use neon instructions if supported");
|
||||
DEFINE_FLAG(bool, use_integer_division, false,
|
||||
"Use integer division instruction if supported");
|
||||
#else
|
||||
|
@ -242,6 +246,8 @@ void HostCPUFeatures::InitOnce() {
|
|||
|
||||
#if defined(TARGET_ARCH_ARM_5TE)
|
||||
arm_version_ = ARMv5TE;
|
||||
#elif defined(TARGET_ARCH_ARM_6)
|
||||
arm_version_ = ARMv6;
|
||||
#else
|
||||
arm_version_ = ARMv7;
|
||||
#endif
|
||||
|
|
|
@ -74,7 +74,7 @@ LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # co19 issue 673
|
|||
LibTest/isolate/Isolate/spawnUri_A01_t04: Crash, Pass # Issue 17440
|
||||
LibTest/isolate/Isolate/spawn_A01_t04: Crash, Pass # Issue 17440
|
||||
|
||||
[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && ($arch == simarm || $arch == simarmv5te || $arch == simmips || $arch == simarm64) ]
|
||||
[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && ($arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simmips || $arch == simarm64) ]
|
||||
LibTest/core/Uri/Uri_A06_t03: Skip # Timeout
|
||||
LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip # Timeout
|
||||
LibTest/collection/ListBase/ListBase_class_A01_t01: Skip # Timeout
|
||||
|
|
|
@ -104,7 +104,7 @@ large_class_declaration_test: SkipSlow # Times out. Issue 20352
|
|||
[ ($compiler == none || $compiler == precompiler) && $runtime == ContentShellOnAndroid ]
|
||||
gc_test: SkipSlow # Times out flakily. Issue 20956
|
||||
|
||||
[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && ( $arch == simarm || $arch == arm || $arch == simarmv5te || $arch == armv5te || $arch == simarm64 || $arch == arm64 || $arch == simmips || $arch == mips) ]
|
||||
[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && ( $arch == simarm || $arch == arm || $arch == simarmv6 || $arch == armv6 || $arch == simarmv5te || $arch == armv5te || $arch == simarm64 || $arch == arm64 || $arch == simmips || $arch == mips) ]
|
||||
vm/load_to_load_unaligned_forwarding_vm_test: Pass, Crash # Unaligned offset. Issue 22151
|
||||
|
||||
[ ($compiler == none || $compiler == precompiler) && $runtime == dartium ]
|
||||
|
|
|
@ -308,7 +308,7 @@ mirrors/native_class_test: Pass, Slow
|
|||
[ ($compiler == none || $compiler == precompiler) && $arch == mips ]
|
||||
async/timer_regress22626_test: Pass, RuntimeError # Issue 22626
|
||||
|
||||
[ $arch == simarm || $arch == simarmv5te ]
|
||||
[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ]
|
||||
convert/chunked_conversion_utf88_test: Skip # Pass, Slow Issue 12644.
|
||||
convert/utf85_test: Skip # Pass, Slow Issue 12644.
|
||||
|
||||
|
@ -331,7 +331,7 @@ convert/streamed_conversion_json_utf8_decode_test: Pass, Slow
|
|||
[ ($runtime == vm || $runtime == dart_precompiled) && $mode == release && $arch == ia32 && $system == windows ]
|
||||
convert/json_test: RuntimeError # Issue 24908
|
||||
|
||||
[ $mode == debug && $arch != ia32 && $arch != x64 && $arch != simarm && $arch != simarmv5te ]
|
||||
[ $mode == debug && $arch != ia32 && $arch != x64 && $arch != simarm && $arch != simarmv6 && $arch != simarmv5te ]
|
||||
convert/streamed_conversion_json_utf8_decode_test: Skip # Verification not yet implemented.
|
||||
|
||||
[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $builder_tag == asan ]
|
||||
|
|
|
@ -140,7 +140,7 @@ oom_error_stacktrace_test: Pass # The test only fails at runtime.
|
|||
[ $compiler == dart2js && $browser ]
|
||||
*: Skip
|
||||
|
||||
[ $arch == simarm || $arch == simarmv5te || $arch == simmips ]
|
||||
[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simmips ]
|
||||
out_of_memory_test: Skip # passes on Mac, crashes on Linux
|
||||
oom_error_stacktrace_test: Skip # Fails on Linux
|
||||
|
||||
|
@ -268,4 +268,4 @@ io/raw_socket_cross_process_test: RuntimeError # Platform.executable
|
|||
io/test_extension_test: RuntimeError # Platform.executable
|
||||
io/regress_7679_test: RuntimeError # Platform.executable
|
||||
|
||||
io/process_*: Skip # Most use Platform.executable
|
||||
io/process_*: Skip # Most use Platform.executable
|
||||
|
|
2
third_party/pkg_tested/pkg_tested.status
vendored
2
third_party/pkg_tested/pkg_tested.status
vendored
|
@ -23,7 +23,7 @@ pub/*: SkipByDesign
|
|||
pub/test/run/app_can_read_from_stdin_test: Fail # Issue 19448
|
||||
pub/test/run/forwards_signal_posix_test: SkipByDesign
|
||||
|
||||
[ $runtime == vm && ($mode == debug || $arch == mips || $arch == simmips || $arch == simarm || $arch == simarmv5te || $arch == simarm64 || $builder_tag == asan) ]
|
||||
[ $runtime == vm && ($mode == debug || $arch == mips || $arch == simmips || $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $builder_tag == asan) ]
|
||||
dart_style/test/command_line_test: Skip # The test controller does not take into account that tests take much longer in debug mode or on simulators/mips.
|
||||
dart_style/test/formatter_test: Skip # The test controller does not take into account that tests take much longer in debug mode or on simulators/mips.
|
||||
|
||||
|
|
|
@ -55,8 +55,8 @@ def BuildOptions():
|
|||
default=False, action="store_true")
|
||||
result.add_option("-a", "--arch",
|
||||
help='Target architectures (comma-separated).',
|
||||
metavar='[all,ia32,x64,simarm,arm,simarmv5te,armv5te,simmips,mips'
|
||||
',simarm64,arm64,]',
|
||||
metavar='[all,ia32,x64,simarm,arm,simarmv6,armv6,simarmv5te,armv5te,'
|
||||
'simmips,mips,simarm64,arm64,]',
|
||||
default=utils.GuessArchitecture())
|
||||
result.add_option("--os",
|
||||
help='Target OSs (comma-separated).',
|
||||
|
@ -101,8 +101,8 @@ def ProcessOptions(options, args):
|
|||
print "Unknown mode %s" % mode
|
||||
return False
|
||||
for arch in options.arch:
|
||||
archs = ['ia32', 'x64', 'simarm', 'arm', 'simarmv5te', 'armv5te', 'simmips',
|
||||
'mips', 'simarm64', 'arm64',]
|
||||
archs = ['ia32', 'x64', 'simarm', 'arm', 'simarmv6', 'armv6',
|
||||
'simarmv5te', 'armv5te', 'simmips', 'mips', 'simarm64', 'arm64',]
|
||||
if not arch in archs:
|
||||
print "Unknown arch %s" % arch
|
||||
return False
|
||||
|
@ -119,7 +119,7 @@ def ProcessOptions(options, args):
|
|||
print ("Cross-compilation to %s is not supported on host os %s."
|
||||
% (os_name, HOST_OS))
|
||||
return False
|
||||
if not arch in ['ia32', 'arm', 'armv5te', 'arm64', 'mips']:
|
||||
if not arch in ['ia32', 'arm', 'armv6', 'armv5te', 'arm64', 'mips']:
|
||||
print ("Cross-compilation to %s is not supported for architecture %s."
|
||||
% (os_name, arch))
|
||||
return False
|
||||
|
|
|
@ -17,9 +17,11 @@
|
|||
['"<(target_arch)"=="ia32"', { 'dart_target_arch': 'IA32', }],
|
||||
['"<(target_arch)"=="x64"', { 'dart_target_arch': 'X64', }],
|
||||
['"<(target_arch)"=="arm"', { 'dart_target_arch': 'ARM', }],
|
||||
['"<(target_arch)"=="armv6"', { 'dart_target_arch': 'ARMV6', }],
|
||||
['"<(target_arch)"=="armv5te"', { 'dart_target_arch': 'ARMV5TE', }],
|
||||
['"<(target_arch)"=="arm64"', { 'dart_target_arch': 'ARM64', }],
|
||||
['"<(target_arch)"=="simarm"', { 'dart_target_arch': 'SIMARM', }],
|
||||
['"<(target_arch)"=="simarmv6"', { 'dart_target_arch': 'SIMARMV6', }],
|
||||
['"<(target_arch)"=="simarmv5te"', { 'dart_target_arch': 'SIMARMV5TE', }],
|
||||
['"<(target_arch)"=="simarm64"', { 'dart_target_arch': 'SIMARM64', }],
|
||||
['"<(target_arch)"=="mips"', { 'dart_target_arch': 'MIPS', }],
|
||||
|
@ -63,6 +65,14 @@
|
|||
]
|
||||
},
|
||||
|
||||
'Dart_simarmv6_Base': {
|
||||
'abstract': 1,
|
||||
'defines': [
|
||||
'TARGET_ARCH_ARM',
|
||||
'TARGET_ARCH_ARM_6',
|
||||
]
|
||||
},
|
||||
|
||||
'Dart_simarmv5te_Base': {
|
||||
'abstract': 1,
|
||||
'defines': [
|
||||
|
@ -78,6 +88,14 @@
|
|||
],
|
||||
},
|
||||
|
||||
'Dart_armv6_Base': {
|
||||
'abstract': 1,
|
||||
'defines': [
|
||||
'TARGET_ARCH_ARM',
|
||||
'TARGET_ARCH_ARM_6',
|
||||
],
|
||||
},
|
||||
|
||||
'Dart_armv5te_Base': {
|
||||
'abstract': 1,
|
||||
'defines': [
|
||||
|
@ -184,6 +202,27 @@
|
|||
],
|
||||
},
|
||||
|
||||
'DebugSIMARMV6': {
|
||||
'inherit_from': [
|
||||
'Dart_Base', 'Dart_simarmv6_Base', 'Dart_Debug',
|
||||
'Dart_<(dart_target_os)_Base',
|
||||
'Dart_<(dart_target_os)_simarmv6_Base',
|
||||
'Dart_<(dart_target_os)_Debug',
|
||||
],
|
||||
'defines': [
|
||||
'DEBUG',
|
||||
],
|
||||
},
|
||||
|
||||
'ReleaseSIMARMV6': {
|
||||
'inherit_from': [
|
||||
'Dart_Base', 'Dart_simarmv6_Base', 'Dart_Release',
|
||||
'Dart_<(dart_target_os)_Base',
|
||||
'Dart_<(dart_target_os)_simarmv6_Base',
|
||||
'Dart_<(dart_target_os)_Release',
|
||||
],
|
||||
},
|
||||
|
||||
'DebugSIMARMV5TE': {
|
||||
'inherit_from': [
|
||||
'Dart_Base', 'Dart_simarmv5te_Base', 'Dart_Debug',
|
||||
|
@ -285,6 +324,42 @@
|
|||
],
|
||||
},
|
||||
|
||||
'DebugXARMV6': {
|
||||
'inherit_from': [
|
||||
'Dart_Base', 'Dart_armv6_Base', 'Dart_Debug',
|
||||
'Dart_Linux_Base',
|
||||
'Dart_Linux_xarmv6_Base',
|
||||
'Dart_Linux_Debug',
|
||||
],
|
||||
},
|
||||
|
||||
'ReleaseXARMV6': {
|
||||
'inherit_from': [
|
||||
'Dart_Base', 'Dart_armv6_Base', 'Dart_Release',
|
||||
'Dart_Linux_Base',
|
||||
'Dart_Linux_xarmv6_Base',
|
||||
'Dart_Linux_Release',
|
||||
],
|
||||
},
|
||||
|
||||
'DebugARMV6': {
|
||||
'inherit_from': [
|
||||
'Dart_Base', 'Dart_armv6_Base', 'Dart_Debug',
|
||||
'Dart_Linux_Base',
|
||||
'Dart_Linux_armv6_Base',
|
||||
'Dart_Linux_Debug',
|
||||
],
|
||||
},
|
||||
|
||||
'ReleaseARMV6': {
|
||||
'inherit_from': [
|
||||
'Dart_Base', 'Dart_armv6_Base', 'Dart_Release',
|
||||
'Dart_Linux_Base',
|
||||
'Dart_Linux_armv6_Base',
|
||||
'Dart_Linux_Release',
|
||||
],
|
||||
},
|
||||
|
||||
'DebugXARMV5TE': {
|
||||
'inherit_from': [
|
||||
'Dart_Base', 'Dart_armv5te_Base', 'Dart_Debug',
|
||||
|
|
|
@ -76,6 +76,12 @@
|
|||
'ldflags': [ '-m32', ],
|
||||
},
|
||||
|
||||
'Dart_Linux_simarmv6_Base': {
|
||||
'abstract': 1,
|
||||
'cflags': [ '-O3', '-m32', '-msse2', '-mfpmath=sse' ],
|
||||
'ldflags': [ '-m32', ],
|
||||
},
|
||||
|
||||
'Dart_Linux_simarmv5te_Base': {
|
||||
'abstract': 1,
|
||||
'cflags': [ '-O3', '-m32', '-msse2', '-mfpmath=sse' ],
|
||||
|
@ -117,6 +123,35 @@
|
|||
],
|
||||
},
|
||||
|
||||
# ARMv6 cross-build
|
||||
'Dart_Linux_xarmv6_Base': {
|
||||
'abstract': 1,
|
||||
'target_conditions': [
|
||||
['_toolset=="target"', {
|
||||
'cflags': [
|
||||
'-march=armv6',
|
||||
'-mfpu=vfp',
|
||||
'-Wno-psabi', # suppresses va_list warning
|
||||
'-fno-strict-overflow',
|
||||
],
|
||||
}],
|
||||
['_toolset=="host"', {
|
||||
'cflags': ['-m32', '-msse2', '-mfpmath=sse' ],
|
||||
'ldflags': ['-m32'],
|
||||
}]]
|
||||
},
|
||||
|
||||
# ARMv6 native build
|
||||
'Dart_Linux_armv6_Base': {
|
||||
'abstract': 1,
|
||||
'cflags': [
|
||||
'-march=armv6',
|
||||
'-mfpu=vfp',
|
||||
'-Wno-psabi', # suppresses va_list warning
|
||||
'-fno-strict-overflow',
|
||||
],
|
||||
},
|
||||
|
||||
# ARMv5 cross-build
|
||||
'Dart_Linux_xarmv5te_Base': {
|
||||
'abstract': 1,
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
'Dart_Win_simarm_Base': {
|
||||
'abstract': 1,
|
||||
},
|
||||
'Dart_Win_simarmv6_Base': {
|
||||
'abstract': 1,
|
||||
},
|
||||
'Dart_Win_simarmv5te_Base': {
|
||||
'abstract': 1,
|
||||
},
|
||||
|
|
|
@ -78,6 +78,9 @@
|
|||
'Dart_Macos_simarm_Base': {
|
||||
'abstract': 1,
|
||||
},
|
||||
'Dart_Macos_simarmv6_Base': {
|
||||
'abstract': 1,
|
||||
},
|
||||
'Dart_Macos_simarmv5te_Base': {
|
||||
'abstract': 1,
|
||||
},
|
||||
|
|
|
@ -172,6 +172,8 @@ class DartVmRuntimeConfiguration extends RuntimeConfiguration {
|
|||
switch (arch) {
|
||||
case 'simarm':
|
||||
case 'arm':
|
||||
case 'simarmv6':
|
||||
case 'armv6':
|
||||
case' simarmv5te':
|
||||
case 'armv5te':
|
||||
case 'simmips':
|
||||
|
|
|
@ -108,8 +108,8 @@ class TestOptionsParser {
|
|||
'arch',
|
||||
'The architecture to run tests for',
|
||||
['-a', '--arch'],
|
||||
['all', 'ia32', 'x64', 'arm', 'armv5te', 'arm64', 'mips',
|
||||
'simarm', 'simarmv5te', 'simarm64', 'simmips'],
|
||||
['all', 'ia32', 'x64', 'arm', 'armv6', 'armv5te', 'arm64', 'mips',
|
||||
'simarm', 'simarmv6', 'simarmv5te', 'simarm64', 'simmips'],
|
||||
'x64'),
|
||||
new _TestOptionSpecification(
|
||||
'system',
|
||||
|
|
|
@ -52,6 +52,8 @@ def GuessArchitecture():
|
|||
os_id = platform.machine()
|
||||
if os_id.startswith('armv5te'):
|
||||
return 'armv5te'
|
||||
elif os_id.startswith('armv6'):
|
||||
return 'armv6'
|
||||
elif os_id.startswith('arm'):
|
||||
return 'arm'
|
||||
elif os_id.startswith('aarch64'):
|
||||
|
@ -228,10 +230,12 @@ ARCH_FAMILY = {
|
|||
'ia32': 'ia32',
|
||||
'x64': 'ia32',
|
||||
'arm': 'arm',
|
||||
'armv6': 'arm',
|
||||
'armv5te': 'arm',
|
||||
'arm64': 'arm',
|
||||
'mips': 'mips',
|
||||
'simarm': 'ia32',
|
||||
'simarmv6': 'ia32',
|
||||
'simarmv5te': 'ia32',
|
||||
'simmips': 'ia32',
|
||||
'simarm64': 'ia32',
|
||||
|
@ -581,6 +585,9 @@ def DartBinary():
|
|||
# TODO(zra): This binary does not exist, yet. Check one in once we have
|
||||
# sufficient stability.
|
||||
return os.path.join(dart_binary_prefix, system, 'dart-armv5te')
|
||||
elif arch == 'armv6':
|
||||
# TODO(zra): Ditto.
|
||||
return os.path.join(dart_binary_prefix, system, 'dart-armv6')
|
||||
elif arch == 'arm':
|
||||
return os.path.join(dart_binary_prefix, system, 'dart-arm')
|
||||
elif arch == 'arm64':
|
||||
|
|
Loading…
Reference in a new issue