diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-05-08 20:49:07 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-05-08 20:51:49 -0400 |
| commit | 9bbd71c9ab3915b8bd8619a319a0eb6de2e2d152 (patch) | |
| tree | 65ce7baa9c4fba0fbc25b72b81ce92faf9c5760a /std | |
| parent | 3bd5c16f39a67889600a2102b716ccf7f9ba70f0 (diff) | |
| download | zig-9bbd71c9ab3915b8bd8619a319a0eb6de2e2d152.tar.gz zig-9bbd71c9ab3915b8bd8619a319a0eb6de2e2d152.zip | |
add --bundle-compiler-rt function to link options
and use it when building libuserland.a
The self-hosted part of stage1 relies on zig's compiler-rt, and so we
include it in libuserland.a.
This should potentially be the default, but for now it's behind a linker
option.
self-hosted translate-c: small progress on translating functions.
Diffstat (limited to 'std')
| -rw-r--r-- | std/build.zig | 5 | ||||
| -rw-r--r-- | std/special/compiler_rt.zig | 387 |
2 files changed, 197 insertions, 195 deletions
diff --git a/std/build.zig b/std/build.zig index 4d6c915438..fa3bac83d0 100644 --- a/std/build.zig +++ b/std/build.zig @@ -941,6 +941,7 @@ pub const LibExeObjStep = struct { verbose_link: bool, verbose_cc: bool, disable_gen_h: bool, + bundle_compiler_rt: bool, c_std: Builder.CStd, override_std_dir: ?[]const u8, override_lib_dir: ?[]const u8, @@ -1050,6 +1051,7 @@ pub const LibExeObjStep = struct { .name_prefix = "", .filter = null, .disable_gen_h = false, + .bundle_compiler_rt = false, .output_dir = null, .need_system_paths = false, .single_threaded = false, @@ -1452,6 +1454,9 @@ pub const LibExeObjStep = struct { if (self.disable_gen_h) { try zig_args.append("--disable-gen-h"); } + if (self.bundle_compiler_rt) { + try zig_args.append("--bundle-compiler-rt"); + } switch (self.target) { Target.Native => {}, diff --git a/std/special/compiler_rt.zig b/std/special/compiler_rt.zig index 2faec8eab7..8f6f30ccc1 100644 --- a/std/special/compiler_rt.zig +++ b/std/special/compiler_rt.zig @@ -1,15 +1,13 @@ const builtin = @import("builtin"); const is_test = builtin.is_test; -const stack_probe = @import("compiler_rt/stack_probe.zig"); - comptime { const linkage = if (is_test) builtin.GlobalLinkage.Internal else builtin.GlobalLinkage.Weak; const strong_linkage = if (is_test) builtin.GlobalLinkage.Internal else builtin.GlobalLinkage.Strong; switch (builtin.arch) { .i386, .x86_64 => @export("__zig_probe_stack", @import("compiler_rt/stack_probe.zig").zig_probe_stack, linkage), - else => { } + else => {}, } @export("__lesf2", @import("compiler_rt/comparesf2.zig").__lesf2, linkage); @@ -499,7 +497,6 @@ nakedcc fn __aeabi_memcmp() noreturn { unreachable; } - extern fn __divmodsi4(a: i32, b: i32, rem: *i32) i32 { @setRuntimeSafety(is_test); @@ -1272,17 +1269,17 @@ fn test_one_udivsi3(a: u32, b: u32, expected_q: u32) void { test "test_divsi3" { const cases = [][3]i32{ - []i32{ 0, 1, 0}, - []i32{ 0, -1, 0}, - []i32{ 2, 1, 2}, - []i32{ 2, -1, -2}, - []i32{-2, 1, -2}, - []i32{-2, -1, 2}, - - []i32{@bitCast(i32, u32(0x80000000)), 1, @bitCast(i32, u32(0x80000000))}, - []i32{@bitCast(i32, u32(0x80000000)), -1, @bitCast(i32, u32(0x80000000))}, - []i32{@bitCast(i32, u32(0x80000000)), -2, 0x40000000}, - []i32{@bitCast(i32, u32(0x80000000)), 2, @bitCast(i32, u32(0xC0000000))}, + []i32{ 0, 1, 0 }, + []i32{ 0, -1, 0 }, + []i32{ 2, 1, 2 }, + []i32{ 2, -1, -2 }, + []i32{ -2, 1, -2 }, + []i32{ -2, -1, 2 }, + + []i32{ @bitCast(i32, u32(0x80000000)), 1, @bitCast(i32, u32(0x80000000)) }, + []i32{ @bitCast(i32, u32(0x80000000)), -1, @bitCast(i32, u32(0x80000000)) }, + []i32{ @bitCast(i32, u32(0x80000000)), -2, 0x40000000 }, + []i32{ @bitCast(i32, u32(0x80000000)), 2, @bitCast(i32, u32(0xC0000000)) }, }; for (cases) |case| { @@ -1297,19 +1294,19 @@ fn test_one_divsi3(a: i32, b: i32, expected_q: i32) void { test "test_divmodsi4" { const cases = [][4]i32{ - []i32{ 0, 1, 0, 0}, - []i32{ 0, -1, 0, 0}, - []i32{ 2, 1, 2, 0}, - []i32{ 2, -1, -2, 0}, - []i32{-2, 1, -2, 0}, - []i32{-2, -1, 2, 0}, - []i32{ 7, 5, 1, 2}, - []i32{-7, 5, -1, -2}, - []i32{19, 5, 3, 4}, - []i32{19, -5, -3, 4}, - - []i32{@bitCast(i32, u32(0x80000000)), 8, @bitCast(i32, u32(0xf0000000)), 0}, - []i32{@bitCast(i32, u32(0x80000007)), 8, @bitCast(i32, u32(0xf0000001)), -1}, + []i32{ 0, 1, 0, 0 }, + []i32{ 0, -1, 0, 0 }, + []i32{ 2, 1, 2, 0 }, + []i32{ 2, -1, -2, 0 }, + []i32{ -2, 1, -2, 0 }, + []i32{ -2, -1, 2, 0 }, + []i32{ 7, 5, 1, 2 }, + []i32{ -7, 5, -1, -2 }, + []i32{ 19, 5, 3, 4 }, + []i32{ 19, -5, -3, 4 }, + + []i32{ @bitCast(i32, u32(0x80000000)), 8, @bitCast(i32, u32(0xf0000000)), 0 }, + []i32{ @bitCast(i32, u32(0x80000007)), 8, @bitCast(i32, u32(0xf0000001)), -1 }, }; for (cases) |case| { @@ -1325,17 +1322,17 @@ fn test_one_divmodsi4(a: i32, b: i32, expected_q: i32, expected_r: i32) void { test "test_divdi3" { const cases = [][3]i64{ - []i64{ 0, 1, 0}, - []i64{ 0, -1, 0}, - []i64{ 2, 1, 2}, - []i64{ 2, -1, -2}, - []i64{-2, 1, -2}, - []i64{-2, -1, 2}, - - []i64{@bitCast(i64, u64(0x8000000000000000)), 1, @bitCast(i64, u64(0x8000000000000000))}, - []i64{@bitCast(i64, u64(0x8000000000000000)), -1, @bitCast(i64, u64(0x8000000000000000))}, - []i64{@bitCast(i64, u64(0x8000000000000000)), -2, 0x4000000000000000}, - []i64{@bitCast(i64, u64(0x8000000000000000)), 2, @bitCast(i64, u64(0xC000000000000000))}, + []i64{ 0, 1, 0 }, + []i64{ 0, -1, 0 }, + []i64{ 2, 1, 2 }, + []i64{ 2, -1, -2 }, + []i64{ -2, 1, -2 }, + []i64{ -2, -1, 2 }, + + []i64{ @bitCast(i64, u64(0x8000000000000000)), 1, @bitCast(i64, u64(0x8000000000000000)) }, + []i64{ @bitCast(i64, u64(0x8000000000000000)), -1, @bitCast(i64, u64(0x8000000000000000)) }, + []i64{ @bitCast(i64, u64(0x8000000000000000)), -2, 0x4000000000000000 }, + []i64{ @bitCast(i64, u64(0x8000000000000000)), 2, @bitCast(i64, u64(0xC000000000000000)) }, }; for (cases) |case| { @@ -1350,19 +1347,19 @@ fn test_one_divdi3(a: i64, b: i64, expected_q: i64) void { test "test_moddi3" { const cases = [][3]i64{ - []i64{0, 1, 0}, - []i64{0, -1, 0}, - []i64{5, 3, 2}, - []i64{5, -3, 2}, - []i64{-5, 3, -2}, - []i64{-5, -3, -2}, - - []i64{@bitCast(i64, @intCast(u64, 0x8000000000000000)), 1, 0}, - []i64{@bitCast(i64, @intCast(u64, 0x8000000000000000)), -1, 0}, - []i64{@bitCast(i64, @intCast(u64, 0x8000000000000000)), 2, 0}, - []i64{@bitCast(i64, @intCast(u64, 0x8000000000000000)), -2, 0}, - []i64{@bitCast(i64, @intCast(u64, 0x8000000000000000)), 3, -2}, - []i64{@bitCast(i64, @intCast(u64, 0x8000000000000000)), -3, -2}, + []i64{ 0, 1, 0 }, + []i64{ 0, -1, 0 }, + []i64{ 5, 3, 2 }, + []i64{ 5, -3, 2 }, + []i64{ -5, 3, -2 }, + []i64{ -5, -3, -2 }, + + []i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), 1, 0 }, + []i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), -1, 0 }, + []i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), 2, 0 }, + []i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), -2, 0 }, + []i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), 3, -2 }, + []i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), -3, -2 }, }; for (cases) |case| { @@ -1377,17 +1374,17 @@ fn test_one_moddi3(a: i64, b: i64, expected_r: i64) void { test "test_modsi3" { const cases = [][3]i32{ - []i32{0, 1, 0}, - []i32{0, -1, 0}, - []i32{5, 3, 2}, - []i32{5, -3, 2}, - []i32{-5, 3, -2}, - []i32{-5, -3, -2}, - []i32{@bitCast(i32, @intCast(u32, 0x80000000)), 1, 0x0}, - []i32{@bitCast(i32, @intCast(u32, 0x80000000)), 2, 0x0}, - []i32{@bitCast(i32, @intCast(u32, 0x80000000)), -2, 0x0}, - []i32{@bitCast(i32, @intCast(u32, 0x80000000)), 3, -2}, - []i32{@bitCast(i32, @intCast(u32, 0x80000000)), -3, -2}, + []i32{ 0, 1, 0 }, + []i32{ 0, -1, 0 }, + []i32{ 5, 3, 2 }, + []i32{ 5, -3, 2 }, + []i32{ -5, 3, -2 }, + []i32{ -5, -3, -2 }, + []i32{ @bitCast(i32, @intCast(u32, 0x80000000)), 1, 0x0 }, + []i32{ @bitCast(i32, @intCast(u32, 0x80000000)), 2, 0x0 }, + []i32{ @bitCast(i32, @intCast(u32, 0x80000000)), -2, 0x0 }, + []i32{ @bitCast(i32, @intCast(u32, 0x80000000)), 3, -2 }, + []i32{ @bitCast(i32, @intCast(u32, 0x80000000)), -3, -2 }, }; for (cases) |case| { @@ -1402,138 +1399,138 @@ fn test_one_modsi3(a: i32, b: i32, expected_r: i32) void { test "test_umodsi3" { const cases = [][3]u32{ - []u32{0x00000000, 0x00000001, 0x00000000}, - []u32{0x00000000, 0x00000002, 0x00000000}, - []u32{0x00000000, 0x00000003, 0x00000000}, - []u32{0x00000000, 0x00000010, 0x00000000}, - []u32{0x00000000, 0x078644FA, 0x00000000}, - []u32{0x00000000, 0x0747AE14, 0x00000000}, - []u32{0x00000000, 0x7FFFFFFF, 0x00000000}, - []u32{0x00000000, 0x80000000, 0x00000000}, - []u32{0x00000000, 0xFFFFFFFD, 0x00000000}, - []u32{0x00000000, 0xFFFFFFFE, 0x00000000}, - []u32{0x00000000, 0xFFFFFFFF, 0x00000000}, - []u32{0x00000001, 0x00000001, 0x00000000}, - []u32{0x00000001, 0x00000002, 0x00000001}, - []u32{0x00000001, 0x00000003, 0x00000001}, - []u32{0x00000001, 0x00000010, 0x00000001}, - []u32{0x00000001, 0x078644FA, 0x00000001}, - []u32{0x00000001, 0x0747AE14, 0x00000001}, - []u32{0x00000001, 0x7FFFFFFF, 0x00000001}, - []u32{0x00000001, 0x80000000, 0x00000001}, - []u32{0x00000001, 0xFFFFFFFD, 0x00000001}, - []u32{0x00000001, 0xFFFFFFFE, 0x00000001}, - []u32{0x00000001, 0xFFFFFFFF, 0x00000001}, - []u32{0x00000002, 0x00000001, 0x00000000}, - []u32{0x00000002, 0x00000002, 0x00000000}, - []u32{0x00000002, 0x00000003, 0x00000002}, - []u32{0x00000002, 0x00000010, 0x00000002}, - []u32{0x00000002, 0x078644FA, 0x00000002}, - []u32{0x00000002, 0x0747AE14, 0x00000002}, - []u32{0x00000002, 0x7FFFFFFF, 0x00000002}, - []u32{0x00000002, 0x80000000, 0x00000002}, - []u32{0x00000002, 0xFFFFFFFD, 0x00000002}, - []u32{0x00000002, 0xFFFFFFFE, 0x00000002}, - []u32{0x00000002, 0xFFFFFFFF, 0x00000002}, - []u32{0x00000003, 0x00000001, 0x00000000}, - []u32{0x00000003, 0x00000002, 0x00000001}, - []u32{0x00000003, 0x00000003, 0x00000000}, - []u32{0x00000003, 0x00000010, 0x00000003}, - []u32{0x00000003, 0x078644FA, 0x00000003}, - []u32{0x00000003, 0x0747AE14, 0x00000003}, - []u32{0x00000003, 0x7FFFFFFF, 0x00000003}, - []u32{0x00000003, 0x80000000, 0x00000003}, - []u32{0x00000003, 0xFFFFFFFD, 0x00000003}, - []u32{0x00000003, 0xFFFFFFFE, 0x00000003}, - []u32{0x00000003, 0xFFFFFFFF, 0x00000003}, - []u32{0x00000010, 0x00000001, 0x00000000}, - []u32{0x00000010, 0x00000002, 0x00000000}, - []u32{0x00000010, 0x00000003, 0x00000001}, - []u32{0x00000010, 0x00000010, 0x00000000}, - []u32{0x00000010, 0x078644FA, 0x00000010}, - []u32{0x00000010, 0x0747AE14, 0x00000010}, - []u32{0x00000010, 0x7FFFFFFF, 0x00000010}, - []u32{0x00000010, 0x80000000, 0x00000010}, - []u32{0x00000010, 0xFFFFFFFD, 0x00000010}, - []u32{0x00000010, 0xFFFFFFFE, 0x00000010}, - []u32{0x00000010, 0xFFFFFFFF, 0x00000010}, - []u32{0x078644FA, 0x00000001, 0x00000000}, - []u32{0x078644FA, 0x00000002, 0x00000000}, - []u32{0x078644FA, 0x00000003, 0x00000000}, - []u32{0x078644FA, 0x00000010, 0x0000000A}, - []u32{0x078644FA, 0x078644FA, 0x00000000}, - []u32{0x078644FA, 0x0747AE14, 0x003E96E6}, - []u32{0x078644FA, 0x7FFFFFFF, 0x078644FA}, - []u32{0x078644FA, 0x80000000, 0x078644FA}, - []u32{0x078644FA, 0xFFFFFFFD, 0x078644FA}, - []u32{0x078644FA, 0xFFFFFFFE, 0x078644FA}, - []u32{0x078644FA, 0xFFFFFFFF, 0x078644FA}, - []u32{0x0747AE14, 0x00000001, 0x00000000}, - []u32{0x0747AE14, 0x00000002, 0x00000000}, - []u32{0x0747AE14, 0x00000003, 0x00000002}, - []u32{0x0747AE14, 0x00000010, 0x00000004}, - []u32{0x0747AE14, 0x078644FA, 0x0747AE14}, - []u32{0x0747AE14, 0x0747AE14, 0x00000000}, - []u32{0x0747AE14, 0x7FFFFFFF, 0x0747AE14}, - []u32{0x0747AE14, 0x80000000, 0x0747AE14}, - []u32{0x0747AE14, 0xFFFFFFFD, 0x0747AE14}, - []u32{0x0747AE14, 0xFFFFFFFE, 0x0747AE14}, - []u32{0x0747AE14, 0xFFFFFFFF, 0x0747AE14}, - []u32{0x7FFFFFFF, 0x00000001, 0x00000000}, - []u32{0x7FFFFFFF, 0x00000002, 0x00000001}, - []u32{0x7FFFFFFF, 0x00000003, 0x00000001}, - []u32{0x7FFFFFFF, 0x00000010, 0x0000000F}, - []u32{0x7FFFFFFF, 0x078644FA, 0x00156B65}, - []u32{0x7FFFFFFF, 0x0747AE14, 0x043D70AB}, - []u32{0x7FFFFFFF, 0x7FFFFFFF, 0x00000000}, - []u32{0x7FFFFFFF, 0x80000000, 0x7FFFFFFF}, - []u32{0x7FFFFFFF, 0xFFFFFFFD, 0x7FFFFFFF}, - []u32{0x7FFFFFFF, 0xFFFFFFFE, 0x7FFFFFFF}, - []u32{0x7FFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF}, - []u32{0x80000000, 0x00000001, 0x00000000}, - []u32{0x80000000, 0x00000002, 0x00000000}, - []u32{0x80000000, 0x00000003, 0x00000002}, - []u32{0x80000000, 0x00000010, 0x00000000}, - []u32{0x80000000, 0x078644FA, 0x00156B66}, - []u32{0x80000000, 0x0747AE14, 0x043D70AC}, - []u32{0x80000000, 0x7FFFFFFF, 0x00000001}, - []u32{0x80000000, 0x80000000, 0x00000000}, - []u32{0x80000000, 0xFFFFFFFD, 0x80000000}, - []u32{0x80000000, 0xFFFFFFFE, 0x80000000}, - []u32{0x80000000, 0xFFFFFFFF, 0x80000000}, - []u32{0xFFFFFFFD, 0x00000001, 0x00000000}, - []u32{0xFFFFFFFD, 0x00000002, 0x00000001}, - []u32{0xFFFFFFFD, 0x00000003, 0x00000001}, - []u32{0xFFFFFFFD, 0x00000010, 0x0000000D}, - []u32{0xFFFFFFFD, 0x078644FA, 0x002AD6C9}, - []u32{0xFFFFFFFD, 0x0747AE14, 0x01333341}, - []u32{0xFFFFFFFD, 0x7FFFFFFF, 0x7FFFFFFE}, - []u32{0xFFFFFFFD, 0x80000000, 0x7FFFFFFD}, - []u32{0xFFFFFFFD, 0xFFFFFFFD, 0x00000000}, - []u32{0xFFFFFFFD, 0xFFFFFFFE, 0xFFFFFFFD}, - []u32{0xFFFFFFFD, 0xFFFFFFFF, 0xFFFFFFFD}, - []u32{0xFFFFFFFE, 0x00000001, 0x00000000}, - []u32{0xFFFFFFFE, 0x00000002, 0x00000000}, - []u32{0xFFFFFFFE, 0x00000003, 0x00000002}, - []u32{0xFFFFFFFE, 0x00000010, 0x0000000E}, - []u32{0xFFFFFFFE, 0x078644FA, 0x002AD6CA}, - []u32{0xFFFFFFFE, 0x0747AE14, 0x01333342}, - []u32{0xFFFFFFFE, 0x7FFFFFFF, 0x00000000}, - []u32{0xFFFFFFFE, 0x80000000, 0x7FFFFFFE}, - []u32{0xFFFFFFFE, 0xFFFFFFFD, 0x00000001}, - []u32{0xFFFFFFFE, 0xFFFFFFFE, 0x00000000}, - []u32{0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFE}, - []u32{0xFFFFFFFF, 0x00000001, 0x00000000}, - []u32{0xFFFFFFFF, 0x00000002, 0x00000001}, - []u32{0xFFFFFFFF, 0x00000003, 0x00000000}, - []u32{0xFFFFFFFF, 0x00000010, 0x0000000F}, - []u32{0xFFFFFFFF, 0x078644FA, 0x002AD6CB}, - []u32{0xFFFFFFFF, 0x0747AE14, 0x01333343}, - []u32{0xFFFFFFFF, 0x7FFFFFFF, 0x00000001}, - []u32{0xFFFFFFFF, 0x80000000, 0x7FFFFFFF}, - []u32{0xFFFFFFFF, 0xFFFFFFFD, 0x00000002}, - []u32{0xFFFFFFFF, 0xFFFFFFFE, 0x00000001}, - []u32{0xFFFFFFFF, 0xFFFFFFFF, 0x00000000} + []u32{ 0x00000000, 0x00000001, 0x00000000 }, + []u32{ 0x00000000, 0x00000002, 0x00000000 }, + []u32{ 0x00000000, 0x00000003, 0x00000000 }, + []u32{ 0x00000000, 0x00000010, 0x00000000 }, + []u32{ 0x00000000, 0x078644FA, 0x00000000 }, + []u32{ 0x00000000, 0x0747AE14, 0x00000000 }, + []u32{ 0x00000000, 0x7FFFFFFF, 0x00000000 }, + []u32{ 0x00000000, 0x80000000, 0x00000000 }, + []u32{ 0x00000000, 0xFFFFFFFD, 0x00000000 }, + []u32{ 0x00000000, 0xFFFFFFFE, 0x00000000 }, + []u32{ 0x00000000, 0xFFFFFFFF, 0x00000000 }, + []u32{ 0x00000001, 0x00000001, 0x00000000 }, + []u32{ 0x00000001, 0x00000002, 0x00000001 }, + []u32{ 0x00000001, 0x00000003, 0x00000001 }, + []u32{ 0x00000001, 0x00000010, 0x00000001 }, + []u32{ 0x00000001, 0x078644FA, 0x00000001 }, + []u32{ 0x00000001, 0x0747AE14, 0x00000001 }, + []u32{ 0x00000001, 0x7FFFFFFF, 0x00000001 }, + []u32{ 0x00000001, 0x80000000, 0x00000001 }, + []u32{ 0x00000001, 0xFFFFFFFD, 0x00000001 }, + []u32{ 0x00000001, 0xFFFFFFFE, 0x00000001 }, + []u32{ 0x00000001, 0xFFFFFFFF, 0x00000001 }, + []u32{ 0x00000002, 0x00000001, 0x00000000 }, + []u32{ 0x00000002, 0x00000002, 0x00000000 }, + []u32{ 0x00000002, 0x00000003, 0x00000002 }, + []u32{ 0x00000002, 0x00000010, 0x00000002 }, + []u32{ 0x00000002, 0x078644FA, 0x00000002 }, + []u32{ 0x00000002, 0x0747AE14, 0x00000002 }, + []u32{ 0x00000002, 0x7FFFFFFF, 0x00000002 }, + []u32{ 0x00000002, 0x80000000, 0x00000002 }, + []u32{ 0x00000002, 0xFFFFFFFD, 0x00000002 }, + []u32{ 0x00000002, 0xFFFFFFFE, 0x00000002 }, + []u32{ 0x00000002, 0xFFFFFFFF, 0x00000002 }, + []u32{ 0x00000003, 0x00000001, 0x00000000 }, + []u32{ 0x00000003, 0x00000002, 0x00000001 }, + []u32{ 0x00000003, 0x00000003, 0x00000000 }, + []u32{ 0x00000003, 0x00000010, 0x00000003 }, + []u32{ 0x00000003, 0x078644FA, 0x00000003 }, + []u32{ 0x00000003, 0x0747AE14, 0x00000003 }, + []u32{ 0x00000003, 0x7FFFFFFF, 0x00000003 }, + []u32{ 0x00000003, 0x80000000, 0x00000003 }, + []u32{ 0x00000003, 0xFFFFFFFD, 0x00000003 }, + []u32{ 0x00000003, 0xFFFFFFFE, 0x00000003 }, + []u32{ 0x00000003, 0xFFFFFFFF, 0x00000003 }, + []u32{ 0x00000010, 0x00000001, 0x00000000 }, + []u32{ 0x00000010, 0x00000002, 0x00000000 }, + []u32{ 0x00000010, 0x00000003, 0x00000001 }, + []u32{ 0x00000010, 0x00000010, 0x00000000 }, + []u32{ 0x00000010, 0x078644FA, 0x00000010 }, + []u32{ 0x00000010, 0x0747AE14, 0x00000010 }, + []u32{ 0x00000010, 0x7FFFFFFF, 0x00000010 }, + []u32{ 0x00000010, 0x80000000, 0x00000010 }, + []u32{ 0x00000010, 0xFFFFFFFD, 0x00000010 }, + []u32{ 0x00000010, 0xFFFFFFFE, 0x00000010 }, + []u32{ 0x00000010, 0xFFFFFFFF, 0x00000010 }, + []u32{ 0x078644FA, 0x00000001, 0x00000000 }, + []u32{ 0x078644FA, 0x00000002, 0x00000000 }, + []u32{ 0x078644FA, 0x00000003, 0x00000000 }, + []u32{ 0x078644FA, 0x00000010, 0x0000000A }, + []u32{ 0x078644FA, 0x078644FA, 0x00000000 }, + []u32{ 0x078644FA, 0x0747AE14, 0x003E96E6 }, + []u32{ 0x078644FA, 0x7FFFFFFF, 0x078644FA }, + []u32{ 0x078644FA, 0x80000000, 0x078644FA }, + []u32{ 0x078644FA, 0xFFFFFFFD, 0x078644FA }, + []u32{ 0x078644FA, 0xFFFFFFFE, 0x078644FA }, + []u32{ 0x078644FA, 0xFFFFFFFF, 0x078644FA }, + []u32{ 0x0747AE14, 0x00000001, 0x00000000 }, + []u32{ 0x0747AE14, 0x00000002, 0x00000000 }, + []u32{ 0x0747AE14, 0x00000003, 0x00000002 }, + []u32{ 0x0747AE14, 0x00000010, 0x00000004 }, + []u32{ 0x0747AE14, 0x078644FA, 0x0747AE14 }, + []u32{ 0x0747AE14, 0x0747AE14, 0x00000000 }, + []u32{ 0x0747AE14, 0x7FFFFFFF, 0x0747AE14 }, + []u32{ 0x0747AE14, 0x80000000, 0x0747AE14 }, + []u32{ 0x0747AE14, 0xFFFFFFFD, 0x0747AE14 }, + []u32{ 0x0747AE14, 0xFFFFFFFE, 0x0747AE14 }, + []u32{ 0x0747AE14, 0xFFFFFFFF, 0x0747AE14 }, + []u32{ 0x7FFFFFFF, 0x00000001, 0x00000000 }, + []u32{ 0x7FFFFFFF, 0x00000002, 0x00000001 }, + []u32{ 0x7FFFFFFF, 0x00000003, 0x00000001 }, + []u32{ 0x7FFFFFFF, 0x00000010, 0x0000000F }, + []u32{ 0x7FFFFFFF, 0x078644FA, 0x00156B65 }, + []u32{ 0x7FFFFFFF, 0x0747AE14, 0x043D70AB }, + []u32{ 0x7FFFFFFF, 0x7FFFFFFF, 0x00000000 }, + []u32{ 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF }, + []u32{ 0x7FFFFFFF, 0xFFFFFFFD, 0x7FFFFFFF }, + []u32{ 0x7FFFFFFF, 0xFFFFFFFE, 0x7FFFFFFF }, + []u32{ 0x7FFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF }, + []u32{ 0x80000000, 0x00000001, 0x00000000 }, + []u32{ 0x80000000, 0x00000002, 0x00000000 }, + []u32{ 0x80000000, 0x00000003, 0x00000002 }, + []u32{ 0x80000000, 0x00000010, 0x00000000 }, + []u32{ 0x80000000, 0x078644FA, 0x00156B66 }, + []u32{ 0x80000000, 0x0747AE14, 0x043D70AC }, + []u32{ 0x80000000, 0x7FFFFFFF, 0x00000001 }, + []u32{ 0x80000000, 0x80000000, 0x00000000 }, + []u32{ 0x80000000, 0xFFFFFFFD, 0x80000000 }, + []u32{ 0x80000000, 0xFFFFFFFE, 0x80000000 }, + []u32{ 0x80000000, 0xFFFFFFFF, 0x80000000 }, + []u32{ 0xFFFFFFFD, 0x00000001, 0x00000000 }, + []u32{ 0xFFFFFFFD, 0x00000002, 0x00000001 }, + []u32{ 0xFFFFFFFD, 0x00000003, 0x00000001 }, + []u32{ 0xFFFFFFFD, 0x00000010, 0x0000000D }, + []u32{ 0xFFFFFFFD, 0x078644FA, 0x002AD6C9 }, + []u32{ 0xFFFFFFFD, 0x0747AE14, 0x01333341 }, + []u32{ 0xFFFFFFFD, 0x7FFFFFFF, 0x7FFFFFFE }, + []u32{ 0xFFFFFFFD, 0x80000000, 0x7FFFFFFD }, + []u32{ 0xFFFFFFFD, 0xFFFFFFFD, 0x00000000 }, + []u32{ 0xFFFFFFFD, 0xFFFFFFFE, 0xFFFFFFFD }, + []u32{ 0xFFFFFFFD, 0xFFFFFFFF, 0xFFFFFFFD }, + []u32{ 0xFFFFFFFE, 0x00000001, 0x00000000 }, + []u32{ 0xFFFFFFFE, 0x00000002, 0x00000000 }, + []u32{ 0xFFFFFFFE, 0x00000003, 0x00000002 }, + []u32{ 0xFFFFFFFE, 0x00000010, 0x0000000E }, + []u32{ 0xFFFFFFFE, 0x078644FA, 0x002AD6CA }, + []u32{ 0xFFFFFFFE, 0x0747AE14, 0x01333342 }, + []u32{ 0xFFFFFFFE, 0x7FFFFFFF, 0x00000000 }, + []u32{ 0xFFFFFFFE, 0x80000000, 0x7FFFFFFE }, + []u32{ 0xFFFFFFFE, 0xFFFFFFFD, 0x00000001 }, + []u32{ 0xFFFFFFFE, 0xFFFFFFFE, 0x00000000 }, + []u32{ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFE }, + []u32{ 0xFFFFFFFF, 0x00000001, 0x00000000 }, + []u32{ 0xFFFFFFFF, 0x00000002, 0x00000001 }, + []u32{ 0xFFFFFFFF, 0x00000003, 0x00000000 }, + []u32{ 0xFFFFFFFF, 0x00000010, 0x0000000F }, + []u32{ 0xFFFFFFFF, 0x078644FA, 0x002AD6CB }, + []u32{ 0xFFFFFFFF, 0x0747AE14, 0x01333343 }, + []u32{ 0xFFFFFFFF, 0x7FFFFFFF, 0x00000001 }, + []u32{ 0xFFFFFFFF, 0x80000000, 0x7FFFFFFF }, + []u32{ 0xFFFFFFFF, 0xFFFFFFFD, 0x00000002 }, + []u32{ 0xFFFFFFFF, 0xFFFFFFFE, 0x00000001 }, + []u32{ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000 }, }; for (cases) |case| { |
