[vm] Add an ABI for Fuchsia RISC-V.
https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/0211_fuchsia_on_risc-v TEST=./tools/build.py -mrelease -asimriscv64 gen_snapshot_fuchsia gen_snapshot_product_fuchsia CoreLibraryReviewExempt: VM-only Change-Id: Ie62addda6c15a5b44e814c49b543319aef4fc5e9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281869 Commit-Queue: Ryan Macnak <rmacnak@google.com> Reviewed-by: Daco Harkes <dacoharkes@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
committed by
Commit Queue
parent
bbc5ce328d
commit
2cc96bfa0b
@@ -6,9 +6,7 @@ import("//build/fuchsia/config/clang/clang.gni")
|
||||
|
||||
# This adds the runtime deps for C++ for usage when cross compiling.
|
||||
group("c++-runtime-deps") {
|
||||
data_deps = [
|
||||
":clang-runtime-libs",
|
||||
]
|
||||
data_deps = [ ":clang-runtime-libs" ]
|
||||
}
|
||||
|
||||
copy("clang-runtime-libs") {
|
||||
@@ -16,6 +14,10 @@ copy("clang-runtime-libs") {
|
||||
arch = "aarch64"
|
||||
} else if (target_cpu == "x64") {
|
||||
arch = "x86_64"
|
||||
} else if (target_cpu == "riscv64") {
|
||||
arch = "riscv64"
|
||||
} else {
|
||||
assert(false, "Unsupported target_cpu: $target_cpu")
|
||||
}
|
||||
vendor = "unknown"
|
||||
|
||||
@@ -25,7 +27,5 @@ copy("clang-runtime-libs") {
|
||||
"${clang_base_path}/lib/${arch}-${vendor}-${sys}/libc++abi.so.1.0",
|
||||
"${clang_base_path}/lib/${arch}-${vendor}-${sys}/libunwind.so.1.0",
|
||||
]
|
||||
outputs = [
|
||||
"${root_out_dir}/lib/{{source_name_part}}",
|
||||
]
|
||||
outputs = [ "${root_out_dir}/lib/{{source_name_part}}" ]
|
||||
}
|
||||
|
||||
@@ -17,8 +17,6 @@ if (use_goma) {
|
||||
}
|
||||
|
||||
toolchain("fuchsia") {
|
||||
assert(target_cpu == "x64" || target_cpu == "arm64",
|
||||
"We currently only support 'x64' and 'arm64' for fuchsia.")
|
||||
toolchain_bin =
|
||||
rebase_path("//buildtools/$host_os-x64/clang/bin", root_out_dir)
|
||||
fuchsia_sdk = rebase_path("//third_party/fuchsia/sdk/$host_os", root_out_dir)
|
||||
@@ -34,9 +32,14 @@ toolchain("fuchsia") {
|
||||
nm = "${toolchain_bin}/llvm-nm"
|
||||
strip = "${toolchain_bin}/llvm-strip"
|
||||
|
||||
target_triple_flags = "--target=x86_64-fuchsia"
|
||||
if (target_cpu == "arm64") {
|
||||
if (target_cpu == "x64") {
|
||||
target_triple_flags = "--target=x86_64-fuchsia"
|
||||
} else if (target_cpu == "arm64") {
|
||||
target_triple_flags = "--target=aarch64-fuchsia"
|
||||
} else if (target_cpu == "riscv64") {
|
||||
target_triple_flags = "--target=riscv64-fuchsia"
|
||||
} else {
|
||||
assert(false, "Unsupported target_cpu: $target_cpu")
|
||||
}
|
||||
|
||||
sysroot_flags = "--sysroot ${fuchsia_sdk}/arch/${target_cpu}/sysroot"
|
||||
|
||||
@@ -66,16 +66,16 @@ constants {
|
||||
#C7 = core::pragma {name:#C1, options:#C6}
|
||||
#C8 = ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -59,16 +59,16 @@ constants {
|
||||
#C7 = core::pragma {name:#C1, options:#C6}
|
||||
#C8 = ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -56,11 +56,11 @@ constants {
|
||||
#C6 = dart.core::pragma {name:#C1, options:#C5}
|
||||
#C7 = dart.ffi::Uint32 {}
|
||||
#C8 = 0
|
||||
#C9 = <dart.core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C9 = <dart.core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C10 = "vm:prefer-inline"
|
||||
#C11 = dart.core::pragma {name:#C10, options:#C4}
|
||||
#C12 = 4
|
||||
#C13 = <dart.core::int*>[#C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C13 = <dart.core::int*>[#C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C14 = TypeLiteralConstant(lib::Y)
|
||||
#C15 = <dart.core::Type>[#C14]
|
||||
#C16 = dart.ffi::_FfiStructLayout {fieldTypes:#C15, packing:#C4}
|
||||
|
||||
@@ -56,11 +56,11 @@ constants {
|
||||
#C6 = dart.core::pragma {name:#C1, options:#C5}
|
||||
#C7 = dart.ffi::Uint32 {}
|
||||
#C8 = 0
|
||||
#C9 = <dart.core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C9 = <dart.core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C10 = "vm:prefer-inline"
|
||||
#C11 = dart.core::pragma {name:#C10, options:#C4}
|
||||
#C12 = 4
|
||||
#C13 = <dart.core::int*>[#C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C13 = <dart.core::int*>[#C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C14 = TypeLiteralConstant(lib::Y)
|
||||
#C15 = <dart.core::Type>[#C14]
|
||||
#C16 = dart.ffi::_FfiStructLayout {fieldTypes:#C15, packing:#C4}
|
||||
|
||||
@@ -62,7 +62,7 @@ constants {
|
||||
#C5 = dart.ffi::_FfiStructLayout {fieldTypes:#C3, packing:#C4}
|
||||
#C6 = dart.core::pragma {name:#C1, options:#C5}
|
||||
#C7 = 0
|
||||
#C8 = <dart.core::int*>[#C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7]
|
||||
#C8 = <dart.core::int*>[#C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7]
|
||||
#C9 = "vm:prefer-inline"
|
||||
#C10 = dart.core::pragma {name:#C9, options:#C4}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ constants {
|
||||
#C5 = dart.ffi::_FfiStructLayout {fieldTypes:#C3, packing:#C4}
|
||||
#C6 = dart.core::pragma {name:#C1, options:#C5}
|
||||
#C7 = 0
|
||||
#C8 = <dart.core::int*>[#C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7]
|
||||
#C8 = <dart.core::int*>[#C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7]
|
||||
#C9 = "vm:prefer-inline"
|
||||
#C10 = dart.core::pragma {name:#C9, options:#C4}
|
||||
}
|
||||
|
||||
@@ -53,16 +53,16 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = dart.core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -57,16 +57,16 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = dart.core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -54,16 +54,16 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = dart.core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -101,19 +101,19 @@ constants {
|
||||
#C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = 0
|
||||
#C9 = <dart.core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C9 = <dart.core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C10 = 4
|
||||
#C11 = 8
|
||||
#C12 = <dart.core::int*>[#C10, #C11, #C10, #C11, #C11, #C11, #C10, #C11, #C11, #C10, #C11, #C10, #C11, #C10, #C11, #C11, #C11, #C11, #C10, #C11]
|
||||
#C12 = <dart.core::int*>[#C10, #C11, #C10, #C11, #C11, #C11, #C11, #C10, #C11, #C11, #C10, #C11, #C10, #C11, #C10, #C11, #C11, #C11, #C11, #C10, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <dart.core::int*>[#C11, #C13, #C11, #C13, #C13, #C13, #C11, #C13, #C13, #C11, #C13, #C11, #C13, #C11, #C13, #C13, #C13, #C13, #C11, #C13]
|
||||
#C14 = <dart.core::int*>[#C11, #C13, #C11, #C13, #C13, #C13, #C13, #C11, #C13, #C13, #C11, #C13, #C11, #C13, #C11, #C13, #C13, #C13, #C13, #C11, #C13]
|
||||
#C15 = 12
|
||||
#C16 = 24
|
||||
#C17 = <dart.core::int*>[#C15, #C16, #C15, #C16, #C16, #C16, #C15, #C16, #C16, #C15, #C16, #C15, #C16, #C15, #C16, #C16, #C16, #C16, #C15, #C16]
|
||||
#C17 = <dart.core::int*>[#C15, #C16, #C15, #C16, #C16, #C16, #C16, #C15, #C16, #C16, #C15, #C16, #C15, #C16, #C15, #C16, #C16, #C16, #C16, #C15, #C16]
|
||||
#C18 = "vm:prefer-inline"
|
||||
#C19 = dart.core::pragma {name:#C18, options:#C5}
|
||||
#C20 = 48
|
||||
#C21 = <dart.core::int*>[#C16, #C20, #C16, #C20, #C20, #C20, #C16, #C20, #C20, #C16, #C20, #C16, #C20, #C16, #C20, #C20, #C20, #C20, #C16, #C20]
|
||||
#C21 = <dart.core::int*>[#C16, #C20, #C16, #C20, #C20, #C20, #C20, #C16, #C20, #C20, #C16, #C20, #C16, #C20, #C16, #C20, #C20, #C20, #C20, #C16, #C20]
|
||||
#C22 = <dart.core::Type>[#C2, #C2, #C2]
|
||||
#C23 = dart.ffi::_FfiStructLayout {fieldTypes:#C22, packing:#C5}
|
||||
#C24 = dart.core::pragma {name:#C1, options:#C23}
|
||||
|
||||
@@ -101,19 +101,19 @@ constants {
|
||||
#C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = 0
|
||||
#C9 = <dart.core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C9 = <dart.core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C10 = 4
|
||||
#C11 = 8
|
||||
#C12 = <dart.core::int*>[#C10, #C11, #C10, #C11, #C11, #C11, #C10, #C11, #C11, #C10, #C11, #C10, #C11, #C10, #C11, #C11, #C11, #C11, #C10, #C11]
|
||||
#C12 = <dart.core::int*>[#C10, #C11, #C10, #C11, #C11, #C11, #C11, #C10, #C11, #C11, #C10, #C11, #C10, #C11, #C10, #C11, #C11, #C11, #C11, #C10, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <dart.core::int*>[#C11, #C13, #C11, #C13, #C13, #C13, #C11, #C13, #C13, #C11, #C13, #C11, #C13, #C11, #C13, #C13, #C13, #C13, #C11, #C13]
|
||||
#C14 = <dart.core::int*>[#C11, #C13, #C11, #C13, #C13, #C13, #C13, #C11, #C13, #C13, #C11, #C13, #C11, #C13, #C11, #C13, #C13, #C13, #C13, #C11, #C13]
|
||||
#C15 = 12
|
||||
#C16 = 24
|
||||
#C17 = <dart.core::int*>[#C15, #C16, #C15, #C16, #C16, #C16, #C15, #C16, #C16, #C15, #C16, #C15, #C16, #C15, #C16, #C16, #C16, #C16, #C15, #C16]
|
||||
#C17 = <dart.core::int*>[#C15, #C16, #C15, #C16, #C16, #C16, #C16, #C15, #C16, #C16, #C15, #C16, #C15, #C16, #C15, #C16, #C16, #C16, #C16, #C15, #C16]
|
||||
#C18 = "vm:prefer-inline"
|
||||
#C19 = dart.core::pragma {name:#C18, options:#C5}
|
||||
#C20 = 48
|
||||
#C21 = <dart.core::int*>[#C16, #C20, #C16, #C20, #C20, #C20, #C16, #C20, #C20, #C16, #C20, #C16, #C20, #C16, #C20, #C20, #C20, #C20, #C16, #C20]
|
||||
#C21 = <dart.core::int*>[#C16, #C20, #C16, #C20, #C20, #C20, #C20, #C16, #C20, #C20, #C16, #C20, #C16, #C20, #C16, #C20, #C20, #C20, #C20, #C16, #C20]
|
||||
#C22 = <dart.core::Type>[#C2, #C2, #C2]
|
||||
#C23 = dart.ffi::_FfiStructLayout {fieldTypes:#C22, packing:#C5}
|
||||
#C24 = dart.core::pragma {name:#C1, options:#C23}
|
||||
|
||||
@@ -53,16 +53,16 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = dart.core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -54,16 +54,16 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = dart.core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -55,16 +55,16 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <dart.core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = dart.core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -82,28 +82,28 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Uint8 {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 1
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = dart.ffi::Uint64 {}
|
||||
#C14 = 8
|
||||
#C15 = 4
|
||||
#C16 = <dart.core::int*>[#C14, #C14, #C15, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14]
|
||||
#C16 = <dart.core::int*>[#C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14]
|
||||
#C17 = "vm:prefer-inline"
|
||||
#C18 = dart.core::pragma {name:#C17, options:#C5}
|
||||
#C19 = 16
|
||||
#C20 = 12
|
||||
#C21 = <dart.core::int*>[#C19, #C19, #C20, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19]
|
||||
#C21 = <dart.core::int*>[#C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19]
|
||||
#C22 = TypeLiteralConstant(lib::Y)
|
||||
#C23 = <dart.core::Type>[#C22, #C22, #C2]
|
||||
#C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
|
||||
#C25 = dart.core::pragma {name:#C1, options:#C24}
|
||||
#C26 = 32
|
||||
#C27 = 24
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C29 = 40
|
||||
#C30 = 28
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -82,28 +82,28 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Uint8 {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = dart.ffi::Uint64 {}
|
||||
#C12 = 8
|
||||
#C13 = 4
|
||||
#C14 = <dart.core::int*>[#C12, #C12, #C13, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C14 = <dart.core::int*>[#C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C15 = 16
|
||||
#C16 = 12
|
||||
#C17 = <dart.core::int*>[#C15, #C15, #C16, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C15, #C15, #C15, #C15]
|
||||
#C17 = <dart.core::int*>[#C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C15, #C15, #C15, #C15]
|
||||
#C18 = "vm:prefer-inline"
|
||||
#C19 = dart.core::pragma {name:#C18, options:#C5}
|
||||
#C20 = 24
|
||||
#C21 = <dart.core::int*>[#C20, #C20, #C15, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C20, #C20, #C20, #C20]
|
||||
#C21 = <dart.core::int*>[#C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C20, #C20, #C20, #C20]
|
||||
#C22 = TypeLiteralConstant(lib::Y)
|
||||
#C23 = <dart.core::Type>[#C22, #C22, #C2]
|
||||
#C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
|
||||
#C25 = dart.core::pragma {name:#C1, options:#C24}
|
||||
#C26 = 48
|
||||
#C27 = 32
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C29 = 56
|
||||
#C30 = 36
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -82,28 +82,28 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Uint8 {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 1
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = dart.ffi::Uint64 {}
|
||||
#C14 = 8
|
||||
#C15 = 4
|
||||
#C16 = <dart.core::int*>[#C14, #C14, #C15, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14]
|
||||
#C16 = <dart.core::int*>[#C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14]
|
||||
#C17 = "vm:prefer-inline"
|
||||
#C18 = dart.core::pragma {name:#C17, options:#C5}
|
||||
#C19 = 16
|
||||
#C20 = 12
|
||||
#C21 = <dart.core::int*>[#C19, #C19, #C20, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19]
|
||||
#C21 = <dart.core::int*>[#C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19]
|
||||
#C22 = TypeLiteralConstant(lib::Y)
|
||||
#C23 = <dart.core::Type>[#C22, #C22, #C2]
|
||||
#C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
|
||||
#C25 = dart.core::pragma {name:#C1, options:#C24}
|
||||
#C26 = 32
|
||||
#C27 = 24
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C29 = 40
|
||||
#C30 = 28
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -82,28 +82,28 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Uint8 {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = dart.ffi::Uint64 {}
|
||||
#C12 = 8
|
||||
#C13 = 4
|
||||
#C14 = <dart.core::int*>[#C12, #C12, #C13, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C14 = <dart.core::int*>[#C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C15 = 16
|
||||
#C16 = 12
|
||||
#C17 = <dart.core::int*>[#C15, #C15, #C16, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C15, #C15, #C15, #C15]
|
||||
#C17 = <dart.core::int*>[#C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C15, #C15, #C15, #C15]
|
||||
#C18 = "vm:prefer-inline"
|
||||
#C19 = dart.core::pragma {name:#C18, options:#C5}
|
||||
#C20 = 24
|
||||
#C21 = <dart.core::int*>[#C20, #C20, #C15, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C20, #C20, #C20, #C20]
|
||||
#C21 = <dart.core::int*>[#C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C20, #C20, #C20, #C20]
|
||||
#C22 = TypeLiteralConstant(lib::Y)
|
||||
#C23 = <dart.core::Type>[#C22, #C22, #C2]
|
||||
#C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
|
||||
#C25 = dart.core::pragma {name:#C1, options:#C24}
|
||||
#C26 = 48
|
||||
#C27 = 32
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C29 = 56
|
||||
#C30 = 36
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -274,28 +274,28 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Uint8 {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 1
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <dart.core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = dart.ffi::Uint64 {}
|
||||
#C14 = 8
|
||||
#C15 = 4
|
||||
#C16 = <dart.core::int*>[#C14, #C14, #C15, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14]
|
||||
#C16 = <dart.core::int*>[#C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C15, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14]
|
||||
#C17 = "vm:prefer-inline"
|
||||
#C18 = dart.core::pragma {name:#C17, options:#C5}
|
||||
#C19 = 16
|
||||
#C20 = 12
|
||||
#C21 = <dart.core::int*>[#C19, #C19, #C20, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19]
|
||||
#C21 = <dart.core::int*>[#C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C20, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19]
|
||||
#C22 = TypeLiteralConstant(lib::Y)
|
||||
#C23 = <dart.core::Type>[#C22, #C22, #C2]
|
||||
#C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
|
||||
#C25 = dart.core::pragma {name:#C1, options:#C24}
|
||||
#C26 = 32
|
||||
#C27 = 24
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C29 = 40
|
||||
#C30 = 28
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -274,28 +274,28 @@ constants {
|
||||
#C7 = dart.core::pragma {name:#C1, options:#C6}
|
||||
#C8 = dart.ffi::Uint8 {}
|
||||
#C9 = 0
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <dart.core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = dart.ffi::Uint64 {}
|
||||
#C12 = 8
|
||||
#C13 = 4
|
||||
#C14 = <dart.core::int*>[#C12, #C12, #C13, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C14 = <dart.core::int*>[#C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12]
|
||||
#C15 = 16
|
||||
#C16 = 12
|
||||
#C17 = <dart.core::int*>[#C15, #C15, #C16, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C15, #C15, #C15, #C15]
|
||||
#C17 = <dart.core::int*>[#C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C16, #C15, #C15, #C15, #C15, #C15, #C15, #C15, #C15]
|
||||
#C18 = "vm:prefer-inline"
|
||||
#C19 = dart.core::pragma {name:#C18, options:#C5}
|
||||
#C20 = 24
|
||||
#C21 = <dart.core::int*>[#C20, #C20, #C15, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C20, #C20, #C20, #C20]
|
||||
#C21 = <dart.core::int*>[#C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C15, #C20, #C20, #C20, #C20, #C20, #C20, #C20, #C20]
|
||||
#C22 = TypeLiteralConstant(lib::Y)
|
||||
#C23 = <dart.core::Type>[#C22, #C22, #C2]
|
||||
#C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
|
||||
#C25 = dart.core::pragma {name:#C1, options:#C24}
|
||||
#C26 = 48
|
||||
#C27 = 32
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C28 = <dart.core::int*>[#C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C27, #C26, #C26, #C26, #C26, #C26, #C26, #C26, #C26]
|
||||
#C29 = 56
|
||||
#C30 = 36
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -55,12 +55,12 @@ constants {
|
||||
#C5 = dart.ffi::_FfiStructLayout {fieldTypes:#C3, packing:#C4}
|
||||
#C6 = dart.core::pragma {name:#C1, options:#C5}
|
||||
#C7 = 0
|
||||
#C8 = <dart.core::int*>[#C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7]
|
||||
#C8 = <dart.core::int*>[#C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7]
|
||||
#C9 = "vm:prefer-inline"
|
||||
#C10 = dart.core::pragma {name:#C9, options:#C4}
|
||||
#C11 = 4
|
||||
#C12 = 8
|
||||
#C13 = <dart.core::int*>[#C11, #C12, #C11, #C12, #C12, #C12, #C11, #C12, #C12, #C11, #C12, #C11, #C12, #C11, #C12, #C12, #C12, #C12, #C11, #C12]
|
||||
#C13 = <dart.core::int*>[#C11, #C12, #C11, #C12, #C12, #C12, #C12, #C11, #C12, #C12, #C11, #C12, #C11, #C12, #C11, #C12, #C12, #C12, #C12, #C11, #C12]
|
||||
#C14 = TypeLiteralConstant(lib::COMObject)
|
||||
#C15 = <dart.core::Type>[#C14]
|
||||
#C16 = dart.ffi::_FfiStructLayout {fieldTypes:#C15, packing:#C4}
|
||||
|
||||
@@ -55,12 +55,12 @@ constants {
|
||||
#C5 = dart.ffi::_FfiStructLayout {fieldTypes:#C3, packing:#C4}
|
||||
#C6 = dart.core::pragma {name:#C1, options:#C5}
|
||||
#C7 = 0
|
||||
#C8 = <dart.core::int*>[#C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7]
|
||||
#C8 = <dart.core::int*>[#C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7, #C7]
|
||||
#C9 = "vm:prefer-inline"
|
||||
#C10 = dart.core::pragma {name:#C9, options:#C4}
|
||||
#C11 = 4
|
||||
#C12 = 8
|
||||
#C13 = <dart.core::int*>[#C11, #C12, #C11, #C12, #C12, #C12, #C11, #C12, #C12, #C11, #C12, #C11, #C12, #C11, #C12, #C12, #C12, #C12, #C11, #C12]
|
||||
#C13 = <dart.core::int*>[#C11, #C12, #C11, #C12, #C12, #C12, #C12, #C11, #C12, #C12, #C11, #C12, #C11, #C12, #C11, #C12, #C12, #C12, #C12, #C11, #C12]
|
||||
#C14 = TypeLiteralConstant(lib::COMObject)
|
||||
#C15 = <dart.core::Type>[#C14]
|
||||
#C16 = dart.ffi::_FfiStructLayout {fieldTypes:#C15, packing:#C4}
|
||||
|
||||
@@ -50,16 +50,16 @@ constants {
|
||||
#C7 = core::pragma {name:#C1, options:#C6}
|
||||
#C8 = ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -50,16 +50,16 @@ constants {
|
||||
#C7 = core::pragma {name:#C1, options:#C6}
|
||||
#C8 = ffi::Double {}
|
||||
#C9 = 0
|
||||
#C10 = <core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C10 = <core::int*>[#C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9, #C9]
|
||||
#C11 = 8
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 16
|
||||
#C14 = <core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C14 = <core::int*>[#C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = core::pragma {name:#C15, options:#C5}
|
||||
#C17 = 24
|
||||
#C18 = 20
|
||||
#C19 = <core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
#C19 = <core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -42,8 +42,8 @@ constants {
|
||||
#C8 = core::pragma {name:#C1, options:#C7}
|
||||
#C9 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C3, dimension2:#C6, dimension3:#C6, dimension4:#C6, dimension5:#C6, dimensions:#C6}
|
||||
#C10 = 0
|
||||
#C11 = <core::int*>[#C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10]
|
||||
#C12 = <core::int*>[#C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3]
|
||||
#C11 = <core::int*>[#C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10]
|
||||
#C12 = <core::int*>[#C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3]
|
||||
#C13 = <core::int*>[]
|
||||
#C14 = "vm:prefer-inline"
|
||||
#C15 = core::pragma {name:#C14, options:#C6}
|
||||
|
||||
@@ -42,8 +42,8 @@ constants {
|
||||
#C8 = core::pragma {name:#C1, options:#C7}
|
||||
#C9 = ffi::_ArraySize<ffi::NativeType*> {dimension1:#C3, dimension2:#C6, dimension3:#C6, dimension4:#C6, dimension5:#C6, dimensions:#C6}
|
||||
#C10 = 0
|
||||
#C11 = <core::int*>[#C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10]
|
||||
#C12 = <core::int*>[#C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3]
|
||||
#C11 = <core::int*>[#C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10]
|
||||
#C12 = <core::int*>[#C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3]
|
||||
#C13 = <core::int*>[]
|
||||
#C14 = "vm:prefer-inline"
|
||||
#C15 = core::pragma {name:#C14, options:#C6}
|
||||
|
||||
+2
-2
@@ -67,8 +67,8 @@ constants {
|
||||
#C9 = 2
|
||||
#C10 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C9, dimension2:#C9, dimension3:#C9, dimension4:#C6, dimension5:#C6, dimensions:#C6}
|
||||
#C11 = 0
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = <core::int*>[#C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3]
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = <core::int*>[#C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3]
|
||||
#C14 = <core::int*>[#C9, #C9]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = core::pragma {name:#C15, options:#C6}
|
||||
|
||||
+2
-2
@@ -67,8 +67,8 @@ constants {
|
||||
#C9 = 2
|
||||
#C10 = ffi::_ArraySize<ffi::NativeType*> {dimension1:#C9, dimension2:#C9, dimension3:#C9, dimension4:#C6, dimension5:#C6, dimensions:#C6}
|
||||
#C11 = 0
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = <core::int*>[#C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3]
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = <core::int*>[#C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3, #C3]
|
||||
#C14 = <core::int*>[#C9, #C9]
|
||||
#C15 = "vm:prefer-inline"
|
||||
#C16 = core::pragma {name:#C15, options:#C6}
|
||||
|
||||
@@ -69,6 +69,9 @@ class Abi {
|
||||
/// The application binary interface for Fuchsia on the X64 architecture.
|
||||
static const fuchsiaX64 = _fuchsiaX64;
|
||||
|
||||
/// The application binary interface for Fuchsia on the Riscv64 architecture.
|
||||
static const fuchsiaRiscv64 = _fuchsiaRiscv64;
|
||||
|
||||
/// The application binary interface for iOS on the Arm architecture.
|
||||
static const iosArm = _iosArm;
|
||||
|
||||
@@ -129,6 +132,7 @@ class Abi {
|
||||
androidX64,
|
||||
fuchsiaArm64,
|
||||
fuchsiaX64,
|
||||
fuchsiaRiscv64,
|
||||
iosArm,
|
||||
iosArm64,
|
||||
iosX64,
|
||||
@@ -174,6 +178,7 @@ class Abi {
|
||||
static const _androidX64 = Abi._(_Architecture.x64, _OS.android);
|
||||
static const _fuchsiaArm64 = Abi._(_Architecture.arm64, _OS.fuchsia);
|
||||
static const _fuchsiaX64 = Abi._(_Architecture.x64, _OS.fuchsia);
|
||||
static const _fuchsiaRiscv64 = Abi._(_Architecture.riscv64, _OS.fuchsia);
|
||||
static const _iosArm = Abi._(_Architecture.arm, _OS.ios);
|
||||
static const _iosArm64 = Abi._(_Architecture.arm64, _OS.ios);
|
||||
static const _iosX64 = Abi._(_Architecture.x64, _OS.ios);
|
||||
@@ -198,6 +203,7 @@ const Map<Abi, String> abiNames = {
|
||||
Abi.androidX64: 'androidX64',
|
||||
Abi.fuchsiaArm64: 'fuchsiaArm64',
|
||||
Abi.fuchsiaX64: 'fuchsiaX64',
|
||||
Abi.fuchsiaRiscv64: 'fuchsiaRiscv64',
|
||||
Abi.iosArm: 'iosArm',
|
||||
Abi.iosArm64: 'iosArm64',
|
||||
Abi.iosX64: 'iosX64',
|
||||
@@ -239,6 +245,7 @@ const Map<Abi, Map<NativeType, int>> nonSizeAlignment = {
|
||||
Abi.androidX64: _wordSize64,
|
||||
Abi.fuchsiaArm64: _wordSize64,
|
||||
Abi.fuchsiaX64: _wordSize64,
|
||||
Abi.fuchsiaRiscv64: _wordSize64,
|
||||
Abi.iosArm64: _wordSize64,
|
||||
Abi.iosX64: _wordSize64,
|
||||
Abi.linuxArm64: _wordSize64,
|
||||
|
||||
@@ -57,15 +57,21 @@ abstract class NativeTypeCfe {
|
||||
// Unsupported mapping.
|
||||
return AbiSpecificNativeTypeCfe({}, clazz);
|
||||
}
|
||||
final mapping =
|
||||
Map.fromEntries(mappingConstant.entries.map((e) => MapEntry(
|
||||
transformer.constantAbis[e.key]!,
|
||||
NativeTypeCfe(
|
||||
transformer,
|
||||
(e.value as InstanceConstant).classNode.getThisType(
|
||||
transformer.coreTypes, Nullability.nonNullable),
|
||||
alreadyInAbiSpecificType: true,
|
||||
))));
|
||||
final mapping = Map.fromEntries(mappingConstant.entries.map((e) {
|
||||
var type = transformer.constantAbis[e.key];
|
||||
if (type == null) {
|
||||
throw "Type ${clazz.name} has no mapping for ABI ${e.key}";
|
||||
}
|
||||
return MapEntry(
|
||||
type,
|
||||
NativeTypeCfe(
|
||||
transformer,
|
||||
(e.value as InstanceConstant)
|
||||
.classNode
|
||||
.getThisType(transformer.coreTypes, Nullability.nonNullable),
|
||||
alreadyInAbiSpecificType: true,
|
||||
));
|
||||
}));
|
||||
for (final value in mapping.values) {
|
||||
if (value is! PrimitiveNativeTypeCfe ||
|
||||
!nativeIntTypesFixedSize.contains(value.nativeType)) {
|
||||
|
||||
@@ -9,8 +9,9 @@ import 'dart:ffi';
|
||||
Abi.androidArm64: Uint32(),
|
||||
Abi.androidIA32: Uint32(),
|
||||
Abi.androidX64: Uint32(),
|
||||
Abi.fuchsiaArm64: Uint64(),
|
||||
Abi.fuchsiaArm64: Uint32(),
|
||||
Abi.fuchsiaX64: Uint32(),
|
||||
Abi.fuchsiaRiscv64: Uint32(),
|
||||
Abi.iosArm: Uint32(),
|
||||
Abi.iosArm64: Uint32(),
|
||||
Abi.iosX64: Uint32(),
|
||||
|
||||
@@ -7,26 +7,26 @@ import "dart:_internal" as _in;
|
||||
|
||||
import "dart:ffi";
|
||||
|
||||
@#C8
|
||||
@#C7
|
||||
abstract class WChar extends ffi::AbiSpecificInteger /*hasConstConstructor*/ {
|
||||
[@vm.unboxing-info.metadata=()->i] @#C11
|
||||
[@vm.unboxing-info.metadata=()->i] @#C10
|
||||
static get #sizeOf() → core::int*
|
||||
return #C15.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
return #C13.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
}
|
||||
@#C20
|
||||
@#C18
|
||||
class WCharStruct extends ffi::Struct {
|
||||
constructor #fromTypedDataBase([@vm.inferred-type.metadata=dart.ffi::Pointer] synthesized core::Object #typedDataBase) → self::WCharStruct
|
||||
: super ffi::Struct::_fromTypedDataBase(#typedDataBase)
|
||||
;
|
||||
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] [@vm.unboxing-info.metadata=()->i] get a0() → core::int
|
||||
return [@vm.inferred-type.metadata=int] ffi::_loadAbiSpecificInt<self::WChar>([@vm.direct-call.metadata=dart.ffi::_Compound._typedDataBase] [@vm.inferred-type.metadata=dart.ffi::Pointer] this.{ffi::_Compound::_typedDataBase}{core::Object}, #C22.{core::List::[]}(ffi::_abi()){(core::int) → core::int*});
|
||||
return [@vm.inferred-type.metadata=int] ffi::_loadAbiSpecificInt<self::WChar>([@vm.direct-call.metadata=dart.ffi::_Compound._typedDataBase] [@vm.inferred-type.metadata=dart.ffi::Pointer] this.{ffi::_Compound::_typedDataBase}{core::Object}, #C20.{core::List::[]}(ffi::_abi()){(core::int) → core::int*});
|
||||
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] [@vm.unboxing-info.metadata=(i)->i] set a0([@vm.inferred-type.metadata=dart.core::_Smi] core::int #externalFieldValue) → void
|
||||
return [@vm.inferred-type.metadata=int] ffi::_storeAbiSpecificInt<self::WChar>([@vm.direct-call.metadata=dart.ffi::_Compound._typedDataBase] [@vm.inferred-type.metadata=dart.ffi::Pointer] this.{ffi::_Compound::_typedDataBase}{core::Object}, #C22.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}, #externalFieldValue);
|
||||
[@vm.unboxing-info.metadata=()->i] @#C11
|
||||
return [@vm.inferred-type.metadata=int] ffi::_storeAbiSpecificInt<self::WChar>([@vm.direct-call.metadata=dart.ffi::_Compound._typedDataBase] [@vm.inferred-type.metadata=dart.ffi::Pointer] this.{ffi::_Compound::_typedDataBase}{core::Object}, #C20.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}, #externalFieldValue);
|
||||
[@vm.unboxing-info.metadata=()->i] @#C10
|
||||
static get #sizeOf() → core::int*
|
||||
return #C24.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
return #C22.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
}
|
||||
@#C29
|
||||
@#C27
|
||||
class WCharArrayStruct extends ffi::Struct {
|
||||
constructor #fromTypedDataBase([@vm.inferred-type.metadata=dart.ffi::Pointer] synthesized core::Object #typedDataBase) → self::WCharArrayStruct
|
||||
: super ffi::Struct::_fromTypedDataBase(#typedDataBase)
|
||||
@@ -34,11 +34,11 @@ class WCharArrayStruct extends ffi::Struct {
|
||||
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:3] get a0() → ffi::Array<self::WChar>
|
||||
return new ffi::Array::_<self::WChar>( block {
|
||||
synthesized core::Object #typedDataBase = [@vm.direct-call.metadata=dart.ffi::_Compound._typedDataBase] [@vm.inferred-type.metadata=dart.ffi::Pointer] this.{ffi::_Compound::_typedDataBase}{core::Object};
|
||||
synthesized core::int #offset = #C22.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
} =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} [@vm.inferred-type.metadata=dart.ffi::Pointer] ffi::_fromAddress<self::WChar>([@vm.direct-call.metadata=dart.core::_IntegerImplementation.+] [@vm.inferred-type.metadata=int (skip check)] [@vm.direct-call.metadata=dart.ffi::Pointer.address] [@vm.inferred-type.metadata=int] #typedDataBase.{ffi::Pointer::address}{core::int}.{core::num::+}(#offset){(core::num) → core::num}) : let synthesized typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in throw "Attempt to execute code removed by Dart AOT compiler (TFA)", #C25, #C30);
|
||||
[@vm.unboxing-info.metadata=()->i] @#C11
|
||||
synthesized core::int #offset = #C20.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
} =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} [@vm.inferred-type.metadata=dart.ffi::Pointer] ffi::_fromAddress<self::WChar>([@vm.direct-call.metadata=dart.core::_IntegerImplementation.+] [@vm.inferred-type.metadata=int (skip check)] [@vm.direct-call.metadata=dart.ffi::Pointer.address] [@vm.inferred-type.metadata=int] #typedDataBase.{ffi::Pointer::address}{core::int}.{core::num::+}(#offset){(core::num) → core::num}) : let synthesized typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in throw "Attempt to execute code removed by Dart AOT compiler (TFA)", #C23, #C28);
|
||||
[@vm.unboxing-info.metadata=()->i] @#C10
|
||||
static get #sizeOf() → core::int*
|
||||
return #C34.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
return #C31.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
}
|
||||
class _DummyAllocator extends core::Object implements ffi::Allocator /*hasConstConstructor*/ {
|
||||
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:4,getterSelectorId:5] method allocate<T extends ffi::NativeType>() → ffi::Pointer<self::_DummyAllocator::allocate::T> {
|
||||
@@ -58,29 +58,29 @@ static method testSizeOf() → void {
|
||||
core::print(size);
|
||||
}
|
||||
static method testStoreLoad() → void {
|
||||
final ffi::Pointer<self::WChar> p = let final core::int* #t1 = [@vm.inferred-type.metadata=dart.core::_Smi] self::WChar::#sizeOf in [@vm.direct-call.metadata=#lib::_DummyAllocator.allocate] [@vm.inferred-type.metadata=dart.ffi::Pointer (skip check)] #C35.{ffi::Allocator::allocate}<self::WChar>(){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WChar>};
|
||||
ffi::_storeAbiSpecificInt<self::WChar>(p, #C21, 10);
|
||||
core::print([@vm.inferred-type.metadata=int] ffi::_loadAbiSpecificInt<self::WChar>(p, #C21));
|
||||
[@vm.direct-call.metadata=#lib::_DummyAllocator.free] [@vm.inferred-type.metadata=!? (skip check)] #C35.{self::_DummyAllocator::free}(){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
final ffi::Pointer<self::WChar> p = let final core::int* #t1 = [@vm.inferred-type.metadata=dart.core::_Smi] self::WChar::#sizeOf in [@vm.direct-call.metadata=#lib::_DummyAllocator.allocate] [@vm.inferred-type.metadata=dart.ffi::Pointer (skip check)] #C32.{ffi::Allocator::allocate}<self::WChar>(){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WChar>};
|
||||
ffi::_storeAbiSpecificInt<self::WChar>(p, #C19, 10);
|
||||
core::print([@vm.inferred-type.metadata=int] ffi::_loadAbiSpecificInt<self::WChar>(p, #C19));
|
||||
[@vm.direct-call.metadata=#lib::_DummyAllocator.free] [@vm.inferred-type.metadata=!? (skip check)] #C32.{self::_DummyAllocator::free}(){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
}
|
||||
static method testStoreLoadIndexed() → void {
|
||||
final ffi::Pointer<self::WChar> p = let final core::num #t2 = [@vm.direct-call.metadata=dart.core::_IntegerImplementation.*] [@vm.inferred-type.metadata=int (skip check)] 2.{core::num::*}([@vm.inferred-type.metadata=dart.core::_Smi] self::WChar::#sizeOf){(core::num) → core::num} in [@vm.direct-call.metadata=#lib::_DummyAllocator.allocate] [@vm.inferred-type.metadata=dart.ffi::Pointer (skip check)] #C35.{ffi::Allocator::allocate}<self::WChar>(){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WChar>};
|
||||
final ffi::Pointer<self::WChar> p = let final core::num #t2 = [@vm.direct-call.metadata=dart.core::_IntegerImplementation.*] [@vm.inferred-type.metadata=int (skip check)] 2.{core::num::*}([@vm.inferred-type.metadata=dart.core::_Smi] self::WChar::#sizeOf){(core::num) → core::num} in [@vm.direct-call.metadata=#lib::_DummyAllocator.allocate] [@vm.inferred-type.metadata=dart.ffi::Pointer (skip check)] #C32.{ffi::Allocator::allocate}<self::WChar>(){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WChar>};
|
||||
ffi::_storeAbiSpecificIntAtIndex<self::WChar>(p, 0, 10);
|
||||
ffi::_storeAbiSpecificIntAtIndex<self::WChar>(p, 1, 3);
|
||||
core::print([@vm.inferred-type.metadata=int] ffi::_loadAbiSpecificIntAtIndex<self::WChar>(p, 0));
|
||||
core::print([@vm.inferred-type.metadata=int] ffi::_loadAbiSpecificIntAtIndex<self::WChar>(p, 1));
|
||||
[@vm.direct-call.metadata=#lib::_DummyAllocator.free] [@vm.inferred-type.metadata=!? (skip check)] #C35.{self::_DummyAllocator::free}(){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
[@vm.direct-call.metadata=#lib::_DummyAllocator.free] [@vm.inferred-type.metadata=!? (skip check)] #C32.{self::_DummyAllocator::free}(){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
}
|
||||
static method testStruct() → void {
|
||||
final ffi::Pointer<self::WCharStruct> p = let final core::int* #t3 = [@vm.inferred-type.metadata=dart.core::_Smi] self::WCharStruct::#sizeOf in [@vm.direct-call.metadata=#lib::_DummyAllocator.allocate] [@vm.inferred-type.metadata=dart.ffi::Pointer (skip check)] #C35.{ffi::Allocator::allocate}<self::WCharStruct>(){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WCharStruct>};
|
||||
final ffi::Pointer<self::WCharStruct> p = let final core::int* #t3 = [@vm.inferred-type.metadata=dart.core::_Smi] self::WCharStruct::#sizeOf in [@vm.direct-call.metadata=#lib::_DummyAllocator.allocate] [@vm.inferred-type.metadata=dart.ffi::Pointer (skip check)] #C32.{ffi::Allocator::allocate}<self::WCharStruct>(){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WCharStruct>};
|
||||
[@vm.direct-call.metadata=#lib::WCharStruct.a0] [@vm.inferred-type.metadata=!? (skip check)] new self::WCharStruct::#fromTypedDataBase(_in::unsafeCast<ffi::Pointer<self::WCharStruct>>(p)).{self::WCharStruct::a0} = 1;
|
||||
core::print([@vm.direct-call.metadata=#lib::WCharStruct.a0] [@vm.inferred-type.metadata=int] new self::WCharStruct::#fromTypedDataBase(_in::unsafeCast<ffi::Pointer<self::WCharStruct>>(p)).{self::WCharStruct::a0}{core::int});
|
||||
[@vm.direct-call.metadata=#lib::WCharStruct.a0] [@vm.inferred-type.metadata=!? (skip check)] new self::WCharStruct::#fromTypedDataBase(_in::unsafeCast<ffi::Pointer<self::WCharStruct>>(p)).{self::WCharStruct::a0} = 2;
|
||||
core::print([@vm.direct-call.metadata=#lib::WCharStruct.a0] [@vm.inferred-type.metadata=int] new self::WCharStruct::#fromTypedDataBase(_in::unsafeCast<ffi::Pointer<self::WCharStruct>>(p)).{self::WCharStruct::a0}{core::int});
|
||||
[@vm.direct-call.metadata=#lib::_DummyAllocator.free] [@vm.inferred-type.metadata=!? (skip check)] #C35.{self::_DummyAllocator::free}(){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
[@vm.direct-call.metadata=#lib::_DummyAllocator.free] [@vm.inferred-type.metadata=!? (skip check)] #C32.{self::_DummyAllocator::free}(){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
}
|
||||
static method testInlineArray() → void {
|
||||
final ffi::Pointer<self::WCharArrayStruct> p = let final core::int* #t4 = [@vm.inferred-type.metadata=dart.core::_Smi] self::WCharArrayStruct::#sizeOf in [@vm.direct-call.metadata=#lib::_DummyAllocator.allocate] [@vm.inferred-type.metadata=dart.ffi::Pointer (skip check)] #C35.{ffi::Allocator::allocate}<self::WCharArrayStruct>(){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WCharArrayStruct>};
|
||||
final ffi::Pointer<self::WCharArrayStruct> p = let final core::int* #t4 = [@vm.inferred-type.metadata=dart.core::_Smi] self::WCharArrayStruct::#sizeOf in [@vm.direct-call.metadata=#lib::_DummyAllocator.allocate] [@vm.inferred-type.metadata=dart.ffi::Pointer (skip check)] #C32.{ffi::Allocator::allocate}<self::WCharArrayStruct>(){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WCharArrayStruct>};
|
||||
final ffi::Array<self::WChar> array = [@vm.direct-call.metadata=#lib::WCharArrayStruct.a0] [@vm.inferred-type.metadata=dart.ffi::Array<#lib::WChar>] new self::WCharArrayStruct::#fromTypedDataBase(_in::unsafeCast<ffi::Pointer<self::WCharArrayStruct>>(p)).{self::WCharArrayStruct::a0}{ffi::Array<self::WChar>};
|
||||
for (core::int i = 0; [@vm.direct-call.metadata=dart.core::_IntegerImplementation.<] [@vm.inferred-type.metadata=dart.core::bool (skip check)] i.{core::num::<}(100){(core::num) → core::bool}; i = [@vm.direct-call.metadata=dart.core::_IntegerImplementation.+] [@vm.inferred-type.metadata=int (skip check)] i.{core::num::+}(1){(core::num) → core::int}) {
|
||||
ffi::_storeAbiSpecificIntAtIndex<self::WChar>([@vm.direct-call.metadata=dart.ffi::Array._typedDataBase] [@vm.inferred-type.metadata=!] array.{ffi::Array::_typedDataBase}{core::Object}, i, i);
|
||||
@@ -88,42 +88,39 @@ static method testInlineArray() → void {
|
||||
for (core::int i = 0; [@vm.direct-call.metadata=dart.core::_IntegerImplementation.<] [@vm.inferred-type.metadata=dart.core::bool (skip check)] i.{core::num::<}(100){(core::num) → core::bool}; i = [@vm.direct-call.metadata=dart.core::_IntegerImplementation.+] [@vm.inferred-type.metadata=int (skip check)] i.{core::num::+}(1){(core::num) → core::int}) {
|
||||
core::print([@vm.inferred-type.metadata=int] ffi::_loadAbiSpecificIntAtIndex<self::WChar>([@vm.direct-call.metadata=dart.ffi::Array._typedDataBase] [@vm.inferred-type.metadata=!] array.{ffi::Array::_typedDataBase}{core::Object}, i));
|
||||
}
|
||||
[@vm.direct-call.metadata=#lib::_DummyAllocator.free] [@vm.inferred-type.metadata=!? (skip check)] #C35.{self::_DummyAllocator::free}(){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
[@vm.direct-call.metadata=#lib::_DummyAllocator.free] [@vm.inferred-type.metadata=!? (skip check)] #C32.{self::_DummyAllocator::free}(){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
}
|
||||
constants {
|
||||
#C1 = "vm:ffi:abi-specific-mapping"
|
||||
#C2 = TypeLiteralConstant(ffi::Uint32)
|
||||
#C3 = TypeLiteralConstant(ffi::Uint64)
|
||||
#C4 = TypeLiteralConstant(ffi::Int32)
|
||||
#C5 = TypeLiteralConstant(ffi::Uint16)
|
||||
#C6 = <core::Type?>[#C2, #C2, #C2, #C2, #C3, #C2, #C2, #C2, #C2, #C2, #C2, #C4, #C4, #C4, #C4, #C2, #C2, #C5, #C5, #C5]
|
||||
#C7 = ffi::_FfiAbiSpecificMapping {nativeTypes:#C6}
|
||||
#C8 = core::pragma {name:#C1, options:#C7}
|
||||
#C9 = "vm:prefer-inline"
|
||||
#C10 = null
|
||||
#C11 = core::pragma {name:#C9, options:#C10}
|
||||
#C12 = 4
|
||||
#C13 = 8
|
||||
#C14 = 2
|
||||
#C15 = <core::int*>[#C12, #C12, #C12, #C12, #C13, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C12, #C14, #C14, #C14]
|
||||
#C16 = "vm:ffi:struct-fields"
|
||||
#C17 = TypeLiteralConstant(self::WChar)
|
||||
#C18 = <core::Type>[#C17, #C17]
|
||||
#C19 = ffi::_FfiStructLayout {fieldTypes:#C18, packing:#C10}
|
||||
#C20 = core::pragma {name:#C16, options:#C19}
|
||||
#C21 = 0
|
||||
#C22 = <core::int*>[#C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21]
|
||||
#C23 = 16
|
||||
#C24 = <core::int*>[#C13, #C13, #C13, #C13, #C23, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C13, #C12, #C12, #C12]
|
||||
#C25 = 100
|
||||
#C26 = ffi::_FfiInlineArray {elementType:#C17, length:#C25}
|
||||
#C27 = <core::Type>[#C26]
|
||||
#C28 = ffi::_FfiStructLayout {fieldTypes:#C27, packing:#C10}
|
||||
#C29 = core::pragma {name:#C16, options:#C28}
|
||||
#C30 = <core::int*>[]
|
||||
#C31 = 400
|
||||
#C32 = 800
|
||||
#C33 = 200
|
||||
#C34 = <core::int*>[#C31, #C31, #C31, #C31, #C32, #C31, #C31, #C31, #C31, #C31, #C31, #C31, #C31, #C31, #C31, #C31, #C31, #C33, #C33, #C33]
|
||||
#C35 = self::_DummyAllocator {}
|
||||
#C3 = TypeLiteralConstant(ffi::Int32)
|
||||
#C4 = TypeLiteralConstant(ffi::Uint16)
|
||||
#C5 = <core::Type?>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C3, #C3, #C3, #C3, #C2, #C2, #C4, #C4, #C4]
|
||||
#C6 = ffi::_FfiAbiSpecificMapping {nativeTypes:#C5}
|
||||
#C7 = core::pragma {name:#C1, options:#C6}
|
||||
#C8 = "vm:prefer-inline"
|
||||
#C9 = null
|
||||
#C10 = core::pragma {name:#C8, options:#C9}
|
||||
#C11 = 4
|
||||
#C12 = 2
|
||||
#C13 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C12, #C12, #C12]
|
||||
#C14 = "vm:ffi:struct-fields"
|
||||
#C15 = TypeLiteralConstant(self::WChar)
|
||||
#C16 = <core::Type>[#C15, #C15]
|
||||
#C17 = ffi::_FfiStructLayout {fieldTypes:#C16, packing:#C9}
|
||||
#C18 = core::pragma {name:#C14, options:#C17}
|
||||
#C19 = 0
|
||||
#C20 = <core::int*>[#C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19, #C19]
|
||||
#C21 = 8
|
||||
#C22 = <core::int*>[#C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C21, #C11, #C11, #C11]
|
||||
#C23 = 100
|
||||
#C24 = ffi::_FfiInlineArray {elementType:#C15, length:#C23}
|
||||
#C25 = <core::Type>[#C24]
|
||||
#C26 = ffi::_FfiStructLayout {fieldTypes:#C25, packing:#C9}
|
||||
#C27 = core::pragma {name:#C14, options:#C26}
|
||||
#C28 = <core::int*>[]
|
||||
#C29 = 400
|
||||
#C30 = 200
|
||||
#C31 = <core::int*>[#C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C30, #C30, #C30]
|
||||
#C32 = self::_DummyAllocator {}
|
||||
}
|
||||
|
||||
@@ -8,16 +8,16 @@ import "dart:_internal" as _in;
|
||||
import "dart:ffi";
|
||||
|
||||
@#C56
|
||||
@#C64
|
||||
@#C63
|
||||
class WChar extends ffi::AbiSpecificInteger /*hasConstConstructor*/ {
|
||||
const constructor •() → self::WChar
|
||||
: super ffi::AbiSpecificInteger::•()
|
||||
;
|
||||
@#C67
|
||||
@#C66
|
||||
static get #sizeOf() → core::int*
|
||||
return #C69.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
return #C67.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
}
|
||||
@#C74
|
||||
@#C72
|
||||
class WCharStruct extends ffi::Struct {
|
||||
synthetic constructor •() → self::WCharStruct
|
||||
: super ffi::Struct::•()
|
||||
@@ -25,23 +25,23 @@ class WCharStruct extends ffi::Struct {
|
||||
constructor #fromTypedDataBase(synthesized core::Object #typedDataBase) → self::WCharStruct
|
||||
: super ffi::Struct::_fromTypedDataBase(#typedDataBase)
|
||||
;
|
||||
@#C75
|
||||
@#C73
|
||||
get a0() → core::int
|
||||
return ffi::_loadAbiSpecificInt<self::WChar>(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C76.{core::List::[]}(ffi::_abi()){(core::int) → core::int*});
|
||||
@#C75
|
||||
return ffi::_loadAbiSpecificInt<self::WChar>(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C74.{core::List::[]}(ffi::_abi()){(core::int) → core::int*});
|
||||
@#C73
|
||||
set a0(core::int #externalFieldValue) → void
|
||||
return ffi::_storeAbiSpecificInt<self::WChar>(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C76.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}, #externalFieldValue);
|
||||
@#C75
|
||||
return ffi::_storeAbiSpecificInt<self::WChar>(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C74.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}, #externalFieldValue);
|
||||
@#C73
|
||||
get a1() → core::int
|
||||
return ffi::_loadAbiSpecificInt<self::WChar>(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C69.{core::List::[]}(ffi::_abi()){(core::int) → core::int*});
|
||||
@#C75
|
||||
return ffi::_loadAbiSpecificInt<self::WChar>(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C67.{core::List::[]}(ffi::_abi()){(core::int) → core::int*});
|
||||
@#C73
|
||||
set a1(core::int #externalFieldValue) → void
|
||||
return ffi::_storeAbiSpecificInt<self::WChar>(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C69.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}, #externalFieldValue);
|
||||
@#C67
|
||||
return ffi::_storeAbiSpecificInt<self::WChar>(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C67.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}, #externalFieldValue);
|
||||
@#C66
|
||||
static get #sizeOf() → core::int*
|
||||
return #C78.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
return #C76.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
}
|
||||
@#C83
|
||||
@#C81
|
||||
class WCharArrayStruct extends ffi::Struct {
|
||||
synthetic constructor •() → self::WCharArrayStruct
|
||||
: super ffi::Struct::•()
|
||||
@@ -49,31 +49,31 @@ class WCharArrayStruct extends ffi::Struct {
|
||||
constructor #fromTypedDataBase(synthesized core::Object #typedDataBase) → self::WCharArrayStruct
|
||||
: super ffi::Struct::_fromTypedDataBase(#typedDataBase)
|
||||
;
|
||||
@#C84
|
||||
@#C82
|
||||
get a0() → ffi::Array<self::WChar>
|
||||
return new ffi::Array::_<self::WChar>( block {
|
||||
synthesized core::Object #typedDataBase = this.{ffi::_Compound::_typedDataBase}{core::Object};
|
||||
synthesized core::int #offset = #C76.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
} =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<self::WChar>(#typedDataBase.{ffi::Pointer::address}{core::int}.{core::num::+}(#offset){(core::num) → core::num}) : let synthesized typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}{typ::ByteBuffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}{core::int}.{core::num::+}(#offset){(core::num) → core::num}, #C88.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}){([core::int, core::int?]) → typ::Uint8List}, #C79, #C89);
|
||||
@#C84
|
||||
synthesized core::int #offset = #C74.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
} =>#typedDataBase is ffi::Pointer<dynamic> ?{core::Object} ffi::_fromAddress<self::WChar>(#typedDataBase.{ffi::Pointer::address}{core::int}.{core::num::+}(#offset){(core::num) → core::num}) : let synthesized typ::TypedData #typedData = _in::unsafeCast<typ::TypedData>(#typedDataBase) in #typedData.{typ::TypedData::buffer}{typ::ByteBuffer}.{typ::ByteBuffer::asUint8List}(#typedData.{typ::TypedData::offsetInBytes}{core::int}.{core::num::+}(#offset){(core::num) → core::num}, #C85.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}){([core::int, core::int?]) → typ::Uint8List}, #C77, #C86);
|
||||
@#C82
|
||||
set a0(ffi::Array<self::WChar> #externalFieldValue) → void
|
||||
return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C76.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}, #externalFieldValue.{ffi::Array::_typedDataBase}{core::Object}, #C1, #C88.{core::List::[]}(ffi::_abi()){(core::int) → core::int*});
|
||||
@#C67
|
||||
return ffi::_memCopy(this.{ffi::_Compound::_typedDataBase}{core::Object}, #C74.{core::List::[]}(ffi::_abi()){(core::int) → core::int*}, #externalFieldValue.{ffi::Array::_typedDataBase}{core::Object}, #C1, #C85.{core::List::[]}(ffi::_abi()){(core::int) → core::int*});
|
||||
@#C66
|
||||
static get #sizeOf() → core::int*
|
||||
return #C88.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
return #C85.{core::List::[]}(ffi::_abi()){(core::int) → core::int*};
|
||||
}
|
||||
class _DummyAllocator extends core::Object implements ffi::Allocator /*hasConstConstructor*/ {
|
||||
const constructor •() → self::_DummyAllocator
|
||||
: super core::Object::•()
|
||||
;
|
||||
@#C90
|
||||
method allocate<T extends ffi::NativeType>(core::int byteCount, {core::int? alignment = #C66}) → ffi::Pointer<self::_DummyAllocator::allocate::T> {
|
||||
@#C87
|
||||
method allocate<T extends ffi::NativeType>(core::int byteCount, {core::int? alignment = #C65}) → ffi::Pointer<self::_DummyAllocator::allocate::T> {
|
||||
return ffi::Pointer::fromAddress<self::_DummyAllocator::allocate::T>(0);
|
||||
}
|
||||
@#C90
|
||||
@#C87
|
||||
method free(ffi::Pointer<ffi::NativeType> pointer) → void {}
|
||||
}
|
||||
static const field self::_DummyAllocator noAlloc = #C91;
|
||||
static const field self::_DummyAllocator noAlloc = #C88;
|
||||
static method main() → void {
|
||||
self::testSizeOf();
|
||||
self::testStoreLoad();
|
||||
@@ -86,29 +86,29 @@ static method testSizeOf() → void {
|
||||
core::print(size);
|
||||
}
|
||||
static method testStoreLoad() → void {
|
||||
final ffi::Pointer<self::WChar> p = #C91.{ffi::Allocator::allocate}<self::WChar>(self::WChar::#sizeOf){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WChar>};
|
||||
final ffi::Pointer<self::WChar> p = #C88.{ffi::Allocator::allocate}<self::WChar>(self::WChar::#sizeOf){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WChar>};
|
||||
ffi::_storeAbiSpecificInt<self::WChar>(p, #C1, 10);
|
||||
core::print(ffi::_loadAbiSpecificInt<self::WChar>(p, #C1));
|
||||
#C91.{self::_DummyAllocator::free}(p){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
#C88.{self::_DummyAllocator::free}(p){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
}
|
||||
static method testStoreLoadIndexed() → void {
|
||||
final ffi::Pointer<self::WChar> p = #C91.{ffi::Allocator::allocate}<self::WChar>(2.{core::num::*}(self::WChar::#sizeOf){(core::num) → core::num}){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WChar>};
|
||||
final ffi::Pointer<self::WChar> p = #C88.{ffi::Allocator::allocate}<self::WChar>(2.{core::num::*}(self::WChar::#sizeOf){(core::num) → core::num}){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WChar>};
|
||||
ffi::_storeAbiSpecificIntAtIndex<self::WChar>(p, 0, 10);
|
||||
ffi::_storeAbiSpecificIntAtIndex<self::WChar>(p, 1, 3);
|
||||
core::print(ffi::_loadAbiSpecificIntAtIndex<self::WChar>(p, 0));
|
||||
core::print(ffi::_loadAbiSpecificIntAtIndex<self::WChar>(p, 1));
|
||||
#C91.{self::_DummyAllocator::free}(p){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
#C88.{self::_DummyAllocator::free}(p){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
}
|
||||
static method testStruct() → void {
|
||||
final ffi::Pointer<self::WCharStruct> p = #C91.{ffi::Allocator::allocate}<self::WCharStruct>(self::WCharStruct::#sizeOf){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WCharStruct>};
|
||||
final ffi::Pointer<self::WCharStruct> p = #C88.{ffi::Allocator::allocate}<self::WCharStruct>(self::WCharStruct::#sizeOf){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WCharStruct>};
|
||||
new self::WCharStruct::#fromTypedDataBase(p!).{self::WCharStruct::a0} = 1;
|
||||
core::print(new self::WCharStruct::#fromTypedDataBase(p!).{self::WCharStruct::a0}{core::int});
|
||||
new self::WCharStruct::#fromTypedDataBase(p!).{self::WCharStruct::a0} = 2;
|
||||
core::print(new self::WCharStruct::#fromTypedDataBase(p!).{self::WCharStruct::a0}{core::int});
|
||||
#C91.{self::_DummyAllocator::free}(p){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
#C88.{self::_DummyAllocator::free}(p){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
}
|
||||
static method testInlineArray() → void {
|
||||
final ffi::Pointer<self::WCharArrayStruct> p = #C91.{ffi::Allocator::allocate}<self::WCharArrayStruct>(self::WCharArrayStruct::#sizeOf){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WCharArrayStruct>};
|
||||
final ffi::Pointer<self::WCharArrayStruct> p = #C88.{ffi::Allocator::allocate}<self::WCharArrayStruct>(self::WCharArrayStruct::#sizeOf){(core::int, {alignment: core::int?}) → ffi::Pointer<self::WCharArrayStruct>};
|
||||
final ffi::Array<self::WChar> array = new self::WCharArrayStruct::#fromTypedDataBase(p!).{self::WCharArrayStruct::a0}{ffi::Array<self::WChar>};
|
||||
for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
|
||||
ffi::_storeAbiSpecificIntAtIndex<self::WChar>(array.{ffi::Array::_typedDataBase}{core::Object}, i, i);
|
||||
@@ -116,7 +116,7 @@ static method testInlineArray() → void {
|
||||
for (core::int i = 0; i.{core::num::<}(100){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
|
||||
core::print(ffi::_loadAbiSpecificIntAtIndex<self::WChar>(array.{ffi::Array::_typedDataBase}{core::Object}, i));
|
||||
}
|
||||
#C91.{self::_DummyAllocator::free}(p){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
#C88.{self::_DummyAllocator::free}(p){(ffi::Pointer<ffi::NativeType>) → void};
|
||||
}
|
||||
constants {
|
||||
#C1 = 0
|
||||
@@ -141,73 +141,70 @@ constants {
|
||||
#C20 = "fuchsia"
|
||||
#C21 = ffi::_OS {index:#C8, _name:#C20}
|
||||
#C22 = ffi::Abi {_os:#C21, _architecture:#C10}
|
||||
#C23 = ffi::Uint64 {}
|
||||
#C24 = ffi::Abi {_os:#C21, _architecture:#C18}
|
||||
#C25 = "ios"
|
||||
#C26 = ffi::_OS {index:#C12, _name:#C25}
|
||||
#C27 = ffi::Abi {_os:#C26, _architecture:#C5}
|
||||
#C28 = ffi::Abi {_os:#C26, _architecture:#C10}
|
||||
#C29 = ffi::Abi {_os:#C26, _architecture:#C18}
|
||||
#C30 = "linux"
|
||||
#C31 = ffi::_OS {index:#C16, _name:#C30}
|
||||
#C32 = ffi::Abi {_os:#C31, _architecture:#C5}
|
||||
#C33 = ffi::Abi {_os:#C31, _architecture:#C10}
|
||||
#C34 = ffi::Abi {_os:#C31, _architecture:#C14}
|
||||
#C35 = ffi::Int32 {}
|
||||
#C36 = ffi::Abi {_os:#C31, _architecture:#C18}
|
||||
#C37 = 4
|
||||
#C38 = "riscv32"
|
||||
#C39 = ffi::_Architecture {index:#C37, _name:#C38}
|
||||
#C40 = ffi::Abi {_os:#C31, _architecture:#C39}
|
||||
#C41 = 5
|
||||
#C42 = "riscv64"
|
||||
#C43 = ffi::_Architecture {index:#C41, _name:#C42}
|
||||
#C44 = ffi::Abi {_os:#C31, _architecture:#C43}
|
||||
#C23 = ffi::Abi {_os:#C21, _architecture:#C18}
|
||||
#C24 = 5
|
||||
#C25 = "riscv64"
|
||||
#C26 = ffi::_Architecture {index:#C24, _name:#C25}
|
||||
#C27 = ffi::Abi {_os:#C21, _architecture:#C26}
|
||||
#C28 = "ios"
|
||||
#C29 = ffi::_OS {index:#C12, _name:#C28}
|
||||
#C30 = ffi::Abi {_os:#C29, _architecture:#C5}
|
||||
#C31 = ffi::Abi {_os:#C29, _architecture:#C10}
|
||||
#C32 = ffi::Abi {_os:#C29, _architecture:#C18}
|
||||
#C33 = "linux"
|
||||
#C34 = ffi::_OS {index:#C16, _name:#C33}
|
||||
#C35 = ffi::Abi {_os:#C34, _architecture:#C5}
|
||||
#C36 = ffi::Abi {_os:#C34, _architecture:#C10}
|
||||
#C37 = ffi::Abi {_os:#C34, _architecture:#C14}
|
||||
#C38 = ffi::Int32 {}
|
||||
#C39 = ffi::Abi {_os:#C34, _architecture:#C18}
|
||||
#C40 = 4
|
||||
#C41 = "riscv32"
|
||||
#C42 = ffi::_Architecture {index:#C40, _name:#C41}
|
||||
#C43 = ffi::Abi {_os:#C34, _architecture:#C42}
|
||||
#C44 = ffi::Abi {_os:#C34, _architecture:#C26}
|
||||
#C45 = "macos"
|
||||
#C46 = ffi::_OS {index:#C37, _name:#C45}
|
||||
#C46 = ffi::_OS {index:#C40, _name:#C45}
|
||||
#C47 = ffi::Abi {_os:#C46, _architecture:#C10}
|
||||
#C48 = ffi::Abi {_os:#C46, _architecture:#C18}
|
||||
#C49 = "windows"
|
||||
#C50 = ffi::_OS {index:#C41, _name:#C49}
|
||||
#C50 = ffi::_OS {index:#C24, _name:#C49}
|
||||
#C51 = ffi::Abi {_os:#C50, _architecture:#C10}
|
||||
#C52 = ffi::Uint16 {}
|
||||
#C53 = ffi::Abi {_os:#C50, _architecture:#C14}
|
||||
#C54 = ffi::Abi {_os:#C50, _architecture:#C18}
|
||||
#C55 = <ffi::Abi, ffi::NativeType>{#C6:#C7, #C11:#C7, #C15:#C7, #C19:#C7, #C22:#C23, #C24:#C7, #C27:#C7, #C28:#C7, #C29:#C7, #C32:#C7, #C33:#C7, #C34:#C35, #C36:#C35, #C40:#C35, #C44:#C35, #C47:#C7, #C48:#C7, #C51:#C52, #C53:#C52, #C54:#C52}
|
||||
#C55 = <ffi::Abi, ffi::NativeType>{#C6:#C7, #C11:#C7, #C15:#C7, #C19:#C7, #C22:#C7, #C23:#C7, #C27:#C7, #C30:#C7, #C31:#C7, #C32:#C7, #C35:#C7, #C36:#C7, #C37:#C38, #C39:#C38, #C43:#C38, #C44:#C38, #C47:#C7, #C48:#C7, #C51:#C52, #C53:#C52, #C54:#C52}
|
||||
#C56 = ffi::AbiSpecificIntegerMapping {mapping:#C55}
|
||||
#C57 = "vm:ffi:abi-specific-mapping"
|
||||
#C58 = TypeLiteralConstant(ffi::Uint32)
|
||||
#C59 = TypeLiteralConstant(ffi::Uint64)
|
||||
#C60 = TypeLiteralConstant(ffi::Int32)
|
||||
#C61 = TypeLiteralConstant(ffi::Uint16)
|
||||
#C62 = <core::Type?>[#C58, #C58, #C58, #C58, #C59, #C58, #C58, #C58, #C58, #C58, #C58, #C60, #C60, #C60, #C60, #C58, #C58, #C61, #C61, #C61]
|
||||
#C63 = ffi::_FfiAbiSpecificMapping {nativeTypes:#C62}
|
||||
#C64 = core::pragma {name:#C57, options:#C63}
|
||||
#C65 = "vm:prefer-inline"
|
||||
#C66 = null
|
||||
#C67 = core::pragma {name:#C65, options:#C66}
|
||||
#C68 = 8
|
||||
#C69 = <core::int*>[#C37, #C37, #C37, #C37, #C68, #C37, #C37, #C37, #C37, #C37, #C37, #C37, #C37, #C37, #C37, #C37, #C37, #C12, #C12, #C12]
|
||||
#C70 = "vm:ffi:struct-fields"
|
||||
#C71 = TypeLiteralConstant(self::WChar)
|
||||
#C72 = <core::Type>[#C71, #C71]
|
||||
#C73 = ffi::_FfiStructLayout {fieldTypes:#C72, packing:#C66}
|
||||
#C74 = core::pragma {name:#C70, options:#C73}
|
||||
#C75 = self::WChar {}
|
||||
#C76 = <core::int*>[#C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1]
|
||||
#C77 = 16
|
||||
#C78 = <core::int*>[#C68, #C68, #C68, #C68, #C77, #C68, #C68, #C68, #C68, #C68, #C68, #C68, #C68, #C68, #C68, #C68, #C68, #C37, #C37, #C37]
|
||||
#C79 = 100
|
||||
#C80 = ffi::_FfiInlineArray {elementType:#C71, length:#C79}
|
||||
#C81 = <core::Type>[#C80]
|
||||
#C82 = ffi::_FfiStructLayout {fieldTypes:#C81, packing:#C66}
|
||||
#C83 = core::pragma {name:#C70, options:#C82}
|
||||
#C84 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C79, dimension2:#C66, dimension3:#C66, dimension4:#C66, dimension5:#C66, dimensions:#C66}
|
||||
#C85 = 400
|
||||
#C86 = 800
|
||||
#C87 = 200
|
||||
#C88 = <core::int*>[#C85, #C85, #C85, #C85, #C86, #C85, #C85, #C85, #C85, #C85, #C85, #C85, #C85, #C85, #C85, #C85, #C85, #C87, #C87, #C87]
|
||||
#C89 = <core::int*>[]
|
||||
#C90 = core::_Override {}
|
||||
#C91 = self::_DummyAllocator {}
|
||||
#C59 = TypeLiteralConstant(ffi::Int32)
|
||||
#C60 = TypeLiteralConstant(ffi::Uint16)
|
||||
#C61 = <core::Type?>[#C58, #C58, #C58, #C58, #C58, #C58, #C58, #C58, #C58, #C58, #C58, #C58, #C59, #C59, #C59, #C59, #C58, #C58, #C60, #C60, #C60]
|
||||
#C62 = ffi::_FfiAbiSpecificMapping {nativeTypes:#C61}
|
||||
#C63 = core::pragma {name:#C57, options:#C62}
|
||||
#C64 = "vm:prefer-inline"
|
||||
#C65 = null
|
||||
#C66 = core::pragma {name:#C64, options:#C65}
|
||||
#C67 = <core::int*>[#C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C40, #C12, #C12, #C12]
|
||||
#C68 = "vm:ffi:struct-fields"
|
||||
#C69 = TypeLiteralConstant(self::WChar)
|
||||
#C70 = <core::Type>[#C69, #C69]
|
||||
#C71 = ffi::_FfiStructLayout {fieldTypes:#C70, packing:#C65}
|
||||
#C72 = core::pragma {name:#C68, options:#C71}
|
||||
#C73 = self::WChar {}
|
||||
#C74 = <core::int*>[#C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1, #C1]
|
||||
#C75 = 8
|
||||
#C76 = <core::int*>[#C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C75, #C40, #C40, #C40]
|
||||
#C77 = 100
|
||||
#C78 = ffi::_FfiInlineArray {elementType:#C69, length:#C77}
|
||||
#C79 = <core::Type>[#C78]
|
||||
#C80 = ffi::_FfiStructLayout {fieldTypes:#C79, packing:#C65}
|
||||
#C81 = core::pragma {name:#C68, options:#C80}
|
||||
#C82 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C77, dimension2:#C65, dimension3:#C65, dimension4:#C65, dimension5:#C65, dimensions:#C65}
|
||||
#C83 = 400
|
||||
#C84 = 200
|
||||
#C85 = <core::int*>[#C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C83, #C84, #C84, #C84]
|
||||
#C86 = <core::int*>[]
|
||||
#C87 = core::_Override {}
|
||||
#C88 = self::_DummyAllocator {}
|
||||
}
|
||||
|
||||
@@ -94,22 +94,22 @@ constants {
|
||||
#C1 = "vm:ffi:abi-specific-mapping"
|
||||
#C2 = null
|
||||
#C3 = TypeLiteralConstant(ffi::Uint32)
|
||||
#C4 = <core::Type?>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C3, #C3, #C3, #C3, #C2, #C2, #C2, #C2, #C2, #C2, #C2]
|
||||
#C4 = <core::Type?>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C3, #C3, #C3, #C3, #C2, #C2, #C2, #C2, #C2, #C2, #C2]
|
||||
#C5 = ffi::_FfiAbiSpecificMapping {nativeTypes:#C4}
|
||||
#C6 = core::pragma {name:#C1, options:#C5}
|
||||
#C7 = "vm:prefer-inline"
|
||||
#C8 = core::pragma {name:#C7, options:#C2}
|
||||
#C9 = 4
|
||||
#C10 = <core::int*>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C9, #C9, #C9, #C9, #C2, #C2, #C2, #C2, #C2, #C2, #C2]
|
||||
#C10 = <core::int*>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C9, #C9, #C9, #C9, #C2, #C2, #C2, #C2, #C2, #C2, #C2]
|
||||
#C11 = "vm:ffi:struct-fields"
|
||||
#C12 = TypeLiteralConstant(self::Incomplete)
|
||||
#C13 = <core::Type>[#C12, #C12]
|
||||
#C14 = ffi::_FfiStructLayout {fieldTypes:#C13, packing:#C2}
|
||||
#C15 = core::pragma {name:#C11, options:#C14}
|
||||
#C16 = 0
|
||||
#C17 = <core::int*>[#C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16]
|
||||
#C17 = <core::int*>[#C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16, #C16]
|
||||
#C18 = 8
|
||||
#C19 = <core::int*>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C18, #C18, #C18, #C18, #C2, #C2, #C2, #C2, #C2, #C2, #C2]
|
||||
#C19 = <core::int*>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C18, #C18, #C18, #C18, #C2, #C2, #C2, #C2, #C2, #C2, #C2]
|
||||
#C20 = 100
|
||||
#C21 = ffi::_FfiInlineArray {elementType:#C12, length:#C20}
|
||||
#C22 = <core::Type>[#C21]
|
||||
@@ -117,6 +117,6 @@ constants {
|
||||
#C24 = core::pragma {name:#C11, options:#C23}
|
||||
#C25 = <core::int*>[]
|
||||
#C26 = 400
|
||||
#C27 = <core::int*>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C26, #C26, #C26, #C26, #C2, #C2, #C2, #C2, #C2, #C2, #C2]
|
||||
#C27 = <core::int*>[#C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C2, #C26, #C26, #C26, #C26, #C2, #C2, #C2, #C2, #C2, #C2, #C2]
|
||||
#C28 = self::_DummyAllocator {}
|
||||
}
|
||||
|
||||
@@ -143,22 +143,22 @@ constants {
|
||||
#C22 = "vm:ffi:abi-specific-mapping"
|
||||
#C23 = null
|
||||
#C24 = TypeLiteralConstant(ffi::Uint32)
|
||||
#C25 = <core::Type?>[#C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C24, #C24, #C24, #C24, #C23, #C23, #C23, #C23, #C23, #C23, #C23]
|
||||
#C25 = <core::Type?>[#C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C24, #C24, #C24, #C24, #C23, #C23, #C23, #C23, #C23, #C23, #C23]
|
||||
#C26 = ffi::_FfiAbiSpecificMapping {nativeTypes:#C25}
|
||||
#C27 = core::pragma {name:#C22, options:#C26}
|
||||
#C28 = "vm:prefer-inline"
|
||||
#C29 = core::pragma {name:#C28, options:#C23}
|
||||
#C30 = 4
|
||||
#C31 = <core::int*>[#C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C30, #C30, #C30, #C30, #C23, #C23, #C23, #C23, #C23, #C23, #C23]
|
||||
#C31 = <core::int*>[#C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C30, #C30, #C30, #C30, #C23, #C23, #C23, #C23, #C23, #C23, #C23]
|
||||
#C32 = "vm:ffi:struct-fields"
|
||||
#C33 = TypeLiteralConstant(self::Incomplete)
|
||||
#C34 = <core::Type>[#C33, #C33]
|
||||
#C35 = ffi::_FfiStructLayout {fieldTypes:#C34, packing:#C23}
|
||||
#C36 = core::pragma {name:#C32, options:#C35}
|
||||
#C37 = self::Incomplete {}
|
||||
#C38 = <core::int*>[#C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4]
|
||||
#C38 = <core::int*>[#C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4, #C4]
|
||||
#C39 = 8
|
||||
#C40 = <core::int*>[#C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C39, #C39, #C39, #C39, #C23, #C23, #C23, #C23, #C23, #C23, #C23]
|
||||
#C40 = <core::int*>[#C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C39, #C39, #C39, #C39, #C23, #C23, #C23, #C23, #C23, #C23, #C23]
|
||||
#C41 = 100
|
||||
#C42 = ffi::_FfiInlineArray {elementType:#C33, length:#C41}
|
||||
#C43 = <core::Type>[#C42]
|
||||
@@ -166,7 +166,7 @@ constants {
|
||||
#C45 = core::pragma {name:#C32, options:#C44}
|
||||
#C46 = ffi::_ArraySize<ffi::NativeType> {dimension1:#C41, dimension2:#C23, dimension3:#C23, dimension4:#C23, dimension5:#C23, dimensions:#C23}
|
||||
#C47 = 400
|
||||
#C48 = <core::int*>[#C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C47, #C47, #C47, #C47, #C23, #C23, #C23, #C23, #C23, #C23, #C23]
|
||||
#C48 = <core::int*>[#C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C23, #C47, #C47, #C47, #C47, #C23, #C23, #C23, #C23, #C23, #C23, #C23]
|
||||
#C49 = <core::int*>[]
|
||||
#C50 = core::_Override {}
|
||||
#C51 = self::_DummyAllocator {}
|
||||
|
||||
@@ -72,13 +72,13 @@ constants {
|
||||
#C6 = core::pragma {name:#C1, options:#C5}
|
||||
#C7 = ffi::Int64 {}
|
||||
#C8 = 0
|
||||
#C9 = <core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C9 = <core::int*>[#C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8, #C8]
|
||||
#C10 = 8
|
||||
#C11 = <core::int*>[#C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10]
|
||||
#C11 = <core::int*>[#C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10, #C10]
|
||||
#C12 = "vm:prefer-inline"
|
||||
#C13 = core::pragma {name:#C12, options:#C4}
|
||||
#C14 = 16
|
||||
#C15 = <core::int*>[#C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14]
|
||||
#C15 = <core::int*>[#C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14, #C14]
|
||||
#C16 = TypeLiteralConstant(self::Coordinate)
|
||||
#C17 = <core::Type>[#C16, #C2]
|
||||
#C18 = ffi::_FfiStructLayout {fieldTypes:#C17, packing:#C4}
|
||||
|
||||
+2
-2
@@ -128,10 +128,10 @@ constants {
|
||||
#C9 = ffi::_FfiStructLayout {fieldTypes:#C8, packing:#C4}
|
||||
#C10 = core::pragma {name:#C1, options:#C9}
|
||||
#C11 = 0
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C12 = <core::int*>[#C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11, #C11]
|
||||
#C13 = 4
|
||||
#C14 = 8
|
||||
#C15 = <core::int*>[#C13, #C14, #C13, #C14, #C14, #C14, #C13, #C14, #C14, #C13, #C14, #C13, #C14, #C13, #C14, #C14, #C14, #C14, #C13, #C14]
|
||||
#C15 = <core::int*>[#C13, #C14, #C13, #C14, #C14, #C14, #C14, #C13, #C14, #C14, #C13, #C14, #C13, #C14, #C13, #C14, #C14, #C14, #C14, #C13, #C14]
|
||||
#C16 = static-tearoff self::useStruct3
|
||||
#C17 = static-tearoff self::returnStruct7
|
||||
#C18 = 1
|
||||
|
||||
@@ -26,6 +26,7 @@ enum class Abi {
|
||||
kAndroidX64,
|
||||
kFuchsiaArm64,
|
||||
kFuchsiaX64,
|
||||
kFuchsiaRiscv64,
|
||||
kIOSArm,
|
||||
kIOSArm64,
|
||||
kIOSX64,
|
||||
@@ -49,9 +50,9 @@ const int64_t num_abis = static_cast<int64_t>(Abi::kWindowsX64) + 1;
|
||||
// - runtime/vm/compiler/frontend/kernel_to_il.cc
|
||||
static_assert(static_cast<int64_t>(Abi::kAndroidArm) == 0,
|
||||
"Enum value unexpected.");
|
||||
static_assert(static_cast<int64_t>(Abi::kWindowsX64) == 19,
|
||||
static_assert(static_cast<int64_t>(Abi::kWindowsX64) == 20,
|
||||
"Enum value unexpected.");
|
||||
static_assert(num_abis == 20, "Enum value unexpected.");
|
||||
static_assert(num_abis == 21, "Enum value unexpected.");
|
||||
|
||||
// The target ABI. Defines sizes and alignment of native types.
|
||||
Abi TargetAbi();
|
||||
|
||||
@@ -1996,10 +1996,10 @@ void Simulator::InterpretECALL(Instr instr) {
|
||||
if (instr.rs1() != ZR) {
|
||||
// Fake instruction generated by Assembler::SimulatorPrintObject.
|
||||
if (true || IsTracingExecution()) {
|
||||
uintx_t raw = get_xreg(instr.rs1());
|
||||
Object& obj = Object::Handle(static_cast<ObjectPtr>(raw));
|
||||
THR_Print("%" Px ": %s = %s\n", pc_, cpu_reg_names[instr.rs1()],
|
||||
obj.ToCString());
|
||||
Object& obj = Object::Handle(
|
||||
static_cast<ObjectPtr>(static_cast<uword>(get_xreg(instr.rs1()))));
|
||||
THR_Print("%" Px ": %s = %s\n", static_cast<uword>(pc_),
|
||||
cpu_reg_names[instr.rs1()], obj.ToCString());
|
||||
FLAG_trace_sim_after = 1;
|
||||
}
|
||||
pc_ += instr.length();
|
||||
|
||||
@@ -67,7 +67,6 @@ class ThreadSuspendScope {
|
||||
|
||||
class ThreadInterrupterFuchsia : public AllStatic {
|
||||
public:
|
||||
#if defined(TARGET_ARCH_X64)
|
||||
static bool GrabRegisters(zx_handle_t thread, InterruptedThreadState* state) {
|
||||
zx_thread_state_general_regs_t regs;
|
||||
zx_status_t status = zx_thread_read_state(
|
||||
@@ -79,34 +78,29 @@ class ThreadInterrupterFuchsia : public AllStatic {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#if defined(TARGET_ARCH_X64)
|
||||
state->pc = static_cast<uintptr_t>(regs.rip);
|
||||
state->fp = static_cast<uintptr_t>(regs.rbp);
|
||||
state->csp = static_cast<uintptr_t>(regs.rsp);
|
||||
state->dsp = static_cast<uintptr_t>(regs.rsp);
|
||||
return true;
|
||||
}
|
||||
state->lr = 0;
|
||||
#elif defined(TARGET_ARCH_ARM64)
|
||||
static bool GrabRegisters(zx_handle_t thread, InterruptedThreadState* state) {
|
||||
zx_thread_state_general_regs_t regs;
|
||||
zx_status_t status = zx_thread_read_state(
|
||||
thread, ZX_THREAD_STATE_GENERAL_REGS, ®s, sizeof(regs));
|
||||
if (status != ZX_OK) {
|
||||
if (FLAG_trace_thread_interrupter) {
|
||||
OS::PrintErr("ThreadInterrupter failed to get registers: %s\n",
|
||||
zx_status_get_string(status));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
state->pc = static_cast<uintptr_t>(regs.pc);
|
||||
state->fp = static_cast<uintptr_t>(regs.r[FPREG]);
|
||||
state->csp = static_cast<uintptr_t>(regs.sp);
|
||||
state->dsp = static_cast<uintptr_t>(regs.r[SPREG]);
|
||||
state->lr = static_cast<uintptr_t>(regs.lr);
|
||||
return true;
|
||||
}
|
||||
#elif defined(TARGET_ARCH_RISCV64)
|
||||
state->pc = static_cast<uintptr_t>(regs.pc);
|
||||
state->fp = static_cast<uintptr_t>(regs.r[FPREG]);
|
||||
state->csp = static_cast<uintptr_t>(regs.r[SPREG]);
|
||||
state->dsp = static_cast<uintptr_t>(regs.r[SPREG]);
|
||||
state->lr = static_cast<uintptr_t>(regs.r[LINK_REGISTER]);
|
||||
#else
|
||||
#error "Unsupported architecture"
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
static void Interrupt(OSThread* os_thread) {
|
||||
ASSERT(os_thread->id() != ZX_KOID_INVALID);
|
||||
|
||||
@@ -29,6 +29,7 @@ int get _intPtrSize => (const [
|
||||
8, // androidX64,
|
||||
8, // fuchsiaArm64,
|
||||
8, // fuchsiaX64,
|
||||
8, // fuchsiaRiscv64,
|
||||
4, // iosArm,
|
||||
8, // iosArm64,
|
||||
8, // iosX64,
|
||||
|
||||
@@ -34,6 +34,9 @@ class Abi {
|
||||
/// The application binary interface for Fuchsia on the X64 architecture.
|
||||
static const fuchsiaX64 = _fuchsiaX64;
|
||||
|
||||
/// The application binary interface for Fuchsia on the Riscv64 architecture.
|
||||
static const fuchsiaRiscv64 = _fuchsiaRiscv64;
|
||||
|
||||
/// The application binary interface for iOS on the Arm architecture.
|
||||
static const iosArm = _iosArm;
|
||||
|
||||
@@ -89,6 +92,7 @@ class Abi {
|
||||
androidX64,
|
||||
fuchsiaArm64,
|
||||
fuchsiaX64,
|
||||
fuchsiaRiscv64,
|
||||
iosArm,
|
||||
iosArm64,
|
||||
iosX64,
|
||||
@@ -131,6 +135,7 @@ class Abi {
|
||||
static const _androidX64 = Abi._(_Architecture.x64, _OS.android);
|
||||
static const _fuchsiaArm64 = Abi._(_Architecture.arm64, _OS.fuchsia);
|
||||
static const _fuchsiaX64 = Abi._(_Architecture.x64, _OS.fuchsia);
|
||||
static const _fuchsiaRiscv64 = Abi._(_Architecture.riscv64, _OS.fuchsia);
|
||||
static const _iosArm = Abi._(_Architecture.arm, _OS.ios);
|
||||
static const _iosArm64 = Abi._(_Architecture.arm64, _OS.ios);
|
||||
static const _iosX64 = Abi._(_Architecture.x64, _OS.ios);
|
||||
|
||||
@@ -26,6 +26,7 @@ part of dart.ffi;
|
||||
/// Abi.androidX64: Uint64(),
|
||||
/// Abi.fuchsiaArm64: Uint64(),
|
||||
/// Abi.fuchsiaX64: Uint64(),
|
||||
/// Abi.fuchsiaRiscv64: Uint64(),
|
||||
/// Abi.iosArm: Uint32(),
|
||||
/// Abi.iosArm64: Uint64(),
|
||||
/// Abi.linuxArm: Uint32(),
|
||||
|
||||
@@ -29,6 +29,7 @@ part of dart.ffi;
|
||||
Abi.androidX64: Int8(),
|
||||
Abi.fuchsiaArm64: Uint8(),
|
||||
Abi.fuchsiaX64: Int8(),
|
||||
Abi.fuchsiaRiscv64: Uint8(),
|
||||
Abi.iosArm: Int8(),
|
||||
Abi.iosArm64: Int8(),
|
||||
Abi.iosX64: Int8(),
|
||||
@@ -66,6 +67,7 @@ class Char extends AbiSpecificInteger {
|
||||
Abi.androidX64: Int8(),
|
||||
Abi.fuchsiaArm64: Int8(),
|
||||
Abi.fuchsiaX64: Int8(),
|
||||
Abi.fuchsiaRiscv64: Int8(),
|
||||
Abi.iosArm: Int8(),
|
||||
Abi.iosArm64: Int8(),
|
||||
Abi.iosX64: Int8(),
|
||||
@@ -103,6 +105,7 @@ class SignedChar extends AbiSpecificInteger {
|
||||
Abi.androidX64: Uint8(),
|
||||
Abi.fuchsiaArm64: Uint8(),
|
||||
Abi.fuchsiaX64: Uint8(),
|
||||
Abi.fuchsiaRiscv64: Uint8(),
|
||||
Abi.iosArm: Uint8(),
|
||||
Abi.iosArm64: Uint8(),
|
||||
Abi.iosX64: Uint8(),
|
||||
@@ -140,6 +143,7 @@ class UnsignedChar extends AbiSpecificInteger {
|
||||
Abi.androidX64: Int16(),
|
||||
Abi.fuchsiaArm64: Int16(),
|
||||
Abi.fuchsiaX64: Int16(),
|
||||
Abi.fuchsiaRiscv64: Int16(),
|
||||
Abi.iosArm: Int16(),
|
||||
Abi.iosArm64: Int16(),
|
||||
Abi.iosX64: Int16(),
|
||||
@@ -177,6 +181,7 @@ class Short extends AbiSpecificInteger {
|
||||
Abi.androidX64: Uint16(),
|
||||
Abi.fuchsiaArm64: Uint16(),
|
||||
Abi.fuchsiaX64: Uint16(),
|
||||
Abi.fuchsiaRiscv64: Uint16(),
|
||||
Abi.iosArm: Uint16(),
|
||||
Abi.iosArm64: Uint16(),
|
||||
Abi.iosX64: Uint16(),
|
||||
@@ -214,6 +219,7 @@ class UnsignedShort extends AbiSpecificInteger {
|
||||
Abi.androidX64: Int32(),
|
||||
Abi.fuchsiaArm64: Int32(),
|
||||
Abi.fuchsiaX64: Int32(),
|
||||
Abi.fuchsiaRiscv64: Int32(),
|
||||
Abi.iosArm: Int32(),
|
||||
Abi.iosArm64: Int32(),
|
||||
Abi.iosX64: Int32(),
|
||||
@@ -251,6 +257,7 @@ class Int extends AbiSpecificInteger {
|
||||
Abi.androidX64: Uint32(),
|
||||
Abi.fuchsiaArm64: Uint32(),
|
||||
Abi.fuchsiaX64: Uint32(),
|
||||
Abi.fuchsiaRiscv64: Uint32(),
|
||||
Abi.iosArm: Uint32(),
|
||||
Abi.iosArm64: Uint32(),
|
||||
Abi.iosX64: Uint32(),
|
||||
@@ -289,6 +296,7 @@ class UnsignedInt extends AbiSpecificInteger {
|
||||
Abi.androidX64: Int64(),
|
||||
Abi.fuchsiaArm64: Int64(),
|
||||
Abi.fuchsiaX64: Int64(),
|
||||
Abi.fuchsiaRiscv64: Int64(),
|
||||
Abi.iosArm: Int32(),
|
||||
Abi.iosArm64: Int64(),
|
||||
Abi.iosX64: Int64(),
|
||||
@@ -327,6 +335,7 @@ class Long extends AbiSpecificInteger {
|
||||
Abi.androidX64: Uint64(),
|
||||
Abi.fuchsiaArm64: Uint64(),
|
||||
Abi.fuchsiaX64: Uint64(),
|
||||
Abi.fuchsiaRiscv64: Uint64(),
|
||||
Abi.iosArm: Uint32(),
|
||||
Abi.iosArm64: Uint64(),
|
||||
Abi.iosX64: Uint64(),
|
||||
@@ -364,6 +373,7 @@ class UnsignedLong extends AbiSpecificInteger {
|
||||
Abi.androidX64: Int64(),
|
||||
Abi.fuchsiaArm64: Int64(),
|
||||
Abi.fuchsiaX64: Int64(),
|
||||
Abi.fuchsiaRiscv64: Int64(),
|
||||
Abi.iosArm: Int64(),
|
||||
Abi.iosArm64: Int64(),
|
||||
Abi.iosX64: Int64(),
|
||||
@@ -401,6 +411,7 @@ class LongLong extends AbiSpecificInteger {
|
||||
Abi.androidX64: Uint64(),
|
||||
Abi.fuchsiaArm64: Uint64(),
|
||||
Abi.fuchsiaX64: Uint64(),
|
||||
Abi.fuchsiaRiscv64: Uint64(),
|
||||
Abi.iosArm: Uint64(),
|
||||
Abi.iosArm64: Uint64(),
|
||||
Abi.iosX64: Uint64(),
|
||||
@@ -433,6 +444,7 @@ class UnsignedLongLong extends AbiSpecificInteger {
|
||||
Abi.androidX64: Int64(),
|
||||
Abi.fuchsiaArm64: Int64(),
|
||||
Abi.fuchsiaX64: Int64(),
|
||||
Abi.fuchsiaRiscv64: Int64(),
|
||||
Abi.iosArm: Int32(),
|
||||
Abi.iosArm64: Int64(),
|
||||
Abi.iosX64: Int64(),
|
||||
@@ -466,6 +478,7 @@ class IntPtr extends AbiSpecificInteger {
|
||||
Abi.androidX64: Uint64(),
|
||||
Abi.fuchsiaArm64: Uint64(),
|
||||
Abi.fuchsiaX64: Uint64(),
|
||||
Abi.fuchsiaRiscv64: Uint64(),
|
||||
Abi.iosArm: Uint32(),
|
||||
Abi.iosArm64: Uint64(),
|
||||
Abi.iosX64: Uint64(),
|
||||
@@ -499,6 +512,7 @@ class UintPtr extends AbiSpecificInteger {
|
||||
Abi.androidX64: Uint64(),
|
||||
Abi.fuchsiaArm64: Uint64(),
|
||||
Abi.fuchsiaX64: Uint64(),
|
||||
Abi.fuchsiaRiscv64: Uint64(),
|
||||
Abi.iosArm: Uint32(),
|
||||
Abi.iosArm64: Uint64(),
|
||||
Abi.iosX64: Uint64(),
|
||||
@@ -535,6 +549,7 @@ class Size extends AbiSpecificInteger {
|
||||
Abi.androidX64: Uint32(),
|
||||
Abi.fuchsiaArm64: Uint32(),
|
||||
Abi.fuchsiaX64: Int32(),
|
||||
Abi.fuchsiaRiscv64: Int32(),
|
||||
Abi.iosArm: Int32(),
|
||||
Abi.iosArm64: Int32(),
|
||||
Abi.iosX64: Int32(),
|
||||
|
||||
+1
-1
@@ -422,7 +422,7 @@ def ProcessOptions(args):
|
||||
"Cross-compilation to %s is not supported on host os %s." %
|
||||
(os_name, HOST_OS))
|
||||
return False
|
||||
if not arch in ['x64', 'arm64', 'x64c', 'arm64c']:
|
||||
if not arch in ['x64', 'arm64', 'x64c', 'arm64c', 'riscv64']:
|
||||
print(
|
||||
"Cross-compilation to %s is not supported for architecture %s."
|
||||
% (os_name, arch))
|
||||
|
||||
Reference in New Issue
Block a user