mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 09:58:32 +00:00
[vm, ffi] Add Windows ARM64 to FFI unit tests.
This accepts the current results, including known bugs in handling of variadic arguments. Fixes are in a follow-up CL. TEST=ci Change-Id: I6a0bd11aeb1fe0a6980dd6ff974dc5a4b207fb97 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/329824 Reviewed-by: Daco Harkes <dacoharkes@google.com> Reviewed-by: Siva Annamalai <asiva@google.com> Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
parent
209483da72
commit
985c292cff
|
@ -400,6 +400,7 @@ class FfiTestSuite extends TestSuite {
|
|||
"arm64_ios",
|
||||
"arm64_linux",
|
||||
"arm64_macos",
|
||||
"arm64_win",
|
||||
"arm_android",
|
||||
"arm_ios",
|
||||
"arm_linux",
|
||||
|
|
|
@ -137,6 +137,13 @@ build_run_ffi_unit_tests("run_ffi_unit_tests_arm64_linux") {
|
|||
]
|
||||
}
|
||||
|
||||
build_run_ffi_unit_tests("run_ffi_unit_tests_arm64_win") {
|
||||
extra_configs = [
|
||||
":define_target_arch_arm64",
|
||||
":define_target_os_windows",
|
||||
]
|
||||
}
|
||||
|
||||
build_run_ffi_unit_tests("run_ffi_unit_tests_ia32_android") {
|
||||
extra_configs = [
|
||||
":define_target_arch_ia32",
|
||||
|
@ -214,6 +221,7 @@ group("run_ffi_unit_tests") {
|
|||
":run_ffi_unit_tests_arm64_ios", # No other test coverage.
|
||||
":run_ffi_unit_tests_arm64_linux",
|
||||
":run_ffi_unit_tests_arm64_macos",
|
||||
":run_ffi_unit_tests_arm64_win",
|
||||
":run_ffi_unit_tests_arm_android", # SoftFP
|
||||
":run_ffi_unit_tests_arm_ios", # No other test coverage.
|
||||
":run_ffi_unit_tests_arm_linux", # HardFP
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
v0 double
|
||||
v1 double
|
||||
v2 double
|
||||
v3 double
|
||||
v4 double
|
||||
v5 double
|
||||
v6 double
|
||||
v7 double
|
||||
S+0 double
|
||||
S+8 double
|
||||
S+16 double
|
||||
S+24 double
|
||||
S+32 double
|
||||
S+40 double
|
||||
S+48 double
|
||||
S+56 double
|
||||
S+64 double
|
||||
S+72 double
|
||||
S+80 double
|
||||
S+88 double
|
||||
=>
|
||||
v0 double
|
22
runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_win.expect
Normal file
22
runtime/vm/compiler/ffi/unit_tests/floatx20/arm64_win.expect
Normal file
|
@ -0,0 +1,22 @@
|
|||
v0 float
|
||||
v1 float
|
||||
v2 float
|
||||
v3 float
|
||||
v4 float
|
||||
v5 float
|
||||
v6 float
|
||||
v7 float
|
||||
S+0 float
|
||||
S+8 float
|
||||
S+16 float
|
||||
S+24 float
|
||||
S+32 float
|
||||
S+40 float
|
||||
S+48 float
|
||||
S+56 float
|
||||
S+64 float
|
||||
S+72 float
|
||||
S+80 float
|
||||
S+88 float
|
||||
=>
|
||||
v0 float
|
12
runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_win.expect
Normal file
12
runtime/vm/compiler/ffi/unit_tests/int8x10/arm64_win.expect
Normal file
|
@ -0,0 +1,12 @@
|
|||
r0 int8
|
||||
r1 int8
|
||||
r2 int8
|
||||
r3 int8
|
||||
r4 int8
|
||||
r5 int8
|
||||
r6 int8
|
||||
r7 int8
|
||||
S+0 int8
|
||||
S+8 int8
|
||||
=>
|
||||
r0 int8
|
22
runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_win.expect
Normal file
22
runtime/vm/compiler/ffi/unit_tests/mixedx20/arm64_win.expect
Normal file
|
@ -0,0 +1,22 @@
|
|||
r0 int64
|
||||
v0 float
|
||||
r1 int64
|
||||
v1 double
|
||||
r2 int64
|
||||
v2 float
|
||||
r3 int64
|
||||
v3 double
|
||||
r4 int64
|
||||
v4 float
|
||||
r5 int64
|
||||
v5 double
|
||||
r6 int64
|
||||
v6 float
|
||||
r7 int64
|
||||
v7 double
|
||||
S+0 int64
|
||||
S+8 float
|
||||
S+16 int64
|
||||
S+24 double
|
||||
=>
|
||||
v0 double
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
=>
|
||||
M(r0 int64) Struct(size: 8)
|
|
@ -0,0 +1,5 @@
|
|||
r0 int32
|
||||
r1 int64
|
||||
r2 int64
|
||||
=>
|
||||
r0 int32
|
|
@ -0,0 +1,9 @@
|
|||
r0 int64
|
||||
v0 double
|
||||
r1 int32
|
||||
v1 double
|
||||
r2 int32
|
||||
r3 int64
|
||||
r4 int64
|
||||
=>
|
||||
r0 void
|
|
@ -0,0 +1,4 @@
|
|||
P(r0 int64) Struct(size: 128)
|
||||
r1 int32
|
||||
=>
|
||||
P(r8 int64) Struct(size: 128)
|
|
@ -0,0 +1,8 @@
|
|||
M(v0 float, v1 float, v2 float) Struct(size: 12)
|
||||
M(v3 float, v4 float, v5 float) Struct(size: 12)
|
||||
S+0 Struct(size: 12)
|
||||
S+16 Struct(size: 12)
|
||||
S+32 Struct(size: 12)
|
||||
S+48 Struct(size: 12)
|
||||
=>
|
||||
r0 int64
|
|
@ -0,0 +1,15 @@
|
|||
M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16)
|
||||
v4 float
|
||||
S+0 Struct(size: 16)
|
||||
S+16 Struct(size: 16)
|
||||
S+32 Struct(size: 16)
|
||||
S+48 Struct(size: 16)
|
||||
S+64 Struct(size: 16)
|
||||
S+80 Struct(size: 16)
|
||||
S+96 Struct(size: 16)
|
||||
S+112 Struct(size: 16)
|
||||
S+128 float
|
||||
r0 int8
|
||||
S+136 Struct(size: 16)
|
||||
=>
|
||||
M(v0 float, v1 float, v2 float, v3 float) Struct(size: 16)
|
|
@ -0,0 +1,12 @@
|
|||
M(r0 int64) Struct(size: 3)
|
||||
M(r1 int64) Struct(size: 3)
|
||||
M(r2 int64) Struct(size: 3)
|
||||
M(r3 int64) Struct(size: 3)
|
||||
M(r4 int64) Struct(size: 3)
|
||||
M(r5 int64) Struct(size: 3)
|
||||
M(r6 int64) Struct(size: 3)
|
||||
M(r7 int64) Struct(size: 3)
|
||||
M(S+0 int64) Struct(size: 3)
|
||||
M(S+8 int64) Struct(size: 3)
|
||||
=>
|
||||
M(r0 int64) Struct(size: 3)
|
|
@ -0,0 +1,12 @@
|
|||
M(r0 int64) Struct(size: 8)
|
||||
M(r1 int64) Struct(size: 8)
|
||||
M(r2 int64) Struct(size: 8)
|
||||
M(r3 int64) Struct(size: 8)
|
||||
M(r4 int64) Struct(size: 8)
|
||||
M(r5 int64) Struct(size: 8)
|
||||
M(r6 int64) Struct(size: 8)
|
||||
M(r7 int64) Struct(size: 8)
|
||||
S+0 Struct(size: 8)
|
||||
S+8 Struct(size: 8)
|
||||
=>
|
||||
M(r0 int64) Struct(size: 8)
|
|
@ -0,0 +1,3 @@
|
|||
M(r0 int64) Struct(size: 8)
|
||||
=>
|
||||
M(r0 int64) Struct(size: 8)
|
|
@ -0,0 +1,15 @@
|
|||
M(r0 int64, r1 int64) Struct(size: 9)
|
||||
M(r2 int64, r3 int64) Struct(size: 9)
|
||||
M(r4 int64, r5 int64) Struct(size: 9)
|
||||
M(r6 int64, r7 int64) Struct(size: 9)
|
||||
S+0 Struct(size: 9)
|
||||
S+16 Struct(size: 9)
|
||||
S+32 Struct(size: 9)
|
||||
S+48 Struct(size: 9)
|
||||
S+64 Struct(size: 9)
|
||||
S+80 Struct(size: 9)
|
||||
v0 double
|
||||
S+96 int32
|
||||
S+104 int32
|
||||
=>
|
||||
v0 double
|
|
@ -0,0 +1,17 @@
|
|||
Struct(size: 88, field alignment: 8, stack alignment: 8, members: {
|
||||
0: int8,
|
||||
2: int16,
|
||||
4: int32,
|
||||
8: int64,
|
||||
16: uint8,
|
||||
18: uint16,
|
||||
20: uint32,
|
||||
24: uint64,
|
||||
32: int64,
|
||||
40: double,
|
||||
48: float,
|
||||
56: int64,
|
||||
64: int64,
|
||||
72: int64,
|
||||
80: int8
|
||||
})
|
|
@ -0,0 +1,3 @@
|
|||
Struct(size: 16, field alignment: 4, stack alignment: 8, members: {
|
||||
0: Array(element type: Struct(size: 8, field alignment: 4, stack alignment: 8, members: {0: Array(element type: float, length: 2)}), length: 2)
|
||||
})
|
|
@ -0,0 +1,6 @@
|
|||
Struct(size: 16, field alignment: 4, stack alignment: 8, members: {
|
||||
0: float,
|
||||
4: float,
|
||||
8: float,
|
||||
12: float
|
||||
})
|
|
@ -0,0 +1,3 @@
|
|||
Struct(size: 8, field alignment: 1, stack alignment: 8, members: {
|
||||
0: Array(element type: int8, length: 8)
|
||||
})
|
|
@ -0,0 +1,12 @@
|
|||
Struct(size: 10, field alignment: 1, stack alignment: 8, members: {
|
||||
0: int8,
|
||||
1: int8,
|
||||
2: int8,
|
||||
3: int8,
|
||||
4: int8,
|
||||
5: int8,
|
||||
6: int8,
|
||||
7: int8,
|
||||
8: int8,
|
||||
9: int8
|
||||
})
|
|
@ -0,0 +1,13 @@
|
|||
M(v0 float, v1 float, v2 float, v3 float) Union(size: 16)
|
||||
M(v4 float, v5 float, v6 float, v7 float) Union(size: 16)
|
||||
S+0 Union(size: 16)
|
||||
S+16 Union(size: 16)
|
||||
S+32 Union(size: 16)
|
||||
S+48 Union(size: 16)
|
||||
S+64 Union(size: 16)
|
||||
S+80 Union(size: 16)
|
||||
S+96 Union(size: 16)
|
||||
r0 int8
|
||||
S+112 Union(size: 16)
|
||||
=>
|
||||
M(v0 float, v1 float, v2 float, v3 float) Union(size: 16)
|
|
@ -0,0 +1,12 @@
|
|||
M(r0 int64) Union(size: 5)
|
||||
M(r1 int64) Union(size: 5)
|
||||
M(r2 int64) Union(size: 5)
|
||||
M(r3 int64) Union(size: 5)
|
||||
M(r4 int64) Union(size: 5)
|
||||
M(r5 int64) Union(size: 5)
|
||||
M(r6 int64) Union(size: 5)
|
||||
M(r7 int64) Union(size: 5)
|
||||
M(S+0 int64) Union(size: 5)
|
||||
M(S+8 int64) Union(size: 5)
|
||||
=>
|
||||
M(r0 int64) Union(size: 5)
|
|
@ -0,0 +1,7 @@
|
|||
v0 double
|
||||
v1 double
|
||||
v2 double
|
||||
v3 double
|
||||
v4 double
|
||||
=>
|
||||
v0 double
|
|
@ -0,0 +1,7 @@
|
|||
r0 int64
|
||||
r1 int64
|
||||
r2 int64
|
||||
r3 int64
|
||||
r4 int64
|
||||
=>
|
||||
r0 int64
|
|
@ -0,0 +1,6 @@
|
|||
v0 double
|
||||
v1 double
|
||||
M(v2 double, v3 double, v4 double, v5 double) Struct(size: 32)
|
||||
v6 double
|
||||
=>
|
||||
v0 double
|
|
@ -0,0 +1,15 @@
|
|||
v0 double
|
||||
v1 double
|
||||
v2 double
|
||||
v3 double
|
||||
v4 double
|
||||
v5 double
|
||||
v6 double
|
||||
v7 double
|
||||
S+0 float
|
||||
S+8 Struct(size: 12)
|
||||
r0 int64
|
||||
r1 int32
|
||||
S+24 Struct(size: 12)
|
||||
=>
|
||||
v0 double
|
|
@ -0,0 +1,5 @@
|
|||
v0 double
|
||||
P(r0 int64) Struct(size: 20)
|
||||
v1 double
|
||||
=>
|
||||
v0 double
|
Loading…
Reference in a new issue