diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5be485..e5ce827 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,35 +2,44 @@ name: CI on: push: - branches: [ main ] + branches: [main] pull_request: workflow_dispatch: jobs: lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: mlugg/setup-zig@v1 - - uses: pre-commit/action@v3.0.1 - with: - extra_args: --all-files + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: mlugg/setup-zig@v1 + - uses: pre-commit/action@v3.0.1 + with: + extra_args: --all-files tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: mlugg/setup-zig@v1 - - name: Build - run: zig build test --summary all + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: mlugg/setup-zig@v1 + - uses: extractions/setup-just@v3 + - name: Run tests + run: zig build test --summary all + + - name: Run valgrind tests + run: | + sudo apt-get install -y valgrind + just test-valgrind build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: mlugg/setup-zig@v1 - - name: Build - run: zig build + strategy: + matrix: + os: [ubuntu-latest, ubuntu-24.04-arm] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: mlugg/setup-zig@v1 + - name: Build + run: zig build check: runs-on: ubuntu-latest diff --git a/Justfile b/Justfile index 33b6ed8..e399fcb 100644 --- a/Justfile +++ b/Justfile @@ -13,10 +13,15 @@ release: build cp -r ./zig-out/lib dist/ echo "size of core.c: $(cat dist/core.c | wc -l)" + # Append valgrind_wrapper.c to core.c + cat src/helpers/valgrind_wrapper.c >> dist/core.c + test: zig build test --summary all -test-c: +test-valgrind: + rm /tmp/runner*.fifo || true + clang -O3 src/tests/main.c dist/core.c -I includes/ -o clang-main && ./clang-main valgrind ./clang-main diff --git a/build.zig b/build.zig index 8fb4b43..c818972 100644 --- a/build.zig +++ b/build.zig @@ -20,6 +20,8 @@ pub fn build(b: *std.Build) void { // Tests // const test_main = b.addTest(.{ .root_source_file = b.path("src/root.zig"), .optimize = optimize, .link_libc = true, .test_runner = .{ .path = b.path("src/tests/runner.zig"), .mode = .simple } }); + test_main.addCSourceFile(.{ .file = b.path("src/helpers/valgrind_wrapper.c") }); + test_main.addIncludePath(b.path("includes")); test_main.linkLibC(); const run_test_main = b.addRunArtifact(test_main); b.step("test", "test utility functions").dependOn(&run_test_main.step); diff --git a/dist/core.c b/dist/core.c index 6fcb87d..6f01ba8 100644 --- a/dist/core.c +++ b/dist/core.c @@ -5,7 +5,7 @@ struct anon__lazy_58 { uintptr_t len; }; struct fifo_UnixPipe_Writer__538; -typedef struct anon__lazy_71 nav__987_39; +typedef struct anon__lazy_70 nav__987_39; struct mem_Allocator__206; typedef struct anon__lazy_58 nav__987_42; struct mem_Allocator_VTable__209; @@ -21,50 +21,50 @@ struct fifo_UnixPipe_Writer__538 { struct mem_Allocator__206 allocator; struct fs_File__546 file; }; -struct anon__lazy_71 { +struct anon__lazy_70 { struct fifo_UnixPipe_Writer__538 payload; uint16_t error; }; -struct fs_File_OpenFlags__1775; -struct fs_File_OpenFlags__1775 { +struct fs_File_OpenFlags__1820; +struct fs_File_OpenFlags__1820 { uint8_t mode; uint8_t lock; bool lock_nonblocking; bool allow_ctty; }; -typedef struct anon__lazy_85 nav__987_56; -struct anon__lazy_85 { +typedef struct anon__lazy_84 nav__987_56; +struct anon__lazy_84 { struct fs_File__546 payload; uint16_t error; }; struct fifo_UnixPipe_Reader__540; -typedef struct anon__lazy_88 nav__986_39; +typedef struct anon__lazy_87 nav__986_39; typedef struct anon__lazy_58 nav__986_42; struct fifo_UnixPipe_Reader__540 { struct mem_Allocator__206 allocator; struct fs_File__546 file; }; -struct anon__lazy_88 { +struct anon__lazy_87 { struct fifo_UnixPipe_Reader__540 payload; uint16_t error; }; -typedef struct anon__lazy_85 nav__986_56; +typedef struct anon__lazy_84 nav__986_56; struct instruments_perf_PerfInstrument__200; -typedef struct anon__lazy_94 nav__337_39; +typedef struct anon__lazy_93 nav__337_39; struct instruments_perf_PerfInstrument__200 { struct mem_Allocator__206 allocator; struct fifo_UnixPipe_Writer__538 writer; struct fifo_UnixPipe_Reader__540 reader; }; -struct anon__lazy_94 { +struct anon__lazy_93 { struct instruments_perf_PerfInstrument__200 payload; uint16_t error; }; typedef struct anon__lazy_58 nav__337_59; -typedef struct anon__lazy_71 nav__337_61; -typedef struct anon__lazy_88 nav__337_66; +typedef struct anon__lazy_70 nav__337_61; +typedef struct anon__lazy_87 nav__337_66; struct instruments_root_InstrumentHooks__188; -typedef struct anon__lazy_105 nav__314_39; +typedef struct anon__lazy_104 nav__314_39; struct instruments_valgrind_ValgrindInstrument__195; struct instruments_valgrind_ValgrindInstrument__195 { struct mem_Allocator__206 allocator; @@ -76,662 +76,662 @@ struct instruments_root_InstrumentHooks__188 { } payload; uint8_t tag; }; -struct anon__lazy_105 { +struct anon__lazy_104 { struct instruments_root_InstrumentHooks__188 payload; uint16_t error; }; -typedef struct anon__lazy_94 nav__314_62; -typedef struct anon__lazy_116 nav__231_46; -struct anon__lazy_116 { +typedef struct anon__lazy_93 nav__314_60; +typedef struct anon__lazy_114 nav__231_46; +struct anon__lazy_114 { struct instruments_root_InstrumentHooks__188 *payload; uint16_t error; }; -typedef struct anon__lazy_121 nav__231_51; +typedef struct anon__lazy_119 nav__231_51; struct mem_Allocator_VTable__209 { uint8_t *(*alloc)(void *, uintptr_t, uint8_t, uintptr_t); - bool (*resize)(void *, struct anon__lazy_121, uint8_t, uintptr_t, uintptr_t); - uint8_t *(*remap)(void *, struct anon__lazy_121, uint8_t, uintptr_t, uintptr_t); - void (*free)(void *, struct anon__lazy_121, uint8_t, uintptr_t); + bool (*resize)(void *, struct anon__lazy_119, uint8_t, uintptr_t, uintptr_t); + uint8_t *(*remap)(void *, struct anon__lazy_119, uint8_t, uintptr_t, uintptr_t); + void (*free)(void *, struct anon__lazy_119, uint8_t, uintptr_t); }; typedef struct anon__lazy_58 nav__231_60; -typedef struct anon__lazy_129 nav__231_62; -struct anon__lazy_129 { +typedef struct anon__lazy_127 nav__231_62; +struct anon__lazy_127 { struct anon__lazy_58 f0; }; -typedef struct anon__lazy_105 nav__231_76; -typedef struct anon__lazy_116 nav__3488_40; -typedef struct anon__lazy_134 nav__3488_51; -struct anon__lazy_134 { +typedef struct anon__lazy_104 nav__231_76; +typedef struct anon__lazy_114 nav__3488_40; +typedef struct anon__lazy_132 nav__3488_51; +struct anon__lazy_132 { uint8_t *payload; uint16_t error; }; typedef struct anon__lazy_58 nav__3489_39; -typedef struct anon__lazy_129 nav__3489_40; -struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889; -struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 { +typedef struct anon__lazy_127 nav__3489_40; +struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934; +struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 { struct fs_File__546 context; }; -struct io_Writer__1905; -typedef struct anon__lazy_145 nav__3489_54; -struct io_Writer__1905 { +struct io_Writer__1950; +typedef struct anon__lazy_143 nav__3489_54; +struct io_Writer__1950 { void const *context; - struct anon__lazy_145 (*writeFn)(void const *, struct anon__lazy_58); + struct anon__lazy_143 (*writeFn)(void const *, struct anon__lazy_58); }; -struct anon__lazy_145 { +struct anon__lazy_143 { uintptr_t payload; uint16_t error; }; typedef struct anon__lazy_58 nav__1053_39; -struct fs_Dir__1777; -struct fs_Dir__1777 { +struct fs_Dir__1822; +struct fs_Dir__1822 { int32_t fd; }; -typedef struct anon__lazy_85 nav__1050_39; +typedef struct anon__lazy_84 nav__1050_39; typedef struct anon__lazy_58 nav__1050_41; -struct shared_Command__1959; -struct shared_Command__struct_1962__1962; +struct shared_Command__2004; +struct shared_Command__struct_2007__2007; typedef struct anon__lazy_58 nav__991_44; -struct shared_Command__struct_1962__1962 { +struct shared_Command__struct_2007__2007 { struct anon__lazy_58 uri; uint32_t pid; }; -struct shared_Command__struct_1963__1963; -struct shared_Command__struct_1963__1963 { +struct shared_Command__struct_2008__2008; +struct shared_Command__struct_2008__2008 { struct anon__lazy_58 name; struct anon__lazy_58 version; }; -struct shared_Command__1959 { +struct shared_Command__2004 { union { - struct shared_Command__struct_1962__1962 CurrentBenchmark; - struct shared_Command__struct_1963__1963 SetIntegration; + struct shared_Command__struct_2007__2007 CurrentBenchmark; + struct shared_Command__struct_2008__2008 SetIntegration; } payload; uint8_t tag; }; -struct array_list_ArrayListAligned_28u8_2cnull_29__1990; -typedef struct anon__lazy_121 nav__991_55; -struct anon__lazy_121 { +struct array_list_ArrayListAligned_28u8_2cnull_29__2035; +typedef struct anon__lazy_119 nav__991_55; +struct anon__lazy_119 { uint8_t *ptr; uintptr_t len; }; -struct array_list_ArrayListAligned_28u8_2cnull_29__1990 { - struct anon__lazy_121 items; +struct array_list_ArrayListAligned_28u8_2cnull_29__2035 { + struct anon__lazy_119 items; uintptr_t capacity; struct mem_Allocator__206 allocator; }; -struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015; -struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *context; +struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060; +struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *context; }; -typedef struct anon__lazy_187 nav__4230_38; -struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326; -struct anon__lazy_187 { +typedef struct anon__lazy_184 nav__4228_38; +struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315; +struct anon__lazy_184 { uint32_t payload; uint16_t error; }; -struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303; -struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 { - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *context; +struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292; +struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 { + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *context; }; -struct io_Reader__2450; -typedef struct anon__lazy_145 nav__4230_50; -typedef struct anon__lazy_121 nav__4230_52; -struct io_Reader__2450 { +struct io_Reader__2439; +typedef struct anon__lazy_143 nav__4228_50; +typedef struct anon__lazy_119 nav__4228_52; +struct io_Reader__2439 { void const *context; - struct anon__lazy_145 (*readFn)(void const *, struct anon__lazy_121); + struct anon__lazy_143 (*readFn)(void const *, struct anon__lazy_119); }; -typedef struct anon__lazy_205 nav__4230_64; -struct anon__lazy_205 { +typedef struct anon__lazy_202 nav__4228_64; +struct anon__lazy_202 { uint16_t error; uint8_t payload[4]; }; -typedef struct anon__lazy_187 nav__4229_38; -typedef struct anon__lazy_121 nav__4272_39; -typedef struct anon__lazy_209 nav__4272_40; -struct anon__lazy_209 { - struct anon__lazy_121 payload; +typedef struct anon__lazy_184 nav__4227_38; +typedef struct anon__lazy_119 nav__4270_39; +typedef struct anon__lazy_206 nav__4270_40; +struct anon__lazy_206 { + struct anon__lazy_119 payload; uint16_t error; }; -typedef struct anon__lazy_145 nav__4272_59; -typedef struct anon__lazy_213 nav__4272_69; -struct anon__lazy_213 { +typedef struct anon__lazy_143 nav__4270_59; +typedef struct anon__lazy_210 nav__4270_69; +struct anon__lazy_210 { uint64_t payload; uint16_t error; }; -typedef struct anon__lazy_215 nav__4272_72; -struct anon__lazy_215 { +typedef struct anon__lazy_212 nav__4270_72; +struct anon__lazy_212 { uint16_t error; uint8_t payload[8]; }; -typedef struct anon__lazy_58 nav__4271_39; -typedef struct anon__lazy_218 nav__4271_40; -struct anon__lazy_218 { +typedef struct anon__lazy_58 nav__4269_39; +typedef struct anon__lazy_215 nav__4269_40; +struct anon__lazy_215 { struct anon__lazy_58 payload; uint16_t error; }; -typedef struct anon__lazy_121 nav__4271_55; -typedef struct anon__lazy_209 nav__4271_57; -typedef struct anon__lazy_222 nav__4270_39; -typedef struct anon__lazy_58 nav__4270_44; -struct anon__lazy_222 { - struct shared_Command__struct_1962__1962 payload; +typedef struct anon__lazy_119 nav__4269_55; +typedef struct anon__lazy_206 nav__4269_57; +typedef struct anon__lazy_219 nav__4268_39; +typedef struct anon__lazy_58 nav__4268_44; +struct anon__lazy_219 { + struct shared_Command__struct_2007__2007 payload; uint16_t error; }; -typedef struct anon__lazy_187 nav__4270_57; -typedef struct anon__lazy_218 nav__4270_60; -typedef struct anon__lazy_222 nav__4269_39; -typedef struct anon__lazy_58 nav__4269_44; -typedef struct anon__lazy_230 nav__4277_39; -typedef struct anon__lazy_58 nav__4277_44; -struct anon__lazy_230 { - struct shared_Command__struct_1963__1963 payload; +typedef struct anon__lazy_184 nav__4268_57; +typedef struct anon__lazy_215 nav__4268_60; +typedef struct anon__lazy_219 nav__4267_39; +typedef struct anon__lazy_58 nav__4267_44; +typedef struct anon__lazy_227 nav__4275_39; +typedef struct anon__lazy_58 nav__4275_44; +struct anon__lazy_227 { + struct shared_Command__struct_2008__2008 payload; uint16_t error; }; -typedef struct anon__lazy_218 nav__4277_57; -typedef struct anon__lazy_230 nav__4276_39; -typedef struct anon__lazy_58 nav__4276_44; -typedef struct anon__lazy_234 nav__4228_39; -typedef struct anon__lazy_58 nav__4228_45; -struct anon__lazy_234 { - struct shared_Command__1959 payload; +typedef struct anon__lazy_215 nav__4275_57; +typedef struct anon__lazy_227 nav__4274_39; +typedef struct anon__lazy_58 nav__4274_44; +typedef struct anon__lazy_231 nav__4226_39; +typedef struct anon__lazy_58 nav__4226_45; +struct anon__lazy_231 { + struct shared_Command__2004 payload; uint16_t error; }; -typedef struct anon__lazy_187 nav__4228_61; -typedef struct anon__lazy_222 nav__4228_63; -typedef struct anon__lazy_230 nav__4228_65; -typedef struct anon__lazy_234 nav__4227_39; -typedef struct anon__lazy_58 nav__4227_45; -typedef struct anon__lazy_234 nav__996_39; +typedef struct anon__lazy_184 nav__4226_61; +typedef struct anon__lazy_219 nav__4226_63; +typedef struct anon__lazy_227 nav__4226_65; +typedef struct anon__lazy_231 nav__4225_39; +typedef struct anon__lazy_58 nav__4225_45; +typedef struct anon__lazy_231 nav__996_39; typedef struct anon__lazy_58 nav__996_45; -typedef struct anon__lazy_121 nav__996_66; -typedef struct anon__lazy_145 nav__996_69; -typedef struct anon__lazy_209 nav__996_73; -struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 { - struct anon__lazy_121 buffer; +typedef struct anon__lazy_119 nav__996_66; +typedef struct anon__lazy_143 nav__996_69; +typedef struct anon__lazy_206 nav__996_73; +struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 { + struct anon__lazy_119 buffer; uintptr_t pos; }; -typedef struct anon__lazy_234 nav__997_39; -typedef struct anon__lazy_243 nav__997_42; +typedef struct anon__lazy_231 nav__997_39; +typedef struct anon__lazy_240 nav__997_42; typedef struct anon__lazy_58 nav__997_46; -struct anon__lazy_243 { +struct anon__lazy_240 { uint64_t payload; bool is_null; }; -typedef struct anon__lazy_247 nav__997_57; -struct anon__lazy_247 { +typedef struct anon__lazy_244 nav__997_57; +struct anon__lazy_244 { zig_i128 f0; uint8_t f1; }; -typedef struct anon__lazy_243 nav__998_40; +typedef struct anon__lazy_240 nav__998_40; typedef struct anon__lazy_58 nav__998_48; -typedef struct anon__lazy_234 nav__998_55; +typedef struct anon__lazy_231 nav__998_55; typedef struct anon__lazy_58 nav__339_44; -typedef struct anon__lazy_243 nav__339_67; +typedef struct anon__lazy_240 nav__339_67; typedef struct anon__lazy_58 nav__340_45; -typedef struct anon__lazy_134 nav__3740_39; -typedef struct anon__lazy_121 nav__3740_52; -typedef struct anon__lazy_145 nav__3820_38; -typedef struct anon__lazy_58 nav__3820_41; -typedef struct anon__lazy_58 nav__3837_40; -typedef struct anon__lazy_129 nav__3837_41; -typedef struct anon__lazy_145 nav__3837_44; -typedef struct anon__lazy_58 nav__3872_39; -typedef struct anon__lazy_58 nav__3696_40; -typedef struct anon__lazy_277 nav__3696_49; -struct anon__lazy_277 { +typedef struct anon__lazy_132 nav__3738_39; +typedef struct anon__lazy_119 nav__3738_52; +typedef struct anon__lazy_143 nav__3818_38; +typedef struct anon__lazy_58 nav__3818_41; +typedef struct anon__lazy_58 nav__3835_40; +typedef struct anon__lazy_127 nav__3835_41; +typedef struct anon__lazy_143 nav__3835_44; +typedef struct anon__lazy_58 nav__3870_39; +typedef struct anon__lazy_58 nav__3694_40; +typedef struct anon__lazy_274 nav__3694_49; +struct anon__lazy_274 { uint16_t error; uint8_t payload[4096]; }; -typedef struct anon__lazy_85 nav__3632_39; -typedef struct anon__lazy_58 nav__3632_42; -typedef struct anon__lazy_277 nav__3632_53; -typedef struct anon__lazy_121 nav__3985_42; -typedef struct anon__lazy_58 nav__4091_46; -typedef struct anon__lazy_121 nav__3987_41; +typedef struct anon__lazy_84 nav__3630_39; +typedef struct anon__lazy_58 nav__3630_42; +typedef struct anon__lazy_274 nav__3630_53; +typedef struct anon__lazy_119 nav__3983_42; +typedef struct anon__lazy_58 nav__4089_46; +typedef struct anon__lazy_119 nav__3985_41; typedef struct anon__lazy_58 nav__1144_40; -typedef struct anon__lazy_145 nav__1144_47; -typedef struct anon__lazy_296 nav__1144_49; -struct anon__lazy_296 { +typedef struct anon__lazy_143 nav__1144_47; +typedef struct anon__lazy_293 nav__1144_49; +struct anon__lazy_293 { uintptr_t f0; uint8_t f1; }; -struct os_linux_timespec__struct_2960__2960; -struct os_linux_timespec__struct_2960__2960 { +struct os_linux_timespec__struct_2902__2902; +struct os_linux_timespec__struct_2902__2902 { intptr_t sec; intptr_t nsec; }; -typedef struct anon__lazy_301 nav__4133_41; -struct anon__lazy_301 { - struct os_linux_timespec__struct_2960__2960 payload; +typedef struct anon__lazy_298 nav__4131_41; +struct anon__lazy_298 { + struct os_linux_timespec__struct_2902__2902 payload; uint16_t error; }; -typedef struct anon__lazy_247 nav__4133_43; -typedef struct anon__lazy_145 nav__1134_38; -typedef struct anon__lazy_121 nav__1134_41; -typedef struct anon__lazy_296 nav__1134_49; -typedef struct anon__lazy_121 nav__4161_39; -typedef struct anon__lazy_209 nav__4161_40; -typedef struct anon__lazy_134 nav__4161_51; -typedef struct anon__lazy_121 nav__4193_40; -typedef struct anon__lazy_145 nav__4226_38; -typedef struct anon__lazy_121 nav__4226_41; -typedef struct anon__lazy_205 nav__4268_39; -typedef struct anon__lazy_145 nav__4268_44; -typedef struct anon__lazy_121 nav__4268_46; -typedef struct anon__lazy_215 nav__4273_39; -typedef struct anon__lazy_145 nav__4273_44; -typedef struct anon__lazy_121 nav__4273_46; -typedef struct anon__lazy_145 nav__4233_38; -typedef struct anon__lazy_121 nav__4233_41; -typedef struct anon__lazy_58 nav__4274_40; -typedef struct anon__lazy_322 nav__4274_42; -struct anon__lazy_322 { +typedef struct anon__lazy_244 nav__4131_43; +typedef struct anon__lazy_143 nav__1134_38; +typedef struct anon__lazy_119 nav__1134_41; +typedef struct anon__lazy_293 nav__1134_49; +typedef struct anon__lazy_119 nav__4159_39; +typedef struct anon__lazy_206 nav__4159_40; +typedef struct anon__lazy_132 nav__4159_51; +typedef struct anon__lazy_119 nav__4191_40; +typedef struct anon__lazy_143 nav__4224_38; +typedef struct anon__lazy_119 nav__4224_41; +typedef struct anon__lazy_202 nav__4266_39; +typedef struct anon__lazy_143 nav__4266_44; +typedef struct anon__lazy_119 nav__4266_46; +typedef struct anon__lazy_212 nav__4271_39; +typedef struct anon__lazy_143 nav__4271_44; +typedef struct anon__lazy_119 nav__4271_46; +typedef struct anon__lazy_143 nav__4231_38; +typedef struct anon__lazy_119 nav__4231_41; +typedef struct anon__lazy_58 nav__4272_40; +typedef struct anon__lazy_319 nav__4272_42; +struct anon__lazy_319 { uintptr_t payload; bool is_null; }; -typedef struct anon__lazy_121 nav__4278_40; -typedef struct anon__lazy_330 nav__4296_42; -struct anon__lazy_330 { +typedef struct anon__lazy_119 nav__4276_40; +typedef struct anon__lazy_327 nav__4294_42; +struct anon__lazy_327 { intptr_t payload; bool is_null; }; -typedef struct anon__lazy_58 nav__3935_43; -struct Thread_Mutex_Recursive__3310; -struct Thread_Mutex__3308; -struct Thread_Mutex_DebugImpl__3323; -struct atomic_Value_28u32_29__3290; -struct atomic_Value_28u32_29__3290 { +typedef struct anon__lazy_58 nav__3933_43; +struct Thread_Mutex_Recursive__3253; +struct Thread_Mutex__3251; +struct Thread_Mutex_DebugImpl__3266; +struct atomic_Value_28u32_29__3233; +struct atomic_Value_28u32_29__3233 { uint32_t raw; }; -struct Thread_Mutex_FutexImpl__3338; -struct Thread_Mutex_FutexImpl__3338 { - struct atomic_Value_28u32_29__3290 state; +struct Thread_Mutex_FutexImpl__3281; +struct Thread_Mutex_FutexImpl__3281 { + struct atomic_Value_28u32_29__3233 state; }; -struct Thread_Mutex_DebugImpl__3323 { - struct atomic_Value_28u32_29__3290 locking_thread; - struct Thread_Mutex_FutexImpl__3338 impl; +struct Thread_Mutex_DebugImpl__3266 { + struct atomic_Value_28u32_29__3233 locking_thread; + struct Thread_Mutex_FutexImpl__3281 impl; }; -struct Thread_Mutex__3308 { - struct Thread_Mutex_DebugImpl__3323 impl; +struct Thread_Mutex__3251 { + struct Thread_Mutex_DebugImpl__3266 impl; }; -struct Thread_Mutex_Recursive__3310 { +struct Thread_Mutex_Recursive__3253 { uintptr_t lock_count; - struct Thread_Mutex__3308 mutex; + struct Thread_Mutex__3251 mutex; uint32_t thread_id; }; -typedef struct anon__lazy_145 nav__1143_38; +typedef struct anon__lazy_143 nav__1143_38; typedef struct anon__lazy_58 nav__1143_41; -typedef struct anon__lazy_58 nav__4556_40; -typedef struct anon__lazy_129 nav__4556_41; -typedef struct anon__lazy_145 nav__4556_44; -struct fmt_FormatOptions__3815; -typedef struct anon__lazy_322 nav__4556_55; -struct fmt_FormatOptions__3815 { - struct anon__lazy_322 precision; - struct anon__lazy_322 width; +typedef struct anon__lazy_58 nav__4554_40; +typedef struct anon__lazy_127 nav__4554_41; +typedef struct anon__lazy_143 nav__4554_44; +struct fmt_FormatOptions__3758; +typedef struct anon__lazy_319 nav__4554_55; +struct fmt_FormatOptions__3758 { + struct anon__lazy_319 precision; + struct anon__lazy_319 width; uint32_t fill; uint8_t alignment; }; -typedef struct anon__lazy_58 nav__3878_39; -typedef struct anon__lazy_277 nav__1628_39; +typedef struct anon__lazy_58 nav__3876_39; +typedef struct anon__lazy_274 nav__1628_39; typedef struct anon__lazy_58 nav__1628_41; -typedef struct anon__lazy_322 nav__1628_46; -typedef struct anon__lazy_121 nav__1628_49; -typedef struct anon__lazy_85 nav__3633_39; -typedef struct anon__lazy_362 nav__3633_50; -struct anon__lazy_362 { +typedef struct anon__lazy_319 nav__1628_46; +typedef struct anon__lazy_119 nav__1628_49; +typedef struct anon__lazy_84 nav__3631_39; +typedef struct anon__lazy_359 nav__3631_50; +struct anon__lazy_359 { int32_t payload; uint16_t error; }; -typedef struct anon__lazy_58 nav__4569_46; -typedef struct anon__lazy_121 nav__4033_39; -typedef struct anon__lazy_301 nav__1544_39; -typedef struct anon__lazy_145 nav__1133_38; -typedef struct anon__lazy_121 nav__1133_41; -typedef struct anon__lazy_134 nav__4570_39; -typedef struct anon__lazy_145 nav__4570_49; -typedef struct anon__lazy_145 nav__4185_38; -typedef struct anon__lazy_121 nav__4185_42; -typedef struct anon__lazy_296 nav__4185_52; -typedef struct anon__lazy_121 nav__4235_40; -typedef struct anon__lazy_145 nav__4235_43; -typedef struct anon__lazy_145 nav__4234_38; -typedef struct anon__lazy_121 nav__4234_41; -typedef struct anon__lazy_296 nav__4234_52; -typedef struct anon__lazy_58 nav__4093_39; -typedef struct anon__lazy_322 nav__4093_40; -typedef struct anon__lazy_121 nav__4571_39; -typedef struct anon__lazy_330 nav__4635_38; -typedef struct anon__lazy_382 nav__2615_39; -struct anon__lazy_382 { +typedef struct anon__lazy_58 nav__4567_46; +typedef struct anon__lazy_119 nav__4031_39; +typedef struct anon__lazy_298 nav__1544_39; +typedef struct anon__lazy_143 nav__1133_38; +typedef struct anon__lazy_119 nav__1133_41; +typedef struct anon__lazy_132 nav__4568_39; +typedef struct anon__lazy_143 nav__4568_49; +typedef struct anon__lazy_143 nav__4183_38; +typedef struct anon__lazy_119 nav__4183_42; +typedef struct anon__lazy_293 nav__4183_52; +typedef struct anon__lazy_119 nav__4233_40; +typedef struct anon__lazy_143 nav__4233_43; +typedef struct anon__lazy_143 nav__4232_38; +typedef struct anon__lazy_119 nav__4232_41; +typedef struct anon__lazy_293 nav__4232_52; +typedef struct anon__lazy_58 nav__4091_39; +typedef struct anon__lazy_319 nav__4091_40; +typedef struct anon__lazy_119 nav__4569_39; +typedef struct anon__lazy_327 nav__4633_38; +typedef struct anon__lazy_379 nav__2615_39; +struct anon__lazy_379 { intptr_t f0; uint8_t f1; }; -typedef struct anon__lazy_58 nav__4637_40; -typedef struct anon__lazy_121 nav__4637_51; -typedef struct anon__lazy_296 nav__4638_39; -typedef struct anon__lazy_296 nav__4765_55; -struct Progress__2779; -struct Thread__2710; -struct Thread_PosixThreadImpl__3044; -struct Thread_PosixThreadImpl__3044 { +typedef struct anon__lazy_58 nav__4635_40; +typedef struct anon__lazy_119 nav__4635_51; +typedef struct anon__lazy_293 nav__4636_39; +typedef struct anon__lazy_293 nav__4763_55; +struct Progress__2767; +struct Thread__2699; +struct Thread_PosixThreadImpl__2986; +struct Thread_PosixThreadImpl__2986 { void *handle; }; -struct Thread__2710 { - struct Thread_PosixThreadImpl__3044 impl; +struct Thread__2699 { + struct Thread_PosixThreadImpl__2986 impl; }; -typedef struct anon__lazy_396 nav__4368_45; -struct anon__lazy_396 { - struct Thread__2710 payload; +typedef struct anon__lazy_393 nav__4366_45; +struct anon__lazy_393 { + struct Thread__2699 payload; bool is_null; }; -typedef struct anon__lazy_121 nav__4368_48; -struct Progress_Node_Storage__3269; -typedef struct anon__lazy_400 nav__4368_52; -struct anon__lazy_400 { - struct Progress_Node_Storage__3269 *ptr; +typedef struct anon__lazy_119 nav__4366_48; +struct Progress_Node_Storage__3212; +typedef struct anon__lazy_397 nav__4366_52; +struct anon__lazy_397 { + struct Progress_Node_Storage__3212 *ptr; uintptr_t len; }; -struct Thread_ResetEvent__3254; -struct Thread_ResetEvent_FutexImpl__3282; -struct Thread_ResetEvent_FutexImpl__3282 { - struct atomic_Value_28u32_29__3290 state; +struct Thread_ResetEvent__3198; +struct Thread_ResetEvent_FutexImpl__3225; +struct Thread_ResetEvent_FutexImpl__3225 { + struct atomic_Value_28u32_29__3233 state; }; -struct Thread_ResetEvent__3254 { - struct Thread_ResetEvent_FutexImpl__3282 impl; +struct Thread_ResetEvent__3198 { + struct Thread_ResetEvent_FutexImpl__3225 impl; }; -struct Progress_TerminalMode__3251; -struct Progress_TerminalMode__3251 { +struct Progress_TerminalMode__3195; +struct Progress_TerminalMode__3195 { uint8_t tag; }; -struct Progress__2779 { - struct anon__lazy_396 update_thread; +struct Progress__2767 { + struct anon__lazy_393 update_thread; uint64_t refresh_rate_ns; uint64_t initial_delay_ns; - struct anon__lazy_121 draw_buffer; - struct anon__lazy_121 node_parents; - struct anon__lazy_400 node_storage; - struct anon__lazy_121 node_freelist; + struct anon__lazy_119 draw_buffer; + struct anon__lazy_119 node_parents; + struct anon__lazy_397 node_storage; + struct anon__lazy_119 node_freelist; struct fs_File__546 terminal; - struct Thread_ResetEvent__3254 redraw_event; + struct Thread_ResetEvent__3198 redraw_event; uint32_t node_end_index; uint16_t rows; uint16_t cols; - struct Progress_TerminalMode__3251 terminal_mode; + struct Progress_TerminalMode__3195 terminal_mode; bool done; bool need_clear; uint8_t node_freelist_first; }; -typedef struct anon__lazy_58 nav__4368_68; -typedef struct anon__lazy_145 nav__1363_38; +typedef struct anon__lazy_58 nav__4366_68; +typedef struct anon__lazy_143 nav__1363_38; typedef struct anon__lazy_58 nav__1363_40; -typedef struct anon__lazy_58 nav__3828_40; -typedef struct anon__lazy_145 nav__3828_43; -typedef struct anon__lazy_296 nav__3828_52; -typedef struct anon__lazy_58 nav__5144_39; -typedef struct anon__lazy_322 nav__5144_44; -typedef struct anon__lazy_145 nav__5144_48; -typedef struct anon__lazy_296 nav__4766_52; -typedef struct anon__lazy_322 nav__5145_38; -typedef struct anon__lazy_58 nav__5145_40; -typedef struct anon__lazy_362 nav__1375_38; +typedef struct anon__lazy_58 nav__3826_40; +typedef struct anon__lazy_143 nav__3826_43; +typedef struct anon__lazy_293 nav__3826_52; +typedef struct anon__lazy_58 nav__5142_39; +typedef struct anon__lazy_319 nav__5142_44; +typedef struct anon__lazy_143 nav__5142_48; +typedef struct anon__lazy_293 nav__4764_52; +typedef struct anon__lazy_319 nav__5143_38; +typedef struct anon__lazy_58 nav__5143_40; +typedef struct anon__lazy_359 nav__1375_38; +typedef struct anon__lazy_58 nav__5215_45; typedef struct anon__lazy_58 nav__5217_45; -typedef struct anon__lazy_58 nav__5219_45; -typedef struct anon__lazy_145 nav__1355_38; -typedef struct anon__lazy_121 nav__1355_40; -typedef struct anon__lazy_145 nav__5222_38; -typedef struct anon__lazy_296 nav__5222_42; -typedef struct anon__lazy_134 nav__5223_39; -typedef struct anon__lazy_121 nav__5223_52; -typedef struct anon__lazy_145 nav__4232_38; -typedef struct anon__lazy_121 nav__4232_41; -typedef struct anon__lazy_58 nav__5245_39; -typedef struct anon__lazy_58 nav__4746_56; -typedef struct anon__lazy_322 nav__4746_58; -typedef struct anon__lazy_58 nav__4387_39; -typedef struct anon__lazy_396 nav__4387_52; -typedef struct anon__lazy_121 nav__4387_55; -typedef struct anon__lazy_400 nav__4387_59; -typedef struct anon__lazy_145 nav__3827_38; -typedef struct anon__lazy_58 nav__3827_41; -typedef struct anon__lazy_462 nav__4789_38; -struct anon__lazy_462 { +typedef struct anon__lazy_143 nav__1355_38; +typedef struct anon__lazy_119 nav__1355_40; +typedef struct anon__lazy_143 nav__5220_38; +typedef struct anon__lazy_293 nav__5220_42; +typedef struct anon__lazy_132 nav__5221_39; +typedef struct anon__lazy_119 nav__5221_52; +typedef struct anon__lazy_143 nav__4230_38; +typedef struct anon__lazy_119 nav__4230_41; +typedef struct anon__lazy_58 nav__5243_39; +typedef struct anon__lazy_58 nav__4744_56; +typedef struct anon__lazy_319 nav__4744_58; +typedef struct anon__lazy_58 nav__4385_39; +typedef struct anon__lazy_393 nav__4385_52; +typedef struct anon__lazy_119 nav__4385_55; +typedef struct anon__lazy_397 nav__4385_59; +typedef struct anon__lazy_143 nav__3825_38; +typedef struct anon__lazy_58 nav__3825_41; +typedef struct anon__lazy_459 nav__4787_38; +struct anon__lazy_459 { uint16_t error; uint8_t payload; }; -typedef struct anon__lazy_145 nav__4805_38; -typedef struct anon__lazy_58 nav__4805_40; -typedef struct anon__lazy_296 nav__4805_46; -typedef struct anon__lazy_462 nav__4805_50; -typedef struct anon__lazy_187 nav__4805_52; -typedef struct anon__lazy_58 nav__5248_39; -typedef struct anon__lazy_322 nav__5248_44; -typedef struct anon__lazy_145 nav__5248_48; -typedef struct anon__lazy_296 nav__5248_55; -typedef struct anon__lazy_121 nav__5248_59; -typedef struct anon__lazy_462 nav__5248_62; -typedef struct anon__lazy_322 nav__5249_38; -typedef struct anon__lazy_58 nav__5249_40; -typedef struct anon__lazy_296 nav__5249_46; -typedef struct anon__lazy_477 nav__5249_52; -struct anon__lazy_477 { +typedef struct anon__lazy_143 nav__4803_38; +typedef struct anon__lazy_58 nav__4803_40; +typedef struct anon__lazy_293 nav__4803_46; +typedef struct anon__lazy_459 nav__4803_50; +typedef struct anon__lazy_184 nav__4803_52; +typedef struct anon__lazy_58 nav__5246_39; +typedef struct anon__lazy_319 nav__5246_44; +typedef struct anon__lazy_143 nav__5246_48; +typedef struct anon__lazy_293 nav__5246_55; +typedef struct anon__lazy_119 nav__5246_59; +typedef struct anon__lazy_459 nav__5246_62; +typedef struct anon__lazy_319 nav__5247_38; +typedef struct anon__lazy_58 nav__5247_40; +typedef struct anon__lazy_293 nav__5247_46; +typedef struct anon__lazy_474 nav__5247_52; +struct anon__lazy_474 { bool array[32]; }; -typedef struct anon__lazy_479 nav__5249_54; -struct anon__lazy_479 { +typedef struct anon__lazy_476 nav__5247_54; +struct anon__lazy_476 { bool is_null; uint8_t payload; }; -typedef struct anon__lazy_484 nav__5249_60; -struct anon__lazy_484 { +typedef struct anon__lazy_481 nav__5247_60; +struct anon__lazy_481 { bool array[16]; }; -typedef struct anon__lazy_145 nav__5253_48; -typedef struct anon__lazy_58 nav__5253_50; -typedef struct anon__lazy_58 nav__5254_45; -typedef struct anon__lazy_58 nav__5255_45; -typedef struct anon__lazy_187 nav__4795_38; -typedef struct anon__lazy_58 nav__4795_40; -typedef struct anon__lazy_495 nav__4795_48; -struct anon__lazy_495 { +typedef struct anon__lazy_143 nav__5251_48; +typedef struct anon__lazy_58 nav__5251_50; +typedef struct anon__lazy_58 nav__5252_45; +typedef struct anon__lazy_58 nav__5253_45; +typedef struct anon__lazy_184 nav__4793_38; +typedef struct anon__lazy_58 nav__4793_40; +typedef struct anon__lazy_492 nav__4793_48; +struct anon__lazy_492 { uint8_t array[2]; }; -typedef struct anon__lazy_497 nav__4795_52; -struct anon__lazy_497 { +typedef struct anon__lazy_494 nav__4793_52; +struct anon__lazy_494 { uint8_t array[3]; }; -typedef struct anon__lazy_499 nav__4795_56; -struct anon__lazy_499 { +typedef struct anon__lazy_496 nav__4793_56; +struct anon__lazy_496 { uint8_t array[4]; }; -typedef struct anon__lazy_462 nav__4788_38; -typedef struct anon__lazy_462 nav__5278_38; -typedef struct anon__lazy_121 nav__5278_40; -typedef struct anon__lazy_462 nav__4790_38; -typedef struct anon__lazy_121 nav__4790_40; -typedef struct anon__lazy_58 nav__3832_40; -typedef struct anon__lazy_145 nav__3832_43; -typedef struct anon__lazy_296 nav__3832_50; -typedef struct anon__lazy_479 nav__5265_38; -typedef struct anon__lazy_477 nav__5265_40; -typedef struct anon__lazy_479 nav__5266_38; -typedef struct anon__lazy_484 nav__5266_40; -typedef struct anon__lazy_145 nav__4090_38; -typedef struct anon__lazy_58 nav__4090_41; -typedef struct anon__lazy_58 nav__5267_40; -typedef struct anon__lazy_514 nav__5271_39; -struct anon__lazy_514 { +typedef struct anon__lazy_459 nav__4786_38; +typedef struct anon__lazy_459 nav__5276_38; +typedef struct anon__lazy_119 nav__5276_40; +typedef struct anon__lazy_459 nav__4788_38; +typedef struct anon__lazy_119 nav__4788_40; +typedef struct anon__lazy_58 nav__3830_40; +typedef struct anon__lazy_143 nav__3830_43; +typedef struct anon__lazy_293 nav__3830_50; +typedef struct anon__lazy_476 nav__5263_38; +typedef struct anon__lazy_474 nav__5263_40; +typedef struct anon__lazy_476 nav__5264_38; +typedef struct anon__lazy_481 nav__5264_40; +typedef struct anon__lazy_143 nav__4088_38; +typedef struct anon__lazy_58 nav__4088_41; +typedef struct anon__lazy_58 nav__5265_40; +typedef struct anon__lazy_511 nav__5269_39; +struct anon__lazy_511 { uint32_t payload; bool is_null; }; -typedef struct anon__lazy_187 nav__4797_38; -typedef struct anon__lazy_495 nav__4797_40; -typedef struct anon__lazy_187 nav__4799_38; -typedef struct anon__lazy_497 nav__4799_40; -typedef struct anon__lazy_187 nav__4803_38; -typedef struct anon__lazy_499 nav__4803_40; -typedef struct anon__lazy_145 nav__4011_38; -typedef struct anon__lazy_58 nav__4011_42; -typedef struct anon__lazy_58 nav__5307_40; -typedef struct anon__lazy_145 nav__5307_51; -typedef struct anon__lazy_243 nav__5288_41; -typedef struct anon__lazy_187 nav__4801_38; -typedef struct anon__lazy_497 nav__4801_40; -typedef struct anon__lazy_529 nav__5352_45; -struct anon__lazy_529 { +typedef struct anon__lazy_184 nav__4795_38; +typedef struct anon__lazy_492 nav__4795_40; +typedef struct anon__lazy_184 nav__4797_38; +typedef struct anon__lazy_494 nav__4797_40; +typedef struct anon__lazy_184 nav__4801_38; +typedef struct anon__lazy_496 nav__4801_40; +typedef struct anon__lazy_143 nav__4009_38; +typedef struct anon__lazy_58 nav__4009_42; +typedef struct anon__lazy_58 nav__5305_40; +typedef struct anon__lazy_143 nav__5305_51; +typedef struct anon__lazy_240 nav__5286_41; +typedef struct anon__lazy_184 nav__4799_38; +typedef struct anon__lazy_494 nav__4799_40; +typedef struct anon__lazy_526 nav__5350_45; +struct anon__lazy_526 { int32_t payload; bool is_null; }; -typedef struct anon__lazy_58 nav__4005_41; -typedef struct anon__lazy_243 nav__5351_40; -typedef struct anon__lazy_529 nav__5369_38; -typedef struct anon__lazy_121 nav__4024_43; -typedef struct anon__lazy_145 nav__4024_52; -typedef struct anon__lazy_58 nav__4006_41; -typedef struct anon__lazy_121 nav__4006_47; -typedef struct anon__lazy_296 nav__4006_56; -typedef struct anon__lazy_145 nav__3949_38; -typedef struct anon__lazy_296 nav__3949_42; -typedef struct anon__lazy_121 nav__4022_43; -typedef struct anon__lazy_296 nav__5428_39; -typedef struct anon__lazy_121 nav__4023_43; -typedef struct anon__lazy_209 nav__4023_55; -typedef struct anon__lazy_121 nav__5429_39; -typedef struct anon__lazy_145 nav__5429_50; -typedef struct anon__lazy_121 nav__5430_39; -typedef struct anon__lazy_209 nav__5430_40; -typedef struct anon__lazy_134 nav__5430_51; -typedef struct anon__lazy_121 nav__5431_39; -typedef struct anon__lazy_121 nav__232_63; -typedef struct anon__lazy_121 nav__5433_52; +typedef struct anon__lazy_58 nav__4003_41; +typedef struct anon__lazy_240 nav__5349_40; +typedef struct anon__lazy_526 nav__5367_38; +typedef struct anon__lazy_119 nav__4022_43; +typedef struct anon__lazy_143 nav__4022_52; +typedef struct anon__lazy_58 nav__4004_41; +typedef struct anon__lazy_119 nav__4004_47; +typedef struct anon__lazy_293 nav__4004_56; +typedef struct anon__lazy_143 nav__3947_38; +typedef struct anon__lazy_293 nav__3947_42; +typedef struct anon__lazy_119 nav__4020_43; +typedef struct anon__lazy_293 nav__5426_39; +typedef struct anon__lazy_119 nav__4021_43; +typedef struct anon__lazy_206 nav__4021_55; +typedef struct anon__lazy_119 nav__5427_39; +typedef struct anon__lazy_143 nav__5427_50; +typedef struct anon__lazy_119 nav__5428_39; +typedef struct anon__lazy_206 nav__5428_40; +typedef struct anon__lazy_132 nav__5428_51; +typedef struct anon__lazy_119 nav__5429_39; +typedef struct anon__lazy_119 nav__232_63; +typedef struct anon__lazy_119 nav__5431_52; typedef struct anon__lazy_58 nav__341_58; -typedef struct anon__lazy_243 nav__341_66; -typedef struct anon__lazy_58 nav__234_63; -typedef struct anon__lazy_129 nav__234_65; -typedef struct anon__lazy_58 nav__5442_39; -typedef struct anon__lazy_129 nav__5442_40; -typedef struct anon__lazy_145 nav__5442_54; -typedef struct anon__lazy_58 nav__5443_40; -typedef struct anon__lazy_129 nav__5443_41; -typedef struct anon__lazy_145 nav__5443_44; -typedef struct anon__lazy_58 nav__5444_40; -typedef struct anon__lazy_129 nav__5444_41; -typedef struct anon__lazy_145 nav__5444_44; -typedef struct anon__lazy_322 nav__5444_55; +typedef struct anon__lazy_240 nav__341_66; +typedef struct anon__lazy_58 nav__234_61; +typedef struct anon__lazy_127 nav__234_63; +typedef struct anon__lazy_58 nav__5434_39; +typedef struct anon__lazy_127 nav__5434_40; +typedef struct anon__lazy_143 nav__5434_54; +typedef struct anon__lazy_58 nav__5435_40; +typedef struct anon__lazy_127 nav__5435_41; +typedef struct anon__lazy_143 nav__5435_44; +typedef struct anon__lazy_58 nav__5436_40; +typedef struct anon__lazy_127 nav__5436_41; +typedef struct anon__lazy_143 nav__5436_44; +typedef struct anon__lazy_319 nav__5436_55; typedef struct anon__lazy_58 nav__342_58; -typedef struct anon__lazy_243 nav__342_66; -typedef struct anon__lazy_58 nav__235_63; -typedef struct anon__lazy_129 nav__235_65; -typedef struct anon__lazy_58 nav__5445_39; -typedef struct anon__lazy_129 nav__5445_40; -typedef struct anon__lazy_145 nav__5445_54; -typedef struct anon__lazy_58 nav__5446_40; -typedef struct anon__lazy_129 nav__5446_41; -typedef struct anon__lazy_145 nav__5446_44; -typedef struct anon__lazy_58 nav__5447_40; -typedef struct anon__lazy_129 nav__5447_41; -typedef struct anon__lazy_145 nav__5447_44; -typedef struct anon__lazy_322 nav__5447_55; +typedef struct anon__lazy_240 nav__342_66; +typedef struct anon__lazy_58 nav__235_61; +typedef struct anon__lazy_127 nav__235_63; +typedef struct anon__lazy_58 nav__5438_39; +typedef struct anon__lazy_127 nav__5438_40; +typedef struct anon__lazy_143 nav__5438_54; +typedef struct anon__lazy_58 nav__5439_40; +typedef struct anon__lazy_127 nav__5439_41; +typedef struct anon__lazy_143 nav__5439_44; +typedef struct anon__lazy_58 nav__5440_40; +typedef struct anon__lazy_127 nav__5440_41; +typedef struct anon__lazy_143 nav__5440_44; +typedef struct anon__lazy_319 nav__5440_55; typedef struct anon__lazy_58 nav__343_56; -typedef struct anon__lazy_243 nav__343_66; -typedef struct anon__lazy_58 nav__236_64; -typedef struct anon__lazy_129 nav__236_66; -typedef struct anon__lazy_58 nav__5448_39; -typedef struct anon__lazy_58 nav__5449_39; -typedef struct anon__lazy_129 nav__5449_40; -typedef struct anon__lazy_145 nav__5449_54; -typedef struct anon__lazy_58 nav__5452_40; -typedef struct anon__lazy_129 nav__5452_41; -typedef struct anon__lazy_145 nav__5452_44; -typedef struct anon__lazy_477 nav__5453_45; -typedef struct anon__lazy_479 nav__5453_47; -typedef struct anon__lazy_296 nav__5453_49; -typedef struct anon__lazy_58 nav__5454_40; -typedef struct anon__lazy_129 nav__5454_41; -typedef struct anon__lazy_145 nav__5454_44; -typedef struct anon__lazy_322 nav__5454_55; -typedef struct anon__lazy_296 nav__5455_39; -typedef struct anon__lazy_296 nav__5457_39; -typedef struct anon__lazy_575 nav__5459_39; -struct anon__lazy_575 { +typedef struct anon__lazy_240 nav__343_66; +typedef struct anon__lazy_58 nav__236_61; +typedef struct anon__lazy_127 nav__236_63; +typedef struct anon__lazy_58 nav__5442_39; +typedef struct anon__lazy_58 nav__5443_39; +typedef struct anon__lazy_127 nav__5443_40; +typedef struct anon__lazy_143 nav__5443_54; +typedef struct anon__lazy_58 nav__5446_40; +typedef struct anon__lazy_127 nav__5446_41; +typedef struct anon__lazy_143 nav__5446_44; +typedef struct anon__lazy_474 nav__5447_45; +typedef struct anon__lazy_476 nav__5447_47; +typedef struct anon__lazy_293 nav__5447_49; +typedef struct anon__lazy_58 nav__5448_40; +typedef struct anon__lazy_127 nav__5448_41; +typedef struct anon__lazy_143 nav__5448_44; +typedef struct anon__lazy_319 nav__5448_55; +typedef struct anon__lazy_293 nav__5449_39; +typedef struct anon__lazy_293 nav__5451_39; +typedef struct anon__lazy_573 nav__5453_39; +struct anon__lazy_573 { uint64_t f0; uint8_t f1; }; -typedef struct anon__lazy_575 nav__5461_39; +typedef struct anon__lazy_573 nav__5455_39; typedef struct anon__lazy_58 nav__344_56; -typedef struct anon__lazy_243 nav__344_66; -typedef struct anon__lazy_582 nav__237_62; -struct anon__lazy_582 { +typedef struct anon__lazy_240 nav__344_66; +typedef struct anon__lazy_580 nav__237_62; +struct anon__lazy_580 { uint8_t const *f0; uint8_t const *f1; }; -typedef struct anon__lazy_121 nav__237_65; -typedef struct anon__lazy_209 nav__237_67; -typedef struct anon__lazy_58 nav__237_74; -typedef struct anon__lazy_129 nav__237_76; -typedef struct anon__lazy_121 nav__5462_39; -typedef struct anon__lazy_209 nav__5462_40; -typedef struct anon__lazy_582 nav__5462_43; -typedef struct anon__lazy_296 nav__5462_54; -typedef struct anon__lazy_121 nav__5463_40; -typedef struct anon__lazy_296 nav__5463_49; -typedef struct anon__lazy_58 nav__5464_39; -typedef struct anon__lazy_129 nav__5464_40; -typedef struct anon__lazy_145 nav__5464_54; -typedef struct anon__lazy_121 nav__5465_39; -typedef struct anon__lazy_209 nav__5465_40; -typedef struct anon__lazy_582 nav__5465_43; -typedef struct anon__lazy_322 nav__5465_54; -typedef struct anon__lazy_121 nav__5466_39; -typedef struct anon__lazy_58 nav__5467_40; -typedef struct anon__lazy_129 nav__5467_41; -typedef struct anon__lazy_145 nav__5467_44; -typedef struct anon__lazy_582 nav__5510_40; -typedef struct anon__lazy_145 nav__5510_43; -typedef struct anon__lazy_58 nav__5510_44; -typedef struct anon__lazy_322 nav__5510_55; -typedef struct anon__lazy_582 nav__5468_39; -struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145; -struct io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29__6137; -struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 { +typedef struct anon__lazy_119 nav__237_65; +typedef struct anon__lazy_206 nav__237_67; +typedef struct anon__lazy_58 nav__237_71; +typedef struct anon__lazy_127 nav__237_73; +typedef struct anon__lazy_119 nav__5456_39; +typedef struct anon__lazy_206 nav__5456_40; +typedef struct anon__lazy_580 nav__5456_43; +typedef struct anon__lazy_293 nav__5456_54; +typedef struct anon__lazy_119 nav__5457_40; +typedef struct anon__lazy_293 nav__5457_49; +typedef struct anon__lazy_58 nav__5458_39; +typedef struct anon__lazy_127 nav__5458_40; +typedef struct anon__lazy_143 nav__5458_54; +typedef struct anon__lazy_119 nav__5459_39; +typedef struct anon__lazy_206 nav__5459_40; +typedef struct anon__lazy_580 nav__5459_43; +typedef struct anon__lazy_319 nav__5459_54; +typedef struct anon__lazy_119 nav__5460_39; +typedef struct anon__lazy_58 nav__5461_40; +typedef struct anon__lazy_127 nav__5461_41; +typedef struct anon__lazy_143 nav__5461_44; +typedef struct anon__lazy_580 nav__5504_40; +typedef struct anon__lazy_143 nav__5504_43; +typedef struct anon__lazy_58 nav__5504_44; +typedef struct anon__lazy_319 nav__5504_55; +typedef struct anon__lazy_580 nav__5462_39; +struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021; +struct io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29__6013; +struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 { uint64_t bytes_written; }; -struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159; -struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 { - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *context; +struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035; +struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 { + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *context; }; -typedef struct anon__lazy_145 nav__5468_53; -typedef struct anon__lazy_58 nav__5468_54; -typedef struct anon__lazy_322 nav__5469_38; -typedef struct anon__lazy_121 nav__5470_39; -typedef struct anon__lazy_209 nav__5470_40; -typedef struct anon__lazy_582 nav__5470_42; -struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255; -struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 { - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *context; +typedef struct anon__lazy_143 nav__5462_53; +typedef struct anon__lazy_58 nav__5462_54; +typedef struct anon__lazy_319 nav__5463_38; +typedef struct anon__lazy_119 nav__5464_39; +typedef struct anon__lazy_206 nav__5464_40; +typedef struct anon__lazy_580 nav__5464_42; +struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131; +struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 { + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *context; }; -typedef struct anon__lazy_145 nav__5470_57; -typedef struct anon__lazy_58 nav__5470_58; -typedef struct anon__lazy_58 nav__5471_40; -typedef struct anon__lazy_129 nav__5471_41; -typedef struct anon__lazy_145 nav__5471_44; -typedef struct anon__lazy_322 nav__5471_55; -typedef struct anon__lazy_145 nav__5509_38; -typedef struct anon__lazy_58 nav__5509_41; -typedef struct anon__lazy_322 nav__5511_42; -typedef struct anon__lazy_145 nav__5511_46; -typedef struct anon__lazy_58 nav__5511_47; -typedef struct anon__lazy_145 nav__5524_38; -typedef struct anon__lazy_58 nav__5524_41; -typedef struct anon__lazy_121 nav__4191_39; -typedef struct anon__lazy_145 nav__5494_38; -typedef struct anon__lazy_58 nav__5494_42; -typedef struct anon__lazy_575 nav__5494_51; -typedef struct anon__lazy_145 nav__4186_38; -typedef struct anon__lazy_58 nav__4186_42; -typedef struct anon__lazy_121 nav__4186_50; -typedef struct anon__lazy_296 nav__4186_55; -typedef struct anon__lazy_145 nav__3798_38; -typedef struct anon__lazy_58 nav__3798_40; +typedef struct anon__lazy_143 nav__5464_57; +typedef struct anon__lazy_58 nav__5464_58; +typedef struct anon__lazy_58 nav__5465_40; +typedef struct anon__lazy_127 nav__5465_41; +typedef struct anon__lazy_143 nav__5465_44; +typedef struct anon__lazy_319 nav__5465_55; +typedef struct anon__lazy_143 nav__5503_38; +typedef struct anon__lazy_58 nav__5503_41; +typedef struct anon__lazy_319 nav__5505_42; +typedef struct anon__lazy_143 nav__5505_46; +typedef struct anon__lazy_58 nav__5505_47; +typedef struct anon__lazy_143 nav__5518_38; +typedef struct anon__lazy_58 nav__5518_41; +typedef struct anon__lazy_119 nav__4189_39; +typedef struct anon__lazy_143 nav__5488_38; +typedef struct anon__lazy_58 nav__5488_42; +typedef struct anon__lazy_573 nav__5488_51; +typedef struct anon__lazy_143 nav__4184_38; +typedef struct anon__lazy_58 nav__4184_42; +typedef struct anon__lazy_119 nav__4184_50; +typedef struct anon__lazy_293 nav__4184_55; +typedef struct anon__lazy_143 nav__3796_38; +typedef struct anon__lazy_58 nav__3796_40; struct Target_Os__563; struct Target_Os_VersionRange__619; struct SemanticVersion_Range__625; @@ -782,11 +782,11 @@ struct Target_DynamicLinker__738 { uint8_t buffer[255]; uint8_t len; }; -typedef struct anon__lazy_121 nav__3485_40; -typedef struct anon__lazy_121 nav__3486_40; -typedef struct anon__lazy_121 nav__3487_40; -typedef struct anon__lazy_121 nav__3449_46; -typedef struct anon__lazy_121 nav__230_46; +typedef struct anon__lazy_119 nav__3485_40; +typedef struct anon__lazy_119 nav__3486_40; +typedef struct anon__lazy_119 nav__3487_40; +typedef struct anon__lazy_119 nav__3449_46; +typedef struct anon__lazy_119 nav__230_46; struct Target_Cpu_Feature_Set__755; struct Target_Cpu_Feature_Set__755 { uintptr_t ints[5]; @@ -813,45 +813,30 @@ struct Target__561 { uint8_t ofmt; struct Target_DynamicLinker__738 dynamic_linker; }; -struct std_Options__3827; -typedef struct anon__lazy_322 nav__97_39; -struct std_Options__3827 { - struct anon__lazy_322 page_size_min; - struct anon__lazy_322 page_size_max; - uintptr_t fmt_max_depth; - bool enable_segfault_handler; - uint8_t log_level; - bool crypto_always_getrandom; - bool crypto_fork_safety; - bool keep_sigpipe; - bool http_disable_tls; - bool http_enable_ssl_key_log_file; - uint8_t side_channels_mitigations; -}; struct builtin_CallingConvention__261; struct builtin_CallingConvention_CommonOptions__263; -typedef struct anon__lazy_243 nav__830_40; +typedef struct anon__lazy_240 nav__830_40; struct builtin_CallingConvention_CommonOptions__263 { - struct anon__lazy_243 incoming_stack_alignment; + struct anon__lazy_240 incoming_stack_alignment; }; struct builtin_CallingConvention_X86RegparmOptions__265; struct builtin_CallingConvention_X86RegparmOptions__265 { - struct anon__lazy_243 incoming_stack_alignment; + struct anon__lazy_240 incoming_stack_alignment; uint8_t register_params; }; struct builtin_CallingConvention_ArmInterruptOptions__267; struct builtin_CallingConvention_ArmInterruptOptions__267 { - struct anon__lazy_243 incoming_stack_alignment; + struct anon__lazy_240 incoming_stack_alignment; uint8_t type; }; struct builtin_CallingConvention_MipsInterruptOptions__269; struct builtin_CallingConvention_MipsInterruptOptions__269 { - struct anon__lazy_243 incoming_stack_alignment; + struct anon__lazy_240 incoming_stack_alignment; uint8_t mode; }; struct builtin_CallingConvention_RiscvInterruptOptions__271; struct builtin_CallingConvention_RiscvInterruptOptions__271 { - struct anon__lazy_243 incoming_stack_alignment; + struct anon__lazy_240 incoming_stack_alignment; uint8_t mode; }; struct builtin_CallingConvention__261 { @@ -928,40 +913,51 @@ struct builtin_CallingConvention__261 { } payload; uint8_t tag; }; -typedef struct anon__lazy_396 nav__4343_44; -typedef struct anon__lazy_121 nav__4343_47; -typedef struct anon__lazy_400 nav__4343_51; -struct Progress_Node_Storage__3269 { +struct std_Options__3770; +typedef struct anon__lazy_319 nav__97_39; +struct std_Options__3770 { + struct anon__lazy_319 page_size_min; + struct anon__lazy_319 page_size_max; + uintptr_t fmt_max_depth; + bool enable_segfault_handler; + uint8_t log_level; + bool crypto_always_getrandom; + bool crypto_fork_safety; + bool keep_sigpipe; + bool http_disable_tls; + bool http_enable_ssl_key_log_file; + uint8_t side_channels_mitigations; +}; +typedef struct anon__lazy_393 nav__4341_44; +typedef struct anon__lazy_119 nav__4341_47; +typedef struct anon__lazy_397 nav__4341_51; +struct Progress_Node_Storage__3212 { uint32_t completed_count; uint32_t estimated_total_count; zig_align(8) uint8_t name[40]; }; -typedef struct anon__lazy_322 nav__3465_38; -typedef struct anon__lazy_514 nav__5270_38; -typedef struct anon__lazy_121 nav__3476_43; -typedef struct anon__lazy_58 nav__3512_40; -static uint8_t const __anon_1768[21]; -static uint8_t const __anon_1828[21]; -static uintptr_t const __anon_906[6]; -static uint8_t const __anon_3011[89]; -static uint8_t const __anon_3465[36]; -static uint8_t const __anon_3909[1]; -static uint8_t const __anon_4676[4]; -static uint8_t const __anon_4810[8]; -static uint8_t const __anon_5046[18]; -static uint8_t const __anon_5154[3]; -static uintptr_t const __anon_5743[6]; -static uintptr_t const __anon_5748[6]; -static uint8_t const __anon_5798[27]; -static uintptr_t const __anon_5823[6]; -static uint8_t const __anon_5876[26]; -static uint8_t const __anon_6011[33]; -static uint8_t const __anon_6209[10]; -static uint8_t const __anon_6224[1]; -static uint8_t const __anon_6243[1]; -static uint8_t const __anon_6310[27]; -static uint8_t const __anon_4770[4]; -static uint8_t const __anon_6383[10]; +typedef struct anon__lazy_319 nav__3465_38; +typedef struct anon__lazy_511 nav__5268_38; +typedef struct anon__lazy_119 nav__3476_43; +typedef struct anon__lazy_58 nav__3509_40; +static uint8_t const __anon_1813[21]; +static uint8_t const __anon_1873[21]; +static uint8_t const __anon_2953[89]; +static uint8_t const __anon_3408[36]; +static uint8_t const __anon_3852[1]; +static uint8_t const __anon_4593[4]; +static uint8_t const __anon_4727[8]; +static uint8_t const __anon_4963[18]; +static uint8_t const __anon_5071[3]; +static uint8_t const __anon_5679[27]; +static uint8_t const __anon_5754[26]; +static uint8_t const __anon_5887[33]; +static uint8_t const __anon_6085[10]; +static uint8_t const __anon_6100[1]; +static uint8_t const __anon_6119[1]; +static uint8_t const __anon_6186[27]; +static uint8_t const __anon_4687[4]; +static uint8_t const __anon_6259[10]; static nav__987_39 fifo_UnixPipe_openWrite__987(struct mem_Allocator__206, nav__987_42); static nav__986_39 fifo_UnixPipe_openRead__986(struct mem_Allocator__206, nav__986_42); static nav__337_39 instruments_perf_PerfInstrument_init__337(struct mem_Allocator__206); @@ -970,185 +966,184 @@ static nav__314_39 instruments_root_InstrumentHooks_init__314(struct mem_Allocat zig_extern struct instruments_root_InstrumentHooks__188 *instrument_hooks_init(void); static nav__3488_40 mem_Allocator_create__anon_795__3488(struct mem_Allocator__206); static void debug_print__anon_809__3489(nav__3489_40); -static uintptr_t helpers_valgrind_black_box__anon_914__3501(uintptr_t); static struct instruments_valgrind_ValgrindInstrument__195 instruments_valgrind_ValgrindInstrument_init__325(struct mem_Allocator__206); -static uint16_t fs_accessAbsolute__1053(nav__1053_39, struct fs_File_OpenFlags__1775); -static nav__1050_39 fs_openFileAbsolute__1050(nav__1050_41, struct fs_File_OpenFlags__1775); +static uint16_t fs_accessAbsolute__1053(nav__1053_39, struct fs_File_OpenFlags__1820); +static nav__1050_39 fs_openFileAbsolute__1050(nav__1050_41, struct fs_File_OpenFlags__1820); static struct fifo_UnixPipe_Writer__538 fifo_UnixPipe_Writer_init__988(struct fs_File__546, struct mem_Allocator__206); static struct fifo_UnixPipe_Reader__540 fifo_UnixPipe_Reader_init__993(struct fs_File__546, struct mem_Allocator__206); -static uint16_t fifo_UnixPipe_Writer_sendCmd__991(struct fifo_UnixPipe_Writer__538 *, struct shared_Command__1959); -static nav__4230_38 bincode_deserializeInt__anon_2436__4230(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326); -static nav__4229_38 bincode_deserializeAlloc__anon_2425__4229(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static nav__4272_40 bincode_deserializePointerAlloc__anon_2560__4272(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static nav__4271_40 bincode_deserializeAlloc__anon_2547__4271(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static nav__4270_39 bincode_deserializeStructAlloc__anon_2522__4270(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static nav__4269_39 bincode_deserializeAlloc__anon_2493__4269(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static uint16_t bincode_deserializeAlloc__anon_2611__4275(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static nav__4277_39 bincode_deserializeStructAlloc__anon_2673__4277(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static nav__4276_39 bincode_deserializeAlloc__anon_2654__4276(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static zig_cold nav__4228_39 bincode_deserializeUnionAlloc__anon_2420__4228(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); -static nav__4227_39 bincode_deserializeAlloc__anon_2334__4227(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326, struct mem_Allocator__206); +static uint16_t fifo_UnixPipe_Writer_sendCmd__991(struct fifo_UnixPipe_Writer__538 *, struct shared_Command__2004); +static nav__4228_38 bincode_deserializeInt__anon_2425__4228(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315); +static nav__4227_38 bincode_deserializeAlloc__anon_2414__4227(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static nav__4270_40 bincode_deserializePointerAlloc__anon_2549__4270(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static nav__4269_40 bincode_deserializeAlloc__anon_2536__4269(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static nav__4268_39 bincode_deserializeStructAlloc__anon_2511__4268(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static nav__4267_39 bincode_deserializeAlloc__anon_2482__4267(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static uint16_t bincode_deserializeAlloc__anon_2600__4273(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static nav__4275_39 bincode_deserializeStructAlloc__anon_2662__4275(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static nav__4274_39 bincode_deserializeAlloc__anon_2643__4274(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static zig_cold nav__4226_39 bincode_deserializeUnionAlloc__anon_2409__4226(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); +static nav__4225_39 bincode_deserializeAlloc__anon_2323__4225(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315, struct mem_Allocator__206); static nav__996_39 fifo_UnixPipe_Reader_recvCmd__996(struct fifo_UnixPipe_Reader__540 *); static nav__997_39 fifo_UnixPipe_Reader_waitForResponse__997(struct fifo_UnixPipe_Reader__540 *, nav__997_42); static uint16_t fifo_UnixPipe_Reader_waitForAck__998(struct fifo_UnixPipe_Reader__540 *, nav__998_40); -static uint16_t instruments_perf_PerfInstrument_send_cmd__339(struct instruments_perf_PerfInstrument__200 *, struct shared_Command__1959); +static uint16_t instruments_perf_PerfInstrument_send_cmd__339(struct instruments_perf_PerfInstrument__200 *, struct shared_Command__2004); static bool instruments_perf_PerfInstrument_is_instrumented__340(struct instruments_perf_PerfInstrument__200 *); -static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struct mem_Allocator__206, uintptr_t, uintptr_t); +static nav__3738_39 mem_Allocator_allocBytesWithAlignment__anon_1902__3738(struct mem_Allocator__206, uintptr_t, uintptr_t); static void debug_lockStdErr__161(void); -static struct fs_File__546 io_getStdErr__3758(void); -static struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 fs_File_writer__1162(struct fs_File__546); -static nav__3820_38 io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3820(void const *, nav__3820_41); -static uint16_t io_Writer_print__anon_1928__3837(struct io_Writer__1905, nav__3837_41); +static struct fs_File__546 io_getStdErr__3756(void); +static struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 fs_File_writer__1162(struct fs_File__546); +static nav__3818_38 io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3818(void const *, nav__3818_41); +static uint16_t io_Writer_print__anon_1973__3835(struct io_Writer__1950, nav__3835_41); static void debug_unlockStdErr__162(void); -static bool fs_path_isAbsolute__3872(nav__3872_39); +static bool fs_path_isAbsolute__3870(nav__3870_39); static void debug_assert__179(bool); -static struct fs_Dir__1777 fs_cwd__1045(void); -static uint16_t fs_Dir_access__3696(struct fs_Dir__1777, nav__3696_40, struct fs_File_OpenFlags__1775); -static nav__3632_39 fs_Dir_openFile__3632(struct fs_Dir__1777, nav__3632_42, struct fs_File_OpenFlags__1775); -static struct array_list_ArrayListAligned_28u8_2cnull_29__1990 array_list_ArrayListAligned_28u8_2cnull_29_init__3985(struct mem_Allocator__206); -static struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 array_list_ArrayListAligned_28u8_2cnull_29_writer__4010(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *); -static uint16_t bincode_serialize__anon_2025__4091(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, struct shared_Command__1959); -static void array_list_ArrayListAligned_28u8_2cnull_29_deinit__3987(struct array_list_ArrayListAligned_28u8_2cnull_29__1990); -static zig_cold zig_noreturn void debug_no_panic_castTruncatedData__4105(void); -static uint8_t const (*mem_asBytes__anon_2143__4120(uint32_t const *))[4]; +static struct fs_Dir__1822 fs_cwd__1045(void); +static uint16_t fs_Dir_access__3694(struct fs_Dir__1822, nav__3694_40, struct fs_File_OpenFlags__1820); +static nav__3630_39 fs_Dir_openFile__3630(struct fs_Dir__1822, nav__3630_42, struct fs_File_OpenFlags__1820); +static struct array_list_ArrayListAligned_28u8_2cnull_29__2035 array_list_ArrayListAligned_28u8_2cnull_29_init__3983(struct mem_Allocator__206); +static struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 array_list_ArrayListAligned_28u8_2cnull_29_writer__4008(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *); +static uint16_t bincode_serialize__anon_2070__4089(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, struct shared_Command__2004); +static void array_list_ArrayListAligned_28u8_2cnull_29_deinit__3985(struct array_list_ArrayListAligned_28u8_2cnull_29__2035); +static zig_cold zig_noreturn void debug_no_panic_castTruncatedData__4103(void); +static uint8_t const (*mem_asBytes__anon_2188__4118(uint32_t const *))[4]; static uint16_t fs_File_writeAll__1144(struct fs_File__546, nav__1144_40); -static zig_i128 time_nanoTimestamp__4133(void); -static zig_cold zig_noreturn void debug_no_panic_integerOverflow__4107(void); +static zig_i128 time_nanoTimestamp__4131(void); +static zig_cold zig_noreturn void debug_no_panic_integerOverflow__4105(void); static nav__1134_38 fs_File_readAll__1134(struct fs_File__546, nav__1134_41); -static nav__4161_40 mem_Allocator_alloc__anon_2284__4161(struct mem_Allocator__206, uintptr_t); -static struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 io_fixed_buffer_stream_fixedBufferStream__anon_2306__4193(nav__4193_40); -static struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_reader__4182(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *); -static nav__4226_38 io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4226(void const *, nav__4226_41); -static nav__4268_39 io_Reader_readBytesNoEof__anon_2479__4268(struct io_Reader__2450); -static zig_cold zig_noreturn void debug_no_panic_invalidEnumValue__4115(void); -static nav__4273_39 io_Reader_readBytesNoEof__anon_2573__4273(struct io_Reader__2450); -static nav__4233_38 io_Reader_readAll__4233(struct io_Reader__2450, nav__4233_41); -static zig_cold zig_noreturn void bincode_invalidProtocol__anon_2596__4274(void); -static zig_cold zig_noreturn void debug_no_panic_reachedUnreachable__4100(void); -static void mem_Allocator_free__anon_2707__4278(struct mem_Allocator__206, nav__4278_40); -static void Thread_sleep__4296(uint64_t); -static void shared_Command_deinit__3935(struct shared_Command__1959, struct mem_Allocator__206); +static nav__4159_40 mem_Allocator_alloc__anon_2273__4159(struct mem_Allocator__206, uintptr_t); +static struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 io_fixed_buffer_stream_fixedBufferStream__anon_2295__4191(nav__4191_40); +static struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_reader__4180(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *); +static nav__4224_38 io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4224(void const *, nav__4224_41); +static nav__4266_39 io_Reader_readBytesNoEof__anon_2468__4266(struct io_Reader__2439); +static zig_cold zig_noreturn void debug_no_panic_invalidEnumValue__4113(void); +static nav__4271_39 io_Reader_readBytesNoEof__anon_2562__4271(struct io_Reader__2439); +static nav__4231_38 io_Reader_readAll__4231(struct io_Reader__2439, nav__4231_41); +static zig_cold zig_noreturn void bincode_invalidProtocol__anon_2585__4272(void); +static zig_cold zig_noreturn void debug_no_panic_reachedUnreachable__4098(void); +static void mem_Allocator_free__anon_2696__4276(struct mem_Allocator__206, nav__4276_40); +static void Thread_sleep__4294(uint64_t); +static void shared_Command_deinit__3933(struct shared_Command__2004, struct mem_Allocator__206); static uint8_t mem_Alignment_fromByteUnits__628(uintptr_t); -static zig_cold zig_noreturn void debug_no_panic_startGreaterThanEnd__4097(uintptr_t, uintptr_t); -static zig_cold zig_noreturn void debug_no_panic_outOfBounds__4096(uintptr_t, uintptr_t); -static zig_cold zig_noreturn void debug_no_panic_incorrectAlignment__4103(void); -static void Progress_lockStdErr__4357(void); -static int32_t io_getStdErrHandle__3757(void); +static zig_cold zig_noreturn void debug_no_panic_startGreaterThanEnd__4095(uintptr_t, uintptr_t); +static zig_cold zig_noreturn void debug_no_panic_outOfBounds__4094(uintptr_t, uintptr_t); +static zig_cold zig_noreturn void debug_no_panic_incorrectAlignment__4101(void); +static void Progress_lockStdErr__4355(void); +static int32_t io_getStdErrHandle__3755(void); static nav__1143_38 fs_File_write__1143(struct fs_File__546, nav__1143_41); -static uint16_t fmt_format__anon_2798__4556(struct io_Writer__1905, nav__4556_41); -static void Progress_unlockStdErr__4358(void); -static bool fs_path_isAbsolutePosix__3878(nav__3878_39); +static uint16_t fmt_format__anon_2786__4554(struct io_Writer__1950, nav__4554_41); +static void Progress_unlockStdErr__4356(void); +static bool fs_path_isAbsolutePosix__3876(nav__3876_39); static nav__1628_39 posix_toPosixPath__1628(nav__1628_41); -static uint16_t fs_Dir_accessZ__3697(struct fs_Dir__1777, uint8_t const *, struct fs_File_OpenFlags__1775); -static nav__3633_39 fs_Dir_openFileZ__3633(struct fs_Dir__1777, uint8_t const *, struct fs_File_OpenFlags__1775); -static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, struct shared_Command__1959); -static nav__4033_39 array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4033(struct array_list_ArrayListAligned_28u8_2cnull_29__1990); +static uint16_t fs_Dir_accessZ__3695(struct fs_Dir__1822, uint8_t const *, struct fs_File_OpenFlags__1820); +static nav__3631_39 fs_Dir_openFileZ__3631(struct fs_Dir__1822, uint8_t const *, struct fs_File_OpenFlags__1820); +static uint16_t bincode_serializeUnion__anon_2872__4567(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, struct shared_Command__2004); +static nav__4031_39 array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4031(struct array_list_ArrayListAligned_28u8_2cnull_29__2035); static nav__1544_39 posix_clock_gettime__1544(uint32_t); -static zig_cold zig_noreturn void debug_no_panic_corruptSwitch__4113(void); +static zig_cold zig_noreturn void debug_no_panic_corruptSwitch__4111(void); static nav__1133_38 fs_File_read__1133(struct fs_File__546, nav__1133_41); -static nav__4570_39 mem_Allocator_allocWithSizeAndAlignment__anon_2991__4570(struct mem_Allocator__206, uintptr_t, uintptr_t); -static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read__4185(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *, nav__4185_42); -static uint16_t io_Reader_readNoEof__4235(struct io_Reader__2450, nav__4235_40); -static nav__4234_38 io_Reader_readAtLeast__4234(struct io_Reader__2450, nav__4234_41, uintptr_t); -static zig_cold zig_noreturn void debug_no_panic_call__4093(nav__4093_39, nav__4093_40); -static nav__4571_39 mem_sliceAsBytes__anon_3028__4571(nav__4571_39); -static nav__4635_38 math_cast__anon_3065__4635(uint64_t); -static uintptr_t os_linux_clock_nanosleep__2718(uint32_t, uint32_t, struct os_linux_timespec__struct_2960__2960 const *, struct os_linux_timespec__struct_2960__2960 *); +static nav__4568_39 mem_Allocator_allocWithSizeAndAlignment__anon_2933__4568(struct mem_Allocator__206, uintptr_t, uintptr_t); +static nav__4183_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read__4183(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *, nav__4183_42); +static uint16_t io_Reader_readNoEof__4233(struct io_Reader__2439, nav__4233_40); +static nav__4232_38 io_Reader_readAtLeast__4232(struct io_Reader__2439, nav__4232_41, uintptr_t); +static zig_cold zig_noreturn void debug_no_panic_call__4091(nav__4091_39, nav__4091_40); +static nav__4569_39 mem_sliceAsBytes__anon_2970__4569(nav__4569_39); +static nav__4633_38 math_cast__anon_3009__4633(uint64_t); +static uintptr_t os_linux_clock_nanosleep__2718(uint32_t, uint32_t, struct os_linux_timespec__struct_2902__2902 const *, struct os_linux_timespec__struct_2902__2902 *); static uint16_t os_linux_errnoFromSyscall__2615(uintptr_t); -static void mem_Allocator_free__anon_3245__4637(struct mem_Allocator__206, nav__4637_40); -static bool math_isPowerOfTwo__anon_3247__4638(uintptr_t); -static void Thread_Mutex_Recursive_lock__4765(struct Thread_Mutex_Recursive__3310 *); -static uint16_t Progress_clearWrittenWithEscapeCodes__4368(void); +static void mem_Allocator_free__anon_3189__4635(struct mem_Allocator__206, nav__4635_40); +static bool math_isPowerOfTwo__anon_3191__4636(uintptr_t); +static void Thread_Mutex_Recursive_lock__4763(struct Thread_Mutex_Recursive__3253 *); +static uint16_t Progress_clearWrittenWithEscapeCodes__4366(void); static nav__1363_38 posix_write__1363(int32_t, nav__1363_40); -static uint16_t io_Writer_writeAll__3828(struct io_Writer__1905, nav__3828_40); -static uint16_t fmt_formatType__anon_3903__5144(nav__5144_39, struct fmt_FormatOptions__3815, struct io_Writer__1905, uintptr_t); -static void Thread_Mutex_Recursive_unlock__4766(struct Thread_Mutex_Recursive__3310 *); -static nav__5145_38 mem_indexOfScalar__anon_3927__5145(nav__5145_40, uint8_t); -static zig_cold zig_noreturn void debug_no_panic_memcpyLenMismatch__4117(void); -static zig_cold zig_noreturn void debug_no_panic_memcpyAlias__4118(void); +static uint16_t io_Writer_writeAll__3826(struct io_Writer__1950, nav__3826_40); +static uint16_t fmt_formatType__anon_3846__5142(nav__5142_39, struct fmt_FormatOptions__3758, struct io_Writer__1950, uintptr_t); +static void Thread_Mutex_Recursive_unlock__4764(struct Thread_Mutex_Recursive__3253 *); +static nav__5143_38 mem_indexOfScalar__anon_3870__5143(nav__5143_40, uint8_t); +static zig_cold zig_noreturn void debug_no_panic_memcpyLenMismatch__4115(void); +static zig_cold zig_noreturn void debug_no_panic_memcpyAlias__4116(void); static uint16_t posix_faccessatZ__1519(int32_t, uint8_t const *, uint32_t, uint32_t); static nav__1375_38 posix_openatZ__1375(int32_t, uint8_t const *, uint32_t, uintptr_t); static uint16_t posix_flock__1536(int32_t, int32_t); static void posix_close__1333(int32_t); -static uint16_t bincode_serialize__anon_4076__5215(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, uint32_t); -static zig_cold zig_noreturn void debug_no_panic_inactiveUnionField__anon_4078__5216(uint8_t, uint8_t); -static uint16_t bincode_serialize__anon_4080__5217(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, struct shared_Command__struct_1962__1962); -static uint16_t bincode_serialize__anon_4082__5218(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015); -static uint16_t bincode_serialize__anon_4084__5219(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, struct shared_Command__struct_1963__1963); -static uint16_t posix_errno__anon_4097__5221(int); +static uint16_t bincode_serialize__anon_3993__5213(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, uint32_t); +static zig_cold zig_noreturn void debug_no_panic_inactiveUnionField__anon_3995__5214(uint8_t, uint8_t); +static uint16_t bincode_serialize__anon_3997__5215(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, struct shared_Command__struct_2007__2007); +static uint16_t bincode_serialize__anon_3999__5216(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060); +static uint16_t bincode_serialize__anon_4001__5217(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, struct shared_Command__struct_2008__2008); +static uint16_t posix_errno__anon_4014__5219(int); static uint16_t posix_unexpectedErrno__1627(uint16_t); static nav__1355_38 posix_read__1355(int32_t, nav__1355_40); -static nav__5222_38 math_mul__anon_4111__5222(uintptr_t, uintptr_t); -static nav__5223_39 mem_Allocator_allocBytesWithAlignment__anon_4113__5223(struct mem_Allocator__206, uintptr_t, uintptr_t); -static nav__4232_38 io_Reader_read__4232(struct io_Reader__2450, nav__4232_41); -static uintptr_t os_linux_x86_64_syscall4__4600(uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); -static nav__5245_39 mem_sliceAsBytes__anon_4629__5245(nav__5245_39); -static uint32_t Thread_getCurrentId__4305(void); -static void Thread_Mutex_lock__4746(struct Thread_Mutex__3308 *); -static uint16_t Progress_write__4387(nav__4387_39); -static uint16_t posix_errno__anon_4692__5247(intptr_t); -static zig_cold zig_noreturn void debug_no_panic_negativeToUnsigned__4106(void); -static nav__3827_38 io_Writer_write__3827(struct io_Writer__1905, nav__3827_41); -static nav__4789_38 unicode_utf8ByteSequenceLength__4789(uint8_t); -static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40); -static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39, struct fmt_FormatOptions__3815, struct io_Writer__1905); -static void Thread_Mutex_unlock__4747(struct Thread_Mutex__3308 *); -static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40, uintptr_t, uint8_t); -static uint16_t bincode_serializeInt__anon_4953__5253(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, uint32_t); -static uint16_t bincode_serializeStruct__anon_4958__5254(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, struct shared_Command__struct_1962__1962); -static uint16_t bincode_serializeStruct__anon_4959__5255(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, struct shared_Command__struct_1963__1963); -static uint32_t Thread_PosixThreadImpl_getCurrentId__4574(void); -static void Thread_Mutex_FutexImpl_lock__4774(struct Thread_Mutex_FutexImpl__3338 *); -static nav__4795_38 unicode_utf8Decode__4795(nav__4795_40); -static nav__4788_38 unicode_utf8CodepointSequenceLength__4788(uint32_t); -static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t, nav__5278_40); -static nav__4790_38 unicode_utf8Encode__4790(uint32_t, nav__4790_40); -static uint16_t io_Writer_writeBytesNTimes__3832(struct io_Writer__1905, nav__3832_40, uintptr_t); -static void Thread_Mutex_FutexImpl_unlock__4777(struct Thread_Mutex_FutexImpl__3338 *); -static bool math_isPowerOfTwo__anon_5177__5258(void); -static nav__5265_38 simd_firstTrue__anon_5206__5265(nav__5265_40); -static zig_cold zig_noreturn void debug_no_panic_unwrapNull__4101(void); -static nav__5266_38 simd_firstTrue__anon_5225__5266(nav__5266_40); -static nav__4090_38 io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4090(void const *, nav__4090_41); -static uint16_t bincode_serialize__anon_5255__5267(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, nav__5267_40); -static uint32_t Thread_LinuxThreadImpl_getCurrentId__5271(void); -static bool Thread_Mutex_FutexImpl_tryLock__4775(struct Thread_Mutex_FutexImpl__3338 *); -static zig_cold void Thread_Mutex_FutexImpl_lockSlow__4776(struct Thread_Mutex_FutexImpl__3338 *); -static nav__4797_38 unicode_utf8Decode2__4797(nav__4797_40); -static nav__4799_38 unicode_utf8Decode3__4799(nav__4799_40); -static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40); -static zig_cold zig_noreturn void debug_no_panic_shiftRhsTooBig__4114(void); -static bool unicode_isSurrogateCodepoint__4868(uint32_t); -static zig_cold void Thread_Futex_wake__5290(struct atomic_Value_28u32_29__3290 const *, uint32_t); -static nav__4011_38 array_list_ArrayListAligned_28u8_2cnull_29_appendWrite__4011(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *, nav__4011_42); -static uint16_t bincode_serializePointer__anon_5401__5307(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015, nav__5307_40); +static nav__5220_38 math_mul__anon_4028__5220(uintptr_t, uintptr_t); +static nav__5221_39 mem_Allocator_allocBytesWithAlignment__anon_4030__5221(struct mem_Allocator__206, uintptr_t, uintptr_t); +static nav__4230_38 io_Reader_read__4230(struct io_Reader__2439, nav__4230_41); +static uintptr_t os_linux_x86_64_syscall4__4598(uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +static nav__5243_39 mem_sliceAsBytes__anon_4546__5243(nav__5243_39); +static uint32_t Thread_getCurrentId__4303(void); +static void Thread_Mutex_lock__4744(struct Thread_Mutex__3251 *); +static uint16_t Progress_write__4385(nav__4385_39); +static uint16_t posix_errno__anon_4609__5245(intptr_t); +static zig_cold zig_noreturn void debug_no_panic_negativeToUnsigned__4104(void); +static nav__3825_38 io_Writer_write__3825(struct io_Writer__1950, nav__3825_41); +static nav__4787_38 unicode_utf8ByteSequenceLength__4787(uint8_t); +static nav__4803_38 unicode_utf8CountCodepoints__4803(nav__4803_40); +static uint16_t fmt_formatBuf__anon_4737__5246(nav__5246_39, struct fmt_FormatOptions__3758, struct io_Writer__1950); +static void Thread_Mutex_unlock__4745(struct Thread_Mutex__3251 *); +static nav__5247_38 mem_indexOfScalarPos__anon_4748__5247(nav__5247_40, uintptr_t, uint8_t); +static uint16_t bincode_serializeInt__anon_4870__5251(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, uint32_t); +static uint16_t bincode_serializeStruct__anon_4875__5252(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, struct shared_Command__struct_2007__2007); +static uint16_t bincode_serializeStruct__anon_4876__5253(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, struct shared_Command__struct_2008__2008); +static uint32_t Thread_PosixThreadImpl_getCurrentId__4572(void); +static void Thread_Mutex_FutexImpl_lock__4772(struct Thread_Mutex_FutexImpl__3281 *); +static nav__4793_38 unicode_utf8Decode__4793(nav__4793_40); +static nav__4786_38 unicode_utf8CodepointSequenceLength__4786(uint32_t); +static nav__5276_38 unicode_utf8EncodeImpl__anon_5200__5276(uint32_t, nav__5276_40); +static nav__4788_38 unicode_utf8Encode__4788(uint32_t, nav__4788_40); +static uint16_t io_Writer_writeBytesNTimes__3830(struct io_Writer__1950, nav__3830_40, uintptr_t); +static void Thread_Mutex_FutexImpl_unlock__4775(struct Thread_Mutex_FutexImpl__3281 *); +static bool math_isPowerOfTwo__anon_5094__5256(void); +static nav__5263_38 simd_firstTrue__anon_5123__5263(nav__5263_40); +static zig_cold zig_noreturn void debug_no_panic_unwrapNull__4099(void); +static nav__5264_38 simd_firstTrue__anon_5142__5264(nav__5264_40); +static nav__4088_38 io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4088(void const *, nav__4088_41); +static uint16_t bincode_serialize__anon_5172__5265(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, nav__5265_40); +static uint32_t Thread_LinuxThreadImpl_getCurrentId__5269(void); +static bool Thread_Mutex_FutexImpl_tryLock__4773(struct Thread_Mutex_FutexImpl__3281 *); +static zig_cold void Thread_Mutex_FutexImpl_lockSlow__4774(struct Thread_Mutex_FutexImpl__3281 *); +static nav__4795_38 unicode_utf8Decode2__4795(nav__4795_40); +static nav__4797_38 unicode_utf8Decode3__4797(nav__4797_40); +static nav__4801_38 unicode_utf8Decode4__4801(nav__4801_40); +static zig_cold zig_noreturn void debug_no_panic_shiftRhsTooBig__4112(void); +static bool unicode_isSurrogateCodepoint__4866(uint32_t); +static zig_cold void Thread_Futex_wake__5288(struct atomic_Value_28u32_29__3233 const *, uint32_t); +static nav__4009_38 array_list_ArrayListAligned_28u8_2cnull_29_appendWrite__4009(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *, nav__4009_42); +static uint16_t bincode_serializePointer__anon_5318__5305(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060, nav__5305_40); static int32_t os_linux_gettid__2743(void); -static zig_cold void Thread_Futex_wait__5288(struct atomic_Value_28u32_29__3290 const *, uint32_t); -static nav__4801_38 unicode_utf8Decode3AllowSurrogateHalf__4801(nav__4801_40); -static void Thread_Futex_LinuxImpl_wake__5352(struct atomic_Value_28u32_29__3290 const *, uint32_t); -static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_appendSlice__4005(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *, nav__4005_41); -static uintptr_t os_linux_x86_64_syscall0__4596(uintptr_t); -static uint16_t Thread_Futex_LinuxImpl_wait__5351(struct atomic_Value_28u32_29__3290 const *, uint32_t, nav__5351_40); -static zig_cold zig_noreturn void debug_no_panic_unwrapError__4095(uint16_t); -static nav__5369_38 math_cast__anon_5556__5369(uint32_t); +static zig_cold void Thread_Futex_wait__5286(struct atomic_Value_28u32_29__3233 const *, uint32_t); +static nav__4799_38 unicode_utf8Decode3AllowSurrogateHalf__4799(nav__4799_40); +static void Thread_Futex_LinuxImpl_wake__5350(struct atomic_Value_28u32_29__3233 const *, uint32_t); +static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_appendSlice__4003(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *, nav__4003_41); +static uintptr_t os_linux_x86_64_syscall0__4594(uintptr_t); +static uint16_t Thread_Futex_LinuxImpl_wait__5349(struct atomic_Value_28u32_29__3233 const *, uint32_t, nav__5349_40); +static zig_cold zig_noreturn void debug_no_panic_unwrapError__4093(uint16_t); +static nav__5367_38 math_cast__anon_5473__5367(uint32_t); static uintptr_t os_linux_futex_wake__2629(int32_t const *, uint32_t, int32_t); -static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureUnusedCapacity__4024(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *, uintptr_t); -static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity__4006(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *, nav__4006_41); -static uintptr_t os_linux_futex_wait__2628(int32_t const *, uint32_t, int32_t, struct os_linux_timespec__struct_2960__2960 const *); -static uintptr_t os_linux_x86_64_syscall3__4599(uintptr_t, uintptr_t, uintptr_t, uintptr_t); -static nav__3949_38 array_list_addOrOom__3949(uintptr_t, uintptr_t); -static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacity__4022(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *, uintptr_t); -static uintptr_t array_list_ArrayListAlignedUnmanaged_28u8_2cnull_29_growCapacity__5428(uintptr_t, uintptr_t); -static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPrecise__4023(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *, uintptr_t); -static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__206, nav__5429_39, uintptr_t); -static nav__5430_40 mem_Allocator_alignedAlloc__anon_5632__5430(struct mem_Allocator__206, uintptr_t); -static nav__5431_39 mem_bytesAsSlice__anon_5647__5431(nav__5431_39); -static zig_cold zig_noreturn void debug_no_panic_exactDivisionRemainder__4111(void); +static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureUnusedCapacity__4022(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *, uintptr_t); +static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity__4004(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *, nav__4004_41); +static uintptr_t os_linux_futex_wait__2628(int32_t const *, uint32_t, int32_t, struct os_linux_timespec__struct_2902__2902 const *); +static uintptr_t os_linux_x86_64_syscall3__4597(uintptr_t, uintptr_t, uintptr_t, uintptr_t); +static nav__3947_38 array_list_addOrOom__3947(uintptr_t, uintptr_t); +static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacity__4020(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *, uintptr_t); +static uintptr_t array_list_ArrayListAlignedUnmanaged_28u8_2cnull_29_growCapacity__5426(uintptr_t, uintptr_t); +static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPrecise__4021(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *, uintptr_t); +static nav__5427_39 mem_Allocator_remap__anon_5544__5427(struct mem_Allocator__206, nav__5427_39, uintptr_t); +static nav__5428_40 mem_Allocator_alignedAlloc__anon_5549__5428(struct mem_Allocator__206, uintptr_t); +static nav__5429_39 mem_bytesAsSlice__anon_5564__5429(nav__5429_39); +static zig_cold zig_noreturn void debug_no_panic_exactDivisionRemainder__4109(void); #define c_instrument_hooks_deinit__232 instrument_hooks_deinit zig_extern void instrument_hooks_deinit(struct instruments_root_InstrumentHooks__188 *); -static zig_cold zig_noreturn void debug_no_panic_inactiveUnionField__anon_5659__5432(uint8_t, uint8_t); +static zig_cold zig_noreturn void debug_no_panic_inactiveUnionField__anon_5576__5430(uint8_t, uint8_t); static void instruments_perf_PerfInstrument_deinit__338(struct instruments_perf_PerfInstrument__200 *); -static void mem_Allocator_destroy__anon_5667__5433(struct mem_Allocator__206, struct instruments_root_InstrumentHooks__188 *); +static void mem_Allocator_destroy__anon_5584__5431(struct mem_Allocator__206, struct instruments_root_InstrumentHooks__188 *); static void fifo_UnixPipe_Writer_deinit__992(struct fifo_UnixPipe_Writer__538 *); static void fifo_UnixPipe_Reader_deinit__999(struct fifo_UnixPipe_Reader__540 *); static void fs_File_close__1090(struct fs_File__546); @@ -1157,58 +1152,58 @@ zig_extern bool instrument_hooks_is_instrumented(struct instruments_root_Instrum static zig_cold uint16_t instruments_perf_PerfInstrument_start_benchmark__341(struct instruments_perf_PerfInstrument__200 *); #define c_instrument_hooks_start_benchmark__234 instrument_hooks_start_benchmark zig_extern void instrument_hooks_start_benchmark(struct instruments_root_InstrumentHooks__188 *); -static void debug_print__anon_5759__5442(nav__5442_40); -static uint16_t io_Writer_print__anon_5760__5443(struct io_Writer__1905, nav__5443_41); -static uint16_t fmt_format__anon_5761__5444(struct io_Writer__1905, nav__5444_41); +static void debug_print__anon_5640__5434(nav__5434_40); +static uint16_t io_Writer_print__anon_5641__5435(struct io_Writer__1950, nav__5435_41); +static uint16_t fmt_format__anon_5642__5436(struct io_Writer__1950, nav__5436_41); static zig_cold uint16_t instruments_perf_PerfInstrument_stop_benchmark__342(struct instruments_perf_PerfInstrument__200 *); #define c_instrument_hooks_stop_benchmark__235 instrument_hooks_stop_benchmark zig_extern void instrument_hooks_stop_benchmark(struct instruments_root_InstrumentHooks__188 *); -static void debug_print__anon_5838__5445(nav__5445_40); -static uint16_t io_Writer_print__anon_5839__5446(struct io_Writer__1905, nav__5446_41); -static uint16_t fmt_format__anon_5840__5447(struct io_Writer__1905, nav__5447_41); +static void debug_print__anon_5716__5438(nav__5438_40); +static uint16_t io_Writer_print__anon_5717__5439(struct io_Writer__1950, nav__5439_41); +static uint16_t fmt_format__anon_5718__5440(struct io_Writer__1950, nav__5440_41); static uint16_t instruments_perf_PerfInstrument_current_benchmark__343(struct instruments_perf_PerfInstrument__200 *, uint32_t, uint8_t const *); #define c_instrument_hooks_current_benchmark__236 instrument_hooks_current_benchmark zig_extern void instrument_hooks_current_benchmark(struct instruments_root_InstrumentHooks__188 *, uint32_t, uint8_t const *); -static zig_cold zig_noreturn void debug_no_panic_castToNull__4102(void); -static nav__5448_39 mem_span__anon_5925__5448(uint8_t const *); -static void debug_print__anon_5933__5449(nav__5449_40); -static uintptr_t mem_len__anon_5941__5450(uint8_t const *); -static zig_cold zig_noreturn void debug_no_panic_sentinelMismatch__anon_5944__5451(uint8_t, uint8_t); -static uint16_t io_Writer_print__anon_5945__5452(struct io_Writer__1905, nav__5452_41); -static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *); -static uint16_t fmt_format__anon_5952__5454(struct io_Writer__1905, nav__5454_41); -static uintptr_t mem_alignForward__anon_5965__5455(uintptr_t, uintptr_t); +static zig_cold zig_noreturn void debug_no_panic_castToNull__4100(void); +static nav__5442_39 mem_span__anon_5801__5442(uint8_t const *); +static void debug_print__anon_5809__5443(nav__5443_40); +static uintptr_t mem_len__anon_5817__5444(uint8_t const *); +static zig_cold zig_noreturn void debug_no_panic_sentinelMismatch__anon_5820__5445(uint8_t, uint8_t); +static uint16_t io_Writer_print__anon_5821__5446(struct io_Writer__1950, nav__5446_41); +static uintptr_t mem_indexOfSentinel__anon_5827__5447(uint8_t const *); +static uint16_t fmt_format__anon_5828__5448(struct io_Writer__1950, nav__5448_41); +static uintptr_t mem_alignForward__anon_5841__5449(uintptr_t, uintptr_t); static bool mem_isAligned__499(uintptr_t, uintptr_t); -static bool mem_isValidAlignGeneric__anon_6022__5456(uintptr_t); -static uintptr_t mem_alignBackward__anon_6023__5457(uintptr_t, uintptr_t); -static bool mem_isAlignedGeneric__anon_6027__5458(uint64_t, uint64_t); -static uint64_t mem_alignBackward__anon_6029__5459(uint64_t, uint64_t); -static bool mem_isValidAlignGeneric__anon_6031__5460(uint64_t); -static bool math_isPowerOfTwo__anon_6033__5461(uint64_t); +static bool mem_isValidAlignGeneric__anon_5898__5450(uintptr_t); +static uintptr_t mem_alignBackward__anon_5899__5451(uintptr_t, uintptr_t); +static bool mem_isAlignedGeneric__anon_5903__5452(uint64_t, uint64_t); +static uint64_t mem_alignBackward__anon_5905__5453(uint64_t, uint64_t); +static bool mem_isValidAlignGeneric__anon_5907__5454(uint64_t); +static bool math_isPowerOfTwo__anon_5909__5455(uint64_t); static uint16_t instruments_perf_PerfInstrument_set_integration__344(struct instruments_perf_PerfInstrument__200 *, uint8_t const *, uint8_t const *); #define c_instrument_hooks_set_integration__237 instrument_hooks_set_integration zig_extern void instrument_hooks_set_integration(struct instruments_root_InstrumentHooks__188 *, uint8_t const *, uint8_t const *); -static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206, nav__5462_43); -static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206, nav__5463_40); -static void debug_print__anon_6079__5464(nav__5464_40); -static nav__5465_40 fmt_allocPrint__anon_6097__5465(struct mem_Allocator__206, nav__5465_43); -static nav__5466_39 mem_sliceAsBytes__anon_6104__5466(nav__5466_39); -static uint16_t io_Writer_print__anon_6105__5467(struct io_Writer__1905, nav__5467_41); -static uint16_t fmt_format__anon_6178__5510(struct io_Writer__1905, nav__5510_40); -static uint64_t fmt_count__anon_6112__5468(nav__5468_39); -static nav__5469_38 math_cast__anon_6114__5469(uint64_t); -static nav__5470_40 fmt_bufPrint__anon_6123__5470(nav__5470_39, nav__5470_42); -static uint16_t fmt_format__anon_6126__5471(struct io_Writer__1905, nav__5471_41); -static struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 io_counting_writer_countingWriter__anon_6148__5496(void); -static struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_writer__5495(struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *); -static nav__5509_38 io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWr__5509(void const *, nav__5509_41); -static uint16_t fmt_formatType__anon_6218__5511(uint8_t const *, struct fmt_FormatOptions__3815, struct io_Writer__1905, uintptr_t); -static struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_writer__4183(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *); -static nav__5524_38 io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write__5524(void const *, nav__5524_41); -static nav__4191_39 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWritten__4191(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303); -static nav__5494_38 io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_write__5494(struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *, nav__5494_42); -static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write__4186(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *, nav__4186_42); -static nav__3798_38 io_dummyWrite__3798(nav__3798_40); +static nav__5456_40 fmt_allocPrintZ__anon_5941__5456(struct mem_Allocator__206, nav__5456_43); +static void mem_Allocator_free__anon_5943__5457(struct mem_Allocator__206, nav__5457_40); +static void debug_print__anon_5955__5458(nav__5458_40); +static nav__5459_40 fmt_allocPrint__anon_5973__5459(struct mem_Allocator__206, nav__5459_43); +static nav__5460_39 mem_sliceAsBytes__anon_5980__5460(nav__5460_39); +static uint16_t io_Writer_print__anon_5981__5461(struct io_Writer__1950, nav__5461_41); +static uint16_t fmt_format__anon_6054__5504(struct io_Writer__1950, nav__5504_40); +static uint64_t fmt_count__anon_5988__5462(nav__5462_39); +static nav__5463_38 math_cast__anon_5990__5463(uint64_t); +static nav__5464_40 fmt_bufPrint__anon_5999__5464(nav__5464_39, nav__5464_42); +static uint16_t fmt_format__anon_6002__5465(struct io_Writer__1950, nav__5465_41); +static struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 io_counting_writer_countingWriter__anon_6024__5490(void); +static struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_writer__5489(struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *); +static nav__5503_38 io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWr__5503(void const *, nav__5503_41); +static uint16_t fmt_formatType__anon_6094__5505(uint8_t const *, struct fmt_FormatOptions__3758, struct io_Writer__1950, uintptr_t); +static struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_writer__4181(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *); +static nav__5518_38 io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write__5518(void const *, nav__5518_41); +static nav__4189_39 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWritten__4189(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292); +static nav__5488_38 io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_write__5488(struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *, nav__5488_42); +static nav__4184_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write__4184(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *, nav__4184_42); +static nav__3796_38 io_dummyWrite__3796(nav__3796_40); static uint64_t const builtin_zig_backend__242; static bool const start_simplified_logic__109; static uint8_t const builtin_output_mode__243; @@ -1231,43 +1226,44 @@ static struct mem_Allocator__206 const heap_c_allocator__3449; static struct mem_Allocator__206 const c_allocator__230; static struct Target_Cpu_Feature_Set__755 const Target_Cpu_Feature_Set_empty__3405; static struct Target_Cpu__723 const builtin_cpu__249; -static uint8_t const (*const shared_RUNNER_CTL_FIFO__3615)[21]; -static uint8_t const (*const shared_RUNNER_ACK_FIFO__3616)[21]; -static uint8_t const mem_native_endian__353; static uint8_t const builtin_abi__248; static uint8_t const builtin_object_format__252; static struct Target__561 const builtin_target__251; -static uint8_t const fs_path_native_os__3851; +static struct builtin_CallingConvention__261 const builtin_CallingConvention_c__830; +zig_extern uint8_t running_on_valgrind(void); +static uint8_t const (*const shared_RUNNER_CTL_FIFO__3613)[21]; +static uint8_t const (*const shared_RUNNER_ACK_FIFO__3614)[21]; +static uint8_t const mem_native_endian__353; +static uint8_t const fs_path_native_os__3849; static uint8_t const fs_native_os__1008; -static uint8_t const fs_Dir_native_os__3738; +static uint8_t const fs_Dir_native_os__3736; static uint8_t const os_linux_native_arch__2544; -static uint8_t const Thread_native_os__4284; -static bool const Thread_use_pthreads__4295; -static bool const Progress_is_windows__4339; +static uint8_t const Thread_native_os__4282; +static bool const Thread_use_pthreads__4293; +static bool const Progress_is_windows__4337; static bool const builtin_single_threaded__247; static uint8_t const builtin_mode__253; -static uint32_t const Thread_Mutex_FutexImpl_unlocked__4771; -static uint32_t const Thread_Mutex_Recursive_invalid_thread_id__4767; -static struct Thread_Mutex_Recursive__3310 const Thread_Mutex_Recursive_init__4763; -static struct Thread_Mutex_Recursive__3310 Progress_stderr_mutex__4394; -static bool const io_is_windows__3745; +static uint32_t const Thread_Mutex_FutexImpl_unlocked__4769; +static uint32_t const Thread_Mutex_Recursive_invalid_thread_id__4765; +static struct Thread_Mutex_Recursive__3253 const Thread_Mutex_Recursive_init__4761; +static struct Thread_Mutex_Recursive__3253 Progress_stderr_mutex__4392; +static bool const io_is_windows__3743; static bool const fs_File_is_windows__1184; -static uint16_t const fmt_max_format_args__4419; +static uint16_t const fmt_max_format_args__4417; static bool const debug_runtime_safety__159; static uint8_t const debug_native_os__145; static bool const debug_have_segfault_handling_support__202; static bool const debug_default_enable_segfault_handler__204; -static uint8_t const log_default_level__5078; -static struct std_Options__3827 const std_options__97; -static struct builtin_CallingConvention__261 const builtin_CallingConvention_c__830; +static uint8_t const log_default_level__5076; +static struct std_Options__3770 const std_options__97; zig_extern int flock(int32_t, int); -static bool const fs_Dir_have_flock__3739; +static bool const fs_Dir_have_flock__3737; static uint8_t const posix_native_os__1194; -zig_extern int clock_gettime(uint32_t, struct os_linux_timespec__struct_2960__2960 *); -static struct Progress__2779 Progress_global_progress__4343; -static uint8_t const (*const Progress_clear__4362)[4]; +zig_extern int clock_gettime(uint32_t, struct os_linux_timespec__struct_2902__2902 *); +static struct Progress__2767 Progress_global_progress__4341; +static uint8_t const (*const Progress_clear__4360)[4]; zig_extern intptr_t write(int32_t, uint8_t const *, uintptr_t); -static uint8_t const (*const fmt_ANY__4422)[4]; +static uint8_t const (*const fmt_ANY__4420)[4]; zig_extern int faccessat(int32_t, uint8_t const *, unsigned int, unsigned int); static bool const posix_lfs64_abi__1624; zig_extern int openat64(int, uint8_t const *, uint32_t, ...); @@ -1276,15 +1272,19 @@ static uint8_t const c_native_abi__1636; zig_extern int *zig_e___errno_location(void) zig_mangled(zig_e___errno_location, "__errno_location"); static bool const posix_unexpected_error_tracing__1625; zig_extern intptr_t read(int32_t, uint8_t *, uintptr_t); -static uint8_t const unicode_native_endian__4786; -static uint32_t const unicode_replacement_character__4787; +static uint8_t const unicode_native_endian__4784; +static uint32_t const unicode_replacement_character__4785; static bool const mem_backend_supports_vectors__381; static bool const builtin_valgrind_support__257; -static uint32_t const Thread_Mutex_FutexImpl_contended__4773; +static uint32_t const Thread_Mutex_FutexImpl_contended__4771; static nav__3465_38 const heap_page_size_min_default__3465; static uintptr_t const heap_page_size_min__3444; -static zig_threadlocal nav__5270_38 Thread_LinuxThreadImpl_tls_thread_id__5270; -static uint32_t const Thread_Mutex_FutexImpl_locked__4772; +static zig_threadlocal nav__5268_38 Thread_LinuxThreadImpl_tls_thread_id__5268; +static uint32_t const Thread_Mutex_FutexImpl_locked__4770; +zig_extern void callgrind_zero_stats(void); +zig_extern void callgrind_start_instrumentation(void); +zig_extern void callgrind_stop_instrumentation(void); +zig_extern void callgrind_dump_stats_at(uint8_t const *); static bool const os_linux_extern_getauxval__2608; static struct mem_Allocator_VTable__209 const heap_CAllocator_vtable__3476; zig_extern uintptr_t malloc_usable_size(void const *); @@ -1292,10 +1292,10 @@ static bool const heap_CAllocator_supports_malloc_size__3477; static bool const heap_CAllocator_supports_posix_memalign__3479; zig_extern int posix_memalign(void **, uintptr_t, uintptr_t); zig_extern void free(void *); -static struct Target_Cpu_Model__750 const Target_x86_cpu_alderlake__3512; -static uint8_t Progress_node_parents_buffer__4345[83]; -static struct Progress_Node_Storage__3269 Progress_node_storage_buffer__4346[83]; -static uint8_t Progress_node_freelist_buffer__4347[83]; +static struct Target_Cpu_Model__750 const Target_x86_cpu_alderlake__3509; +static uint8_t Progress_node_parents_buffer__4343[83]; +static struct Progress_Node_Storage__3212 Progress_node_storage_buffer__4344[83]; +static uint8_t Progress_node_freelist_buffer__4345[83]; enum { zig_error_OutOfMemory = 1u, zig_error_PermissionDenied = 2u, @@ -1412,49 +1412,41 @@ static uint8_t const zig_errorName_CodepointTooLarge[18] = "CodepointTooLarge"; static uint8_t const zig_errorName_Timeout[8] = "Timeout"; static struct anon__lazy_58 const zig_errorName[57] = {{zig_errorName_OutOfMemory, 11ul}, {zig_errorName_PermissionDenied, 16ul}, {zig_errorName_FileNotFound, 12ul}, {zig_errorName_NameTooLong, 11ul}, {zig_errorName_InputOutput, 11ul}, {zig_errorName_SystemResources, 15ul}, {zig_errorName_BadPathName, 11ul}, {zig_errorName_FileBusy, 8ul}, {zig_errorName_SymLinkLoop, 11ul}, {zig_errorName_ReadOnlyFileSystem, 18ul}, {zig_errorName_InvalidUtf8, 11ul}, {zig_errorName_InvalidWtf8, 11ul}, {zig_errorName_Unexpected, 10ul}, {zig_errorName_SharingViolation, 16ul}, {zig_errorName_PathAlreadyExists, 17ul}, {zig_errorName_AccessDenied, 12ul}, {zig_errorName_PipeBusy, 8ul}, {zig_errorName_NoDevice, 8ul}, {zig_errorName_NetworkNotFound, 15ul}, {zig_errorName_AntivirusInterference, 21ul}, {zig_errorName_ProcessFdQuotaExceeded, 22ul}, {zig_errorName_SystemFdQuotaExceeded, 21ul}, {zig_errorName_FileTooBig, 10ul}, {zig_errorName_IsDir, 5ul}, {zig_errorName_NoSpaceLeft, 11ul}, {zig_errorName_NotDir, 6ul}, {zig_errorName_DeviceBusy, 10ul}, {zig_errorName_FileLocksNotSupported, 21ul}, {zig_errorName_WouldBlock, 10ul}, {zig_errorName_DiskQuota, 9ul}, {zig_errorName_InvalidArgument, 15ul}, {zig_errorName_BrokenPipe, 10ul}, {zig_errorName_OperationAborted, 16ul}, {zig_errorName_NotOpenForWriting, 17ul}, {zig_errorName_LockViolation, 13ul}, {zig_errorName_ConnectionResetByPeer, 21ul}, {zig_errorName_ProcessNotFound, 15ul}, {zig_errorName_AckTimeout, 10ul}, {zig_errorName_ConnectionTimedOut, 18ul}, {zig_errorName_NotOpenForReading, 17ul}, {zig_errorName_SocketNotConnected, 18ul}, {zig_errorName_Canceled, 8ul}, {zig_errorName_EndOfStream, 11ul}, {zig_errorName_UnexpectedError, 15ul}, {zig_errorName_UnexpectedResponse, 18ul}, {zig_errorName_UnsupportedClock, 16ul}, {zig_errorName_Overflow, 8ul}, {zig_errorName_Utf8ExpectedContinuation, 24ul}, {zig_errorName_Utf8OverlongEncoding, 20ul}, {zig_errorName_Utf8EncodesSurrogateHalf, 24ul}, {zig_errorName_Utf8CodepointTooLarge, 21ul}, {zig_errorName_Utf8InvalidStartByte, 20ul}, {zig_errorName_TruncatedInput, 14ul}, {zig_errorName_Utf8CannotEncodeSurrogateHalf, 29ul}, {zig_errorName_CodepointTooLarge, 17ul}, {zig_errorName_Timeout, 7ul}}; -static uint8_t const __anon_1768[21] = "/tmp/runner.ctl.fifo"; +static uint8_t const __anon_1813[21] = "/tmp/runner.ctl.fifo"; -static uint8_t const __anon_1828[21] = "/tmp/runner.ack.fifo"; +static uint8_t const __anon_1873[21] = "/tmp/runner.ack.fifo"; -static uintptr_t const __anon_906[6] = {4097ul,0ul,0ul,0ul,0ul,0ul}; +static uint8_t const __anon_2953[89] = "Invalid protocol detected: The stream end was found before all required bytes were read."; -static uint8_t const __anon_3011[89] = "Invalid protocol detected: The stream end was found before all required bytes were read."; +static uint8_t const __anon_3408[36] = "Failed to allocate InstrumentHooks: "; -static uint8_t const __anon_3465[36] = "Failed to allocate InstrumentHooks: "; +static uint8_t const __anon_3852[1] = "\n"; -static uint8_t const __anon_3909[1] = "\n"; +static uint8_t const __anon_4593[4] = "\033[J"; -static uint8_t const __anon_4676[4] = "\033[J"; +static uint8_t const __anon_4727[8] = "{ ... }"; -static uint8_t const __anon_4810[8] = "{ ... }"; +static uint8_t const __anon_4963[18] = "Deadlock detected"; -static uint8_t const __anon_5046[18] = "Deadlock detected"; +static uint8_t const __anon_5071[3] = "\357\277\275"; -static uint8_t const __anon_5154[3] = "\357\277\275"; +static uint8_t const __anon_5679[27] = "Failed to start benchmark: "; -static uintptr_t const __anon_5743[6] = {1129578497ul,0ul,0ul,0ul,0ul,0ul}; +static uint8_t const __anon_5754[26] = "Failed to stop benchmark: "; -static uintptr_t const __anon_5748[6] = {1129578500ul,0ul,0ul,0ul,0ul,0ul}; +static uint8_t const __anon_5887[33] = "Failed to get current benchmark: "; -static uint8_t const __anon_5798[27] = "Failed to start benchmark: "; +static uint8_t const __anon_6085[10] = "Metadata: "; -static uintptr_t const __anon_5823[6] = {1129578501ul,0ul,0ul,0ul,0ul,0ul}; +static uint8_t const __anon_6100[1] = " "; -static uint8_t const __anon_5876[26] = "Failed to stop benchmark: "; +static uint8_t const __anon_6119[1] = "\000"; -static uint8_t const __anon_6011[33] = "Failed to get current benchmark: "; +static uint8_t const __anon_6186[27] = "Failed to set integration: "; -static uint8_t const __anon_6209[10] = "Metadata: "; +static uint8_t const __anon_4687[4] = "any"; -static uint8_t const __anon_6224[1] = " "; - -static uint8_t const __anon_6243[1] = "\000"; - -static uint8_t const __anon_6310[27] = "Failed to set integration: "; - -static uint8_t const __anon_4770[4] = "any"; - -static uint8_t const __anon_6383[10] = "alderlake"; +static uint8_t const __anon_6259[10] = "alderlake"; static nav__987_39 fifo_UnixPipe_openWrite__987(struct mem_Allocator__206 const a0, nav__987_42 const a1) { nav__987_39 t1; @@ -1462,13 +1454,13 @@ static nav__987_39 fifo_UnixPipe_openWrite__987(struct mem_Allocator__206 const nav__987_56 t2; struct fs_File__546 t3; uint16_t t0; - t0 = fs_accessAbsolute__1053(a1, (struct fs_File_OpenFlags__1775){UINT8_C(2),UINT8_C(0),false,false}); + t0 = fs_accessAbsolute__1053(a1, (struct fs_File_OpenFlags__1820){UINT8_C(2),UINT8_C(0),false,false}); if (t0) { t1.payload = (struct fifo_UnixPipe_Writer__538){{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{-INT32_C(0x55555556)}}; t1.error = t0; return t1; } - t2 = fs_openFileAbsolute__1050(a1, (struct fs_File_OpenFlags__1775){UINT8_C(2),UINT8_C(1),true,false}); + t2 = fs_openFileAbsolute__1050(a1, (struct fs_File_OpenFlags__1820){UINT8_C(2),UINT8_C(1),true,false}); if (t2.error) { t0 = t2.error; t1.payload = (struct fifo_UnixPipe_Writer__538){{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{-INT32_C(0x55555556)}}; @@ -1488,13 +1480,13 @@ static nav__986_39 fifo_UnixPipe_openRead__986(struct mem_Allocator__206 const a nav__986_56 t2; struct fs_File__546 t3; uint16_t t0; - t0 = fs_accessAbsolute__1053(a1, (struct fs_File_OpenFlags__1775){UINT8_C(2),UINT8_C(0),false,false}); + t0 = fs_accessAbsolute__1053(a1, (struct fs_File_OpenFlags__1820){UINT8_C(2),UINT8_C(0),false,false}); if (t0) { t1.payload = (struct fifo_UnixPipe_Reader__540){{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{-INT32_C(0x55555556)}}; t1.error = t0; return t1; } - t2 = fs_openFileAbsolute__1050(a1, (struct fs_File_OpenFlags__1775){UINT8_C(2),UINT8_C(1),true,false}); + t2 = fs_openFileAbsolute__1050(a1, (struct fs_File_OpenFlags__1820){UINT8_C(2),UINT8_C(1),true,false}); if (t2.error) { t0 = t2.error; t1.payload = (struct fifo_UnixPipe_Reader__540){{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{-INT32_C(0x55555556)}}; @@ -1525,7 +1517,7 @@ static nav__337_39 instruments_perf_PerfInstrument_init__337(struct mem_Allocato t2 = (struct mem_Allocator__206 *)&t1->allocator; (*t2) = a0; t3 = (struct fifo_UnixPipe_Writer__538 *)&t1->writer; - t4 = fifo_UnixPipe_openWrite__987(a0, (nav__337_59){(uint8_t const *)&__anon_1768,(uintptr_t)20ul}); + t4 = fifo_UnixPipe_openWrite__987(a0, (nav__337_59){(uint8_t const *)&__anon_1813,(uintptr_t)20ul}); if (t4.error) { t5 = t4.error; t6.payload = (struct instruments_perf_PerfInstrument__200){{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{-INT32_C(0x55555556)}},{{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{-INT32_C(0x55555556)}}}; @@ -1535,7 +1527,7 @@ static nav__337_39 instruments_perf_PerfInstrument_init__337(struct mem_Allocato t7 = t4.payload; (*t3) = t7; t8 = (struct fifo_UnixPipe_Reader__540 *)&t1->reader; - t9 = fifo_UnixPipe_openRead__986(a0, (nav__337_59){(uint8_t const *)&__anon_1828,(uintptr_t)20ul}); + t9 = fifo_UnixPipe_openRead__986(a0, (nav__337_59){(uint8_t const *)&__anon_1873,(uintptr_t)20ul}); if (t9.error) { t5 = t9.error; t6.payload = (struct instruments_perf_PerfInstrument__200){{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{-INT32_C(0x55555556)}},{{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)},{-INT32_C(0x55555556)}}}; @@ -1548,56 +1540,47 @@ static nav__337_39 instruments_perf_PerfInstrument_init__337(struct mem_Allocato } static nav__314_39 instruments_root_InstrumentHooks_init__314(struct mem_Allocator__206 const a0) { - uintptr_t t0; - uintptr_t t1; - uint64_t t5; - struct instruments_valgrind_ValgrindInstrument__195 t7; - struct instruments_root_InstrumentHooks__188 t8; - nav__314_39 t9; - struct instruments_perf_PerfInstrument__200 t11; - struct instruments_perf_PerfInstrument__200 t13; - struct instruments_perf_PerfInstrument__200 t10; - nav__314_62 t12; - bool t6; - t0 = helpers_valgrind_black_box__anon_914__3501((uintptr_t)0ul); - t1 = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t t2 __asm("rdx") = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t const (*const t3)[6] __asm("rax") = &__anon_906; - register uintptr_t const t4 __asm("rdx") = t0; - __asm volatile(" rolq $3, %%rdi ; rolq $13, %%rdi\n rolq $61, %%rdi ; rolq $51, %%rdi\n xchgq %%rbx, %%rbx": "=r"(t2): "r"(t3), "r"(t4): "cc", "memory"); - t1 = t2; - t5 = t1; - t6 = t5 > UINT64_C(0); - if (t6) { - t7 = instruments_valgrind_ValgrindInstrument_init__325(a0); - t8.tag = UINT8_C(0); - t8.payload.valgrind = t7; - t9.payload = t8; - t9.error = UINT16_C(0); - return t9; + struct instruments_valgrind_ValgrindInstrument__195 t2; + struct instruments_root_InstrumentHooks__188 t3; + nav__314_39 t4; + struct instruments_perf_PerfInstrument__200 t6; + struct instruments_perf_PerfInstrument__200 t8; + struct instruments_perf_PerfInstrument__200 t5; + nav__314_60 t7; + uint8_t t0; + bool t1; + t0 = running_on_valgrind(); + t1 = t0 > UINT8_C(0); + if (t1) { + t2 = instruments_valgrind_ValgrindInstrument_init__325(a0); + t3.tag = UINT8_C(0); + t3.payload.valgrind = t2; + t4.payload = t3; + t4.error = UINT16_C(0); + return t4; } goto zig_block_0; zig_block_0:; - t12 = instruments_perf_PerfInstrument_init__337(a0); - t6 = t12.error == UINT16_C(0); - if (t6) { - t13 = t12.payload; - t11 = t13; + t7 = instruments_perf_PerfInstrument_init__337(a0); + t1 = t7.error == UINT16_C(0); + if (t1) { + t8 = t7.payload; + t6 = t8; goto zig_block_1; } return (nav__314_39){{{{{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)}}},UINT8_C(2)},0}; zig_block_1:; - t10 = t11; - t6 = instruments_perf_PerfInstrument_is_instrumented__340(&t10); - if (t6) { - t11 = t10; - t8.tag = UINT8_C(1); - t8.payload.perf = t11; - t9.payload = t8; - t9.error = UINT16_C(0); - return t9; + t5 = t6; + t1 = instruments_perf_PerfInstrument_is_instrumented__340(&t5); + if (t1) { + t6 = t5; + t3.tag = UINT8_C(1); + t3.payload.perf = t6; + t4.payload = t3; + t4.error = UINT16_C(0); + return t4; } goto zig_block_2; @@ -1650,7 +1633,7 @@ static nav__3488_40 mem_Allocator_create__anon_795__3488(struct mem_Allocator__2 t1 = (struct mem_Allocator__206 const *)&t0; t2 = (*t1); t3 = (uintptr_t)zig_return_address(); - t4 = mem_Allocator_allocBytesWithAlignment__anon_1857__3740(t2, (uintptr_t)72ul, t3); + t4 = mem_Allocator_allocBytesWithAlignment__anon_1902__3738(t2, (uintptr_t)72ul, t3); if (t4.error) { t5 = t4.error; t6.payload = ((struct instruments_root_InstrumentHooks__188 *)(uintptr_t)0xaaaaaaaaaaaaaaaaul); @@ -1666,49 +1649,49 @@ static nav__3488_40 mem_Allocator_create__anon_795__3488(struct mem_Allocator__2 static void debug_print__anon_809__3489(nav__3489_40 const a0) { struct fs_File__546 const *t2; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t5; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t7; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *t8; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t5; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t7; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *t8; void const **t10; void const *t11; nav__3489_54 (**t12)(void const *, nav__3489_39); - struct io_Writer__1905 t13; - struct io_Writer__1905 t9; - struct io_Writer__1905 t14; - struct io_Writer__1905 const *t15; + struct io_Writer__1950 t13; + struct io_Writer__1950 t9; + struct io_Writer__1950 t14; + struct io_Writer__1950 const *t15; struct fs_File__546 t0; struct fs_File__546 t1; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t3; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t4; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t6; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t3; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t4; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t6; uint16_t t16; uint16_t t17; bool t18; debug_lockStdErr__161(); - t0 = io_getStdErr__3758(); + t0 = io_getStdErr__3756(); t1 = t0; t2 = (struct fs_File__546 const *)&t1; t0 = (*t2); t3 = fs_File_writer__1162(t0); t4 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t4; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t4; t3 = (*t5); t6 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t6; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t6; t7 = t5; - t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *)&t7; + t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *)&t7; t10 = (void const **)&t9.context; t5 = (*t8); t2 = (struct fs_File__546 const *)&t5->context; t11 = (void const *)t2; (*t10) = t11; t12 = (nav__3489_54 (**)(void const *, nav__3489_39))&t9.writeFn; - (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3820; + (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3818; t13 = t9; t14 = t13; - t15 = (struct io_Writer__1905 const *)&t14; + t15 = (struct io_Writer__1950 const *)&t14; t13 = (*t15); - t16 = io_Writer_print__anon_1928__3837(t13, a0); + t16 = io_Writer_print__anon_1973__3835(t13, a0); memcpy(&t17, &t16, sizeof(uint16_t)); t18 = t17 == UINT16_C(0); if (t18) { @@ -1722,49 +1705,44 @@ static void debug_print__anon_809__3489(nav__3489_40 const a0) { return; } -static uintptr_t helpers_valgrind_black_box__anon_914__3501(uintptr_t const a0) { - __asm volatile("":: [val]"r"(a0):); - return a0; -} - static struct instruments_valgrind_ValgrindInstrument__195 instruments_valgrind_ValgrindInstrument_init__325(struct mem_Allocator__206 const a0) { struct instruments_valgrind_ValgrindInstrument__195 t0; t0.allocator = a0; return t0; } -static uint16_t fs_accessAbsolute__1053(nav__1053_39 const a0, struct fs_File_OpenFlags__1775 const a1) { - struct fs_Dir__1777 const *t3; - struct fs_Dir__1777 t1; - struct fs_Dir__1777 t2; +static uint16_t fs_accessAbsolute__1053(nav__1053_39 const a0, struct fs_File_OpenFlags__1820 const a1) { + struct fs_Dir__1822 const *t3; + struct fs_Dir__1822 t1; + struct fs_Dir__1822 t2; uint16_t t4; bool t0; - t0 = fs_path_isAbsolute__3872(a0); + t0 = fs_path_isAbsolute__3870(a0); debug_assert__179(t0); t1 = fs_cwd__1045(); t2 = t1; - t3 = (struct fs_Dir__1777 const *)&t2; + t3 = (struct fs_Dir__1822 const *)&t2; t1 = (*t3); - t4 = fs_Dir_access__3696(t1, a0, a1); + t4 = fs_Dir_access__3694(t1, a0, a1); if (t4) { return t4; } return 0; } -static nav__1050_39 fs_openFileAbsolute__1050(nav__1050_41 const a0, struct fs_File_OpenFlags__1775 const a1) { - struct fs_Dir__1777 const *t3; - struct fs_Dir__1777 t1; - struct fs_Dir__1777 t2; +static nav__1050_39 fs_openFileAbsolute__1050(nav__1050_41 const a0, struct fs_File_OpenFlags__1820 const a1) { + struct fs_Dir__1822 const *t3; + struct fs_Dir__1822 t1; + struct fs_Dir__1822 t2; nav__1050_39 t4; bool t0; - t0 = fs_path_isAbsolute__3872(a0); + t0 = fs_path_isAbsolute__3870(a0); debug_assert__179(t0); t1 = fs_cwd__1045(); t2 = t1; - t3 = (struct fs_Dir__1777 const *)&t2; + t3 = (struct fs_Dir__1822 const *)&t2; t1 = (*t3); - t4 = fs_Dir_openFile__3632(t1, a0, a1); + t4 = fs_Dir_openFile__3630(t1, a0, a1); return t4; } @@ -1790,13 +1768,13 @@ static struct fifo_UnixPipe_Reader__540 fifo_UnixPipe_Reader_init__993(struct fs return t0; } -static uint16_t fifo_UnixPipe_Writer_sendCmd__991(struct fifo_UnixPipe_Writer__538 *const a0, struct shared_Command__1959 const a1) { +static uint16_t fifo_UnixPipe_Writer_sendCmd__991(struct fifo_UnixPipe_Writer__538 *const a0, struct shared_Command__2004 const a1) { struct fifo_UnixPipe_Writer__538 *const *t1; struct mem_Allocator__206 *t3; struct mem_Allocator__206 t4; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 t5; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 t2; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t6; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 t5; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 t2; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t6; nav__991_55 t8; struct fifo_UnixPipe_Writer__538 *t9; struct fifo_UnixPipe_Writer__538 *t0; @@ -1814,13 +1792,13 @@ static uint16_t fifo_UnixPipe_Writer_sendCmd__991(struct fifo_UnixPipe_Writer__5 t1 = (struct fifo_UnixPipe_Writer__538 *const *)&t0; t3 = (struct mem_Allocator__206 *)&a0->allocator; t4 = (*t3); - t5 = array_list_ArrayListAligned_28u8_2cnull_29_init__3985(t4); + t5 = array_list_ArrayListAligned_28u8_2cnull_29_init__3983(t4); t2 = t5; - t6 = array_list_ArrayListAligned_28u8_2cnull_29_writer__4010(&t2); - t7 = bincode_serialize__anon_2025__4091(t6, a1); + t6 = array_list_ArrayListAligned_28u8_2cnull_29_writer__4008(&t2); + t7 = bincode_serialize__anon_2070__4089(t6, a1); if (t7) { t5 = t2; - array_list_ArrayListAligned_28u8_2cnull_29_deinit__3987(t5); + array_list_ArrayListAligned_28u8_2cnull_29_deinit__3985(t5); return t7; } t5 = t2; @@ -1833,20 +1811,20 @@ static uint16_t fifo_UnixPipe_Writer_sendCmd__991(struct fifo_UnixPipe_Writer__5 if (t13) { goto zig_block_0; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_0:; t14 = (uint32_t)t12; t15 = t14; t16 = (uint32_t const *)&t15; - t17 = mem_asBytes__anon_2143__4120(t16); + t17 = mem_asBytes__anon_2188__4118(t16); t18.ptr = &(*t17)[(uintptr_t)0ul]; t18.len = (uintptr_t)4ul; t7 = fs_File_writeAll__1144(t11, t18); if (t7) { t5 = t2; - array_list_ArrayListAligned_28u8_2cnull_29_deinit__3987(t5); + array_list_ArrayListAligned_28u8_2cnull_29_deinit__3985(t5); return t7; } t9 = (*t1); @@ -1856,60 +1834,60 @@ static uint16_t fifo_UnixPipe_Writer_sendCmd__991(struct fifo_UnixPipe_Writer__5 t7 = fs_File_writeAll__1144(t11, t18); if (t7) { t5 = t2; - array_list_ArrayListAligned_28u8_2cnull_29_deinit__3987(t5); + array_list_ArrayListAligned_28u8_2cnull_29_deinit__3985(t5); return t7; } t5 = t2; - array_list_ArrayListAligned_28u8_2cnull_29_deinit__3987(t5); + array_list_ArrayListAligned_28u8_2cnull_29_deinit__3985(t5); return 0; } -static nav__4230_38 bincode_deserializeInt__anon_2436__4230(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0) { - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *t1; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *t4; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t2; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t0; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t3; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *const *t5; +static nav__4228_38 bincode_deserializeInt__anon_2425__4228(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0) { + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *t1; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *t4; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t2; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t0; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t3; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *const *t5; void const **t7; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *t8; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *t8; void const *t9; - nav__4230_50 (**t10)(void const *, nav__4230_52); - struct io_Reader__2450 t11; - struct io_Reader__2450 t6; - struct io_Reader__2450 t12; - struct io_Reader__2450 t15; - struct io_Reader__2450 const *t13; + nav__4228_50 (**t10)(void const *, nav__4228_52); + struct io_Reader__2439 t11; + struct io_Reader__2439 t6; + struct io_Reader__2439 t12; + struct io_Reader__2439 t15; + struct io_Reader__2439 const *t13; uint8_t const (*t21)[4]; - nav__4230_38 t14; - nav__4230_38 t18; + nav__4228_38 t14; + nav__4228_38 t18; uint32_t t22; - nav__4230_64 t16; + nav__4228_64 t16; uint16_t t17; uint8_t t19[4]; uint8_t t20[4]; t0 = a0; - t1 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *)&t0; + t1 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *)&t0; t2 = (*t1); t3 = t2; - t1 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *)&t3; + t1 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *)&t3; t4 = t1; - t5 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *const *)&t4; + t5 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *const *)&t4; t7 = (void const **)&t6.context; t1 = (*t5); - t8 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *)&t1->context; + t8 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *)&t1->context; t9 = (void const *)t8; (*t7) = t9; - t10 = (nav__4230_50 (**)(void const *, nav__4230_52))&t6.readFn; - (*t10) = &io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4226; + t10 = (nav__4228_50 (**)(void const *, nav__4228_52))&t6.readFn; + (*t10) = &io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4224; t11 = t6; t12 = t11; - t13 = (struct io_Reader__2450 const *)&t12; + t13 = (struct io_Reader__2439 const *)&t12; t11 = (*t13); t15 = t11; - t13 = (struct io_Reader__2450 const *)&t15; + t13 = (struct io_Reader__2439 const *)&t15; t11 = (*t13); - t16 = io_Reader_readBytesNoEof__anon_2479__4268(t11); + t16 = io_Reader_readBytesNoEof__anon_2468__4266(t11); if (t16.error) { t17 = t16.error; t18.payload = UINT32_C(0xaaaaaaaa); @@ -1929,7 +1907,7 @@ static nav__4230_38 bincode_deserializeInt__anon_2436__4230(struct io_GenericRea goto zig_block_0; zig_block_0:; - memcpy(&t18, &t14, sizeof(nav__4230_38)); + memcpy(&t18, &t14, sizeof(nav__4228_38)); if (t18.error) { t17 = t18.error; t18.payload = UINT32_C(0xaaaaaaaa); @@ -1942,12 +1920,12 @@ static nav__4230_38 bincode_deserializeInt__anon_2436__4230(struct io_GenericRea return t18; } -static nav__4229_38 bincode_deserializeAlloc__anon_2425__4229(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { - nav__4229_38 t0; +static nav__4227_38 bincode_deserializeAlloc__anon_2414__4227(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { + nav__4227_38 t0; uint32_t t2; uint16_t t1; (void)a1; - t0 = bincode_deserializeInt__anon_2436__4230(a0); + t0 = bincode_deserializeInt__anon_2425__4228(a0); if (t0.error) { t1 = t0.error; t0.payload = UINT32_C(0xaaaaaaaa); @@ -1960,71 +1938,71 @@ static nav__4229_38 bincode_deserializeAlloc__anon_2425__4229(struct io_GenericR return t0; } -static nav__4272_40 bincode_deserializePointerAlloc__anon_2560__4272(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *t1; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *t6; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *t7; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *t32; +static nav__4270_40 bincode_deserializePointerAlloc__anon_2549__4270(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *t1; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *t6; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *t7; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *t32; struct mem_Allocator__206 const *t3; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t4; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t0; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t5; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t31; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *const *t8; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t4; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t0; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t5; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t31; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *const *t8; void const **t10; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *t11; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *t11; void const *t12; - nav__4272_59 (**t13)(void const *, nav__4272_39); - struct io_Reader__2450 t14; - struct io_Reader__2450 t9; - struct io_Reader__2450 t15; - struct io_Reader__2450 t18; - struct io_Reader__2450 t33; - struct io_Reader__2450 t34; - struct io_Reader__2450 const *t16; - nav__4272_69 t17; - nav__4272_69 t21; + nav__4270_59 (**t13)(void const *, nav__4270_39); + struct io_Reader__2439 t14; + struct io_Reader__2439 t9; + struct io_Reader__2439 t15; + struct io_Reader__2439 t18; + struct io_Reader__2439 t33; + struct io_Reader__2439 t34; + struct io_Reader__2439 const *t16; + nav__4270_69 t17; + nav__4270_69 t21; uint8_t const (*t24)[8]; uint64_t t25; uint64_t t38; - nav__4272_40 t26; + nav__4270_40 t26; uintptr_t t27; uintptr_t t37; struct mem_Allocator__206 t29; struct mem_Allocator__206 t2; - nav__4272_39 t30; - nav__4272_39 t28; - nav__4272_59 t35; - nav__4272_59 t36; - nav__4272_72 t19; + nav__4270_39 t30; + nav__4270_39 t28; + nav__4270_59 t35; + nav__4270_59 t36; + nav__4270_72 t19; uint16_t t20; uint8_t t22[8]; uint8_t t23[8]; bool t39; t0 = a0; - t1 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *)&t0; + t1 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *)&t0; t2 = a1; t3 = (struct mem_Allocator__206 const *)&t2; t4 = (*t1); t5 = t4; - t6 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *)&t5; + t6 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *)&t5; t7 = t6; - t8 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *const *)&t7; + t8 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *const *)&t7; t10 = (void const **)&t9.context; t6 = (*t8); - t11 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *)&t6->context; + t11 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *)&t6->context; t12 = (void const *)t11; (*t10) = t12; - t13 = (nav__4272_59 (**)(void const *, nav__4272_39))&t9.readFn; - (*t13) = &io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4226; + t13 = (nav__4270_59 (**)(void const *, nav__4270_39))&t9.readFn; + (*t13) = &io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4224; t14 = t9; t15 = t14; - t16 = (struct io_Reader__2450 const *)&t15; + t16 = (struct io_Reader__2439 const *)&t15; t14 = (*t16); t18 = t14; - t16 = (struct io_Reader__2450 const *)&t18; + t16 = (struct io_Reader__2439 const *)&t18; t14 = (*t16); - t19 = io_Reader_readBytesNoEof__anon_2573__4273(t14); + t19 = io_Reader_readBytesNoEof__anon_2562__4271(t14); if (t19.error) { t20 = t19.error; t21.payload = UINT64_C(0xaaaaaaaaaaaaaaaa); @@ -2044,20 +2022,20 @@ static nav__4272_40 bincode_deserializePointerAlloc__anon_2560__4272(struct io_G goto zig_block_0; zig_block_0:; - memcpy(&t21, &t17, sizeof(nav__4272_69)); + memcpy(&t21, &t17, sizeof(nav__4270_69)); if (t21.error) { t20 = t21.error; - t26.payload = (nav__4272_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; + t26.payload = (nav__4270_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; t26.error = t20; return t26; } t25 = t21.payload; t27 = t25; t29 = (*t3); - t26 = mem_Allocator_alloc__anon_2284__4161(t29, t27); + t26 = mem_Allocator_alloc__anon_2273__4159(t29, t27); if (t26.error) { t20 = t26.error; - t26.payload = (nav__4272_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; + t26.payload = (nav__4270_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; t26.error = t20; return t26; } @@ -2066,28 +2044,28 @@ static nav__4272_40 bincode_deserializePointerAlloc__anon_2560__4272(struct io_G t4 = (*t1); t30 = t28; t31 = t4; - t1 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *)&t31; + t1 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *)&t31; t32 = t1; - t8 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const *const *)&t32; + t8 = (struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const *const *)&t32; t10 = (void const **)&t33.context; t1 = (*t8); - t11 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *)&t1->context; + t11 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *)&t1->context; t12 = (void const *)t11; (*t10) = t12; - t13 = (nav__4272_59 (**)(void const *, nav__4272_39))&t33.readFn; - (*t13) = &io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4226; + t13 = (nav__4270_59 (**)(void const *, nav__4270_39))&t33.readFn; + (*t13) = &io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4224; t14 = t33; t34 = t14; - t16 = (struct io_Reader__2450 const *)&t34; + t16 = (struct io_Reader__2439 const *)&t34; t14 = (*t16); - t35 = io_Reader_readAll__4233(t14, t30); - memcpy(&t36, &t35, sizeof(nav__4272_59)); + t35 = io_Reader_readAll__4231(t14, t30); + memcpy(&t36, &t35, sizeof(nav__4270_59)); t37 = t36.payload; t25 = t37; t38 = t27; t39 = t25 != t38; if (t39) { - bincode_invalidProtocol__anon_2596__4274(); + bincode_invalidProtocol__anon_2585__4272(); zig_unreachable(); } goto zig_block_1; @@ -2099,53 +2077,53 @@ static nav__4272_40 bincode_deserializePointerAlloc__anon_2560__4272(struct io_G return t26; } -static nav__4271_40 bincode_deserializeAlloc__anon_2547__4271(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { - nav__4271_57 t0; - nav__4271_40 t2; - nav__4271_55 t3; - nav__4271_39 t4; +static nav__4269_40 bincode_deserializeAlloc__anon_2536__4269(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { + nav__4269_57 t0; + nav__4269_40 t2; + nav__4269_55 t3; + nav__4269_39 t4; uint16_t t1; - t0 = bincode_deserializePointerAlloc__anon_2560__4272(a0, a1); + t0 = bincode_deserializePointerAlloc__anon_2549__4270(a0, a1); if (t0.error) { t1 = t0.error; - t2.payload = (nav__4271_39){(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; + t2.payload = (nav__4269_39){(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; t2.error = t1; return t2; } t3 = t0.payload; - memcpy(&t4, &t3, sizeof(nav__4271_39)); + memcpy(&t4, &t3, sizeof(nav__4269_39)); t2.payload = t4; t2.error = UINT16_C(0); return t2; } -static nav__4270_39 bincode_deserializeStructAlloc__anon_2522__4270(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { +static nav__4268_39 bincode_deserializeStructAlloc__anon_2511__4268(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { uint32_t *t1; - nav__4270_39 t4; - nav__4270_44 *t6; - nav__4270_60 t7; - nav__4270_44 t8; - struct shared_Command__struct_1962__1962 t9; - struct shared_Command__struct_1962__1962 t0; - nav__4270_57 t2; + nav__4268_39 t4; + nav__4268_44 *t6; + nav__4268_60 t7; + nav__4268_44 t8; + struct shared_Command__struct_2007__2007 t9; + struct shared_Command__struct_2007__2007 t0; + nav__4268_57 t2; uint32_t t5; uint16_t t3; - memset(&t0, 0xaa, sizeof(struct shared_Command__struct_1962__1962)); + memset(&t0, 0xaa, sizeof(struct shared_Command__struct_2007__2007)); t1 = (uint32_t *)&t0.pid; - t2 = bincode_deserializeAlloc__anon_2425__4229(a0, a1); + t2 = bincode_deserializeAlloc__anon_2414__4227(a0, a1); if (t2.error) { t3 = t2.error; - t4.payload = (struct shared_Command__struct_1962__1962){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}; + t4.payload = (struct shared_Command__struct_2007__2007){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}; t4.error = t3; return t4; } t5 = t2.payload; (*t1) = t5; - t6 = (nav__4270_44 *)&t0.uri; - t7 = bincode_deserializeAlloc__anon_2547__4271(a0, a1); + t6 = (nav__4268_44 *)&t0.uri; + t7 = bincode_deserializeAlloc__anon_2536__4269(a0, a1); if (t7.error) { t3 = t7.error; - t4.payload = (struct shared_Command__struct_1962__1962){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}; + t4.payload = (struct shared_Command__struct_2007__2007){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}; t4.error = t3; return t4; } @@ -2157,14 +2135,14 @@ static nav__4270_39 bincode_deserializeStructAlloc__anon_2522__4270(struct io_Ge return t4; } -static nav__4269_39 bincode_deserializeAlloc__anon_2493__4269(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { - nav__4269_39 t0; - struct shared_Command__struct_1962__1962 t2; +static nav__4267_39 bincode_deserializeAlloc__anon_2482__4267(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { + nav__4267_39 t0; + struct shared_Command__struct_2007__2007 t2; uint16_t t1; - t0 = bincode_deserializeStructAlloc__anon_2522__4270(a0, a1); + t0 = bincode_deserializeStructAlloc__anon_2511__4268(a0, a1); if (t0.error) { t1 = t0.error; - t0.payload = (struct shared_Command__struct_1962__1962){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}; + t0.payload = (struct shared_Command__struct_2007__2007){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}; t0.error = t1; return t0; } @@ -2174,36 +2152,36 @@ static nav__4269_39 bincode_deserializeAlloc__anon_2493__4269(struct io_GenericR return t0; } -static uint16_t bincode_deserializeAlloc__anon_2611__4275(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { +static uint16_t bincode_deserializeAlloc__anon_2600__4273(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { (void)a0; (void)a1; return 0; } -static nav__4277_39 bincode_deserializeStructAlloc__anon_2673__4277(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { - nav__4277_44 *t1; - nav__4277_57 t2; - nav__4277_39 t4; - nav__4277_44 t5; - struct shared_Command__struct_1963__1963 t6; - struct shared_Command__struct_1963__1963 t0; +static nav__4275_39 bincode_deserializeStructAlloc__anon_2662__4275(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { + nav__4275_44 *t1; + nav__4275_57 t2; + nav__4275_39 t4; + nav__4275_44 t5; + struct shared_Command__struct_2008__2008 t6; + struct shared_Command__struct_2008__2008 t0; uint16_t t3; - memset(&t0, 0xaa, sizeof(struct shared_Command__struct_1963__1963)); - t1 = (nav__4277_44 *)&t0.name; - t2 = bincode_deserializeAlloc__anon_2547__4271(a0, a1); + memset(&t0, 0xaa, sizeof(struct shared_Command__struct_2008__2008)); + t1 = (nav__4275_44 *)&t0.name; + t2 = bincode_deserializeAlloc__anon_2536__4269(a0, a1); if (t2.error) { t3 = t2.error; - t4.payload = (struct shared_Command__struct_1963__1963){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}}; + t4.payload = (struct shared_Command__struct_2008__2008){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}}; t4.error = t3; return t4; } t5 = t2.payload; (*t1) = t5; - t1 = (nav__4277_44 *)&t0.version; - t2 = bincode_deserializeAlloc__anon_2547__4271(a0, a1); + t1 = (nav__4275_44 *)&t0.version; + t2 = bincode_deserializeAlloc__anon_2536__4269(a0, a1); if (t2.error) { t3 = t2.error; - t4.payload = (struct shared_Command__struct_1963__1963){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}}; + t4.payload = (struct shared_Command__struct_2008__2008){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}}; t4.error = t3; return t4; } @@ -2215,14 +2193,14 @@ static nav__4277_39 bincode_deserializeStructAlloc__anon_2673__4277(struct io_Ge return t4; } -static nav__4276_39 bincode_deserializeAlloc__anon_2654__4276(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { - nav__4276_39 t0; - struct shared_Command__struct_1963__1963 t2; +static nav__4274_39 bincode_deserializeAlloc__anon_2643__4274(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { + nav__4274_39 t0; + struct shared_Command__struct_2008__2008 t2; uint16_t t1; - t0 = bincode_deserializeStructAlloc__anon_2673__4277(a0, a1); + t0 = bincode_deserializeStructAlloc__anon_2662__4275(a0, a1); if (t0.error) { t1 = t0.error; - t0.payload = (struct shared_Command__struct_1963__1963){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}}; + t0.payload = (struct shared_Command__struct_2008__2008){{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}}; t0.error = t1; return t0; } @@ -2232,22 +2210,22 @@ static nav__4276_39 bincode_deserializeAlloc__anon_2654__4276(struct io_GenericR return t0; } -static zig_cold nav__4228_39 bincode_deserializeUnionAlloc__anon_2420__4228(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { - nav__4228_39 t2; - nav__4228_63 t6; - struct shared_Command__struct_1962__1962 t7; - struct shared_Command__1959 t8; - nav__4228_65 t9; - struct shared_Command__struct_1963__1963 t10; - nav__4228_61 t0; +static zig_cold nav__4226_39 bincode_deserializeUnionAlloc__anon_2409__4226(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { + nav__4226_39 t2; + nav__4226_63 t6; + struct shared_Command__struct_2007__2007 t7; + struct shared_Command__2004 t8; + nav__4226_65 t9; + struct shared_Command__struct_2008__2008 t10; + nav__4226_61 t0; uint32_t t3; uint16_t t1; bool t4; uint8_t t5; - t0 = bincode_deserializeAlloc__anon_2425__4229(a0, a1); + t0 = bincode_deserializeAlloc__anon_2414__4227(a0, a1); if (t0.error) { t1 = t0.error; - t2.payload = (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; + t2.payload = (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; t2.error = t1; return t2; } @@ -2256,17 +2234,17 @@ static zig_cold nav__4228_39 bincode_deserializeUnionAlloc__anon_2420__4228(stru if (t4) { goto zig_block_0; } - debug_no_panic_invalidEnumValue__4115(); + debug_no_panic_invalidEnumValue__4113(); zig_unreachable(); zig_block_0:; t5 = (uint8_t)t3; t4 = t5 == UINT8_C(0); if (t4) { - t6 = bincode_deserializeAlloc__anon_2493__4269(a0, a1); + t6 = bincode_deserializeAlloc__anon_2482__4267(a0, a1); if (t6.error) { t1 = t6.error; - t2.payload = (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; + t2.payload = (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; t2.error = t1; return t2; } @@ -2282,42 +2260,42 @@ static zig_cold nav__4228_39 bincode_deserializeUnionAlloc__anon_2420__4228(stru zig_block_1:; t4 = t5 == UINT8_C(1); if (t4) { - (void)bincode_deserializeAlloc__anon_2611__4275(a0, a1); - return (nav__4228_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(1)},0}; + (void)bincode_deserializeAlloc__anon_2600__4273(a0, a1); + return (nav__4226_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(1)},0}; } goto zig_block_2; zig_block_2:; t4 = t5 == UINT8_C(2); if (t4) { - (void)bincode_deserializeAlloc__anon_2611__4275(a0, a1); - return (nav__4228_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(2)},0}; + (void)bincode_deserializeAlloc__anon_2600__4273(a0, a1); + return (nav__4226_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(2)},0}; } goto zig_block_3; zig_block_3:; t4 = t5 == UINT8_C(3); if (t4) { - (void)bincode_deserializeAlloc__anon_2611__4275(a0, a1); - return (nav__4228_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(3)},0}; + (void)bincode_deserializeAlloc__anon_2600__4273(a0, a1); + return (nav__4226_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(3)},0}; } goto zig_block_4; zig_block_4:; t4 = t5 == UINT8_C(4); if (t4) { - (void)bincode_deserializeAlloc__anon_2611__4275(a0, a1); - return (nav__4228_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(4)},0}; + (void)bincode_deserializeAlloc__anon_2600__4273(a0, a1); + return (nav__4226_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(4)},0}; } goto zig_block_5; zig_block_5:; t4 = t5 == UINT8_C(5); if (t4) { - t9 = bincode_deserializeAlloc__anon_2654__4276(a0, a1); + t9 = bincode_deserializeAlloc__anon_2643__4274(a0, a1); if (t9.error) { t1 = t9.error; - t2.payload = (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; + t2.payload = (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; t2.error = t1; return t2; } @@ -2333,24 +2311,24 @@ static zig_cold nav__4228_39 bincode_deserializeUnionAlloc__anon_2420__4228(stru zig_block_6:; t4 = t5 == UINT8_C(6); if (t4) { - (void)bincode_deserializeAlloc__anon_2611__4275(a0, a1); - return (nav__4228_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(6)},0}; + (void)bincode_deserializeAlloc__anon_2600__4273(a0, a1); + return (nav__4226_39){{{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(6)},0}; } goto zig_block_7; zig_block_7:; - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } -static nav__4227_39 bincode_deserializeAlloc__anon_2334__4227(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 const a0, struct mem_Allocator__206 const a1) { - nav__4227_39 t0; - struct shared_Command__1959 t2; +static nav__4225_39 bincode_deserializeAlloc__anon_2323__4225(struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 const a0, struct mem_Allocator__206 const a1) { + nav__4225_39 t0; + struct shared_Command__2004 t2; uint16_t t1; - t0 = bincode_deserializeUnionAlloc__anon_2420__4228(a0, a1); + t0 = bincode_deserializeUnionAlloc__anon_2409__4226(a0, a1); if (t0.error) { t1 = t0.error; - t0.payload = (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; + t0.payload = (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; t0.error = t1; return t0; } @@ -2373,10 +2351,10 @@ static nav__996_39 fifo_UnixPipe_Reader_recvCmd__996(struct fifo_UnixPipe_Reader struct mem_Allocator__206 t14; uintptr_t t15; nav__996_73 t16; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 t19; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 t18; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t20; - struct shared_Command__1959 t21; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 t19; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 t18; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t20; + struct shared_Command__2004 t21; struct fs_File__546 t5; uint32_t t12; uint16_t t8; @@ -2394,7 +2372,7 @@ static nav__996_39 fifo_UnixPipe_Reader_recvCmd__996(struct fifo_UnixPipe_Reader t7 = fs_File_readAll__1134(t5, t6); if (t7.error) { t8 = t7.error; - t9.payload = (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; + t9.payload = (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; t9.error = t8; return t9; } @@ -2406,10 +2384,10 @@ static nav__996_39 fifo_UnixPipe_Reader_recvCmd__996(struct fifo_UnixPipe_Reader t13 = (struct mem_Allocator__206 *)&t3->allocator; t14 = (*t13); t15 = (uintptr_t)t12; - t16 = mem_Allocator_alloc__anon_2284__4161(t14, t15); + t16 = mem_Allocator_alloc__anon_2273__4159(t14, t15); if (t16.error) { t8 = t16.error; - t9.payload = (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; + t9.payload = (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; t9.error = t8; return t9; } @@ -2432,19 +2410,19 @@ static nav__996_39 fifo_UnixPipe_Reader_recvCmd__996(struct fifo_UnixPipe_Reader goto zig_loop_36; zig_block_0:; - t19 = io_fixed_buffer_stream_fixedBufferStream__anon_2306__4193(t6); + t19 = io_fixed_buffer_stream_fixedBufferStream__anon_2295__4191(t6); t18 = t19; - t20 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_reader__4182(&t18); + t20 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_reader__4180(&t18); t13 = (struct mem_Allocator__206 *)&a0->allocator; t14 = (*t13); - t9 = bincode_deserializeAlloc__anon_2334__4227(t20, t14); + t9 = bincode_deserializeAlloc__anon_2323__4225(t20, t14); if (t9.error) { t8 = t9.error; t3 = (*t1); t13 = (struct mem_Allocator__206 *)&t3->allocator; t14 = (*t13); - mem_Allocator_free__anon_2707__4278(t14, t6); - t9.payload = (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; + mem_Allocator_free__anon_2696__4276(t14, t6); + t9.payload = (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(0x2)}; t9.error = t8; return t9; } @@ -2452,7 +2430,7 @@ static nav__996_39 fifo_UnixPipe_Reader_recvCmd__996(struct fifo_UnixPipe_Reader t3 = (*t1); t13 = (struct mem_Allocator__206 *)&t3->allocator; t14 = (*t13); - mem_Allocator_free__anon_2707__4278(t14, t6); + mem_Allocator_free__anon_2696__4276(t14, t6); t9.payload = t21; t9.error = UINT16_C(0); return t9; @@ -2467,8 +2445,8 @@ static nav__997_39 fifo_UnixPipe_Reader_waitForResponse__997(struct fifo_UnixPip struct fifo_UnixPipe_Reader__540 *const *t1; uint64_t t3; uint64_t t5; - struct shared_Command__1959 t11; - struct shared_Command__1959 t14; + struct shared_Command__2004 t11; + struct shared_Command__2004 t14; struct fifo_UnixPipe_Reader__540 *t12; struct fifo_UnixPipe_Reader__540 *t0; nav__997_39 t13; @@ -2476,7 +2454,7 @@ static nav__997_39 fifo_UnixPipe_Reader_waitForResponse__997(struct fifo_UnixPip uint8_t t8; t0 = a0; t1 = (struct fifo_UnixPipe_Reader__540 *const *)&t0; - t2 = time_nanoTimestamp__4133(); + t2 = time_nanoTimestamp__4131(); t4 = a1.is_null != true; if (t4) { t5 = a1.payload; @@ -2488,14 +2466,14 @@ static nav__997_39 fifo_UnixPipe_Reader_waitForResponse__997(struct fifo_UnixPip zig_block_0:; zig_loop_13: - t6 = time_nanoTimestamp__4133(); + t6 = time_nanoTimestamp__4131(); t7.f1 = zig_subo_i128(&t7.f0, t6, t2, UINT8_C(128)); t8 = t7.f1; t4 = t8 == UINT8_C(0); if (t4) { goto zig_block_2; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_2:; @@ -2507,7 +2485,7 @@ static nav__997_39 fifo_UnixPipe_Reader_waitForResponse__997(struct fifo_UnixPip if (t4) { goto zig_block_3; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_3:; @@ -2527,7 +2505,7 @@ static nav__997_39 fifo_UnixPipe_Reader_waitForResponse__997(struct fifo_UnixPip t11 = t14; goto zig_block_5; } - Thread_sleep__4296(UINT64_C(10000000)); + Thread_sleep__4294(UINT64_C(10000000)); goto zig_block_1; zig_block_5:; @@ -2544,9 +2522,9 @@ static uint16_t fifo_UnixPipe_Reader_waitForAck__998(struct fifo_UnixPipe_Reader struct fifo_UnixPipe_Reader__540 *t2; struct fifo_UnixPipe_Reader__540 *t0; nav__998_55 t3; - struct shared_Command__1959 t5; - struct shared_Command__1959 t6; - struct shared_Command__1959 const *t7; + struct shared_Command__2004 t5; + struct shared_Command__2004 t6; + struct shared_Command__2004 const *t7; struct mem_Allocator__206 *t10; struct mem_Allocator__206 t11; uint16_t t4; @@ -2562,14 +2540,14 @@ static uint16_t fifo_UnixPipe_Reader_waitForAck__998(struct fifo_UnixPipe_Reader } t5 = t3.payload; t6 = t5; - t7 = (struct shared_Command__1959 const *)&t6; + t7 = (struct shared_Command__2004 const *)&t6; t8 = t5.tag; t9 = t8 == UINT8_C(3); if (t9) { t5 = (*t7); t10 = (struct mem_Allocator__206 *)&a0->allocator; t11 = (*t10); - shared_Command_deinit__3935(t5, t11); + shared_Command_deinit__3933(t5, t11); return 0; } t8 = t5.tag; @@ -2578,17 +2556,17 @@ static uint16_t fifo_UnixPipe_Reader_waitForAck__998(struct fifo_UnixPipe_Reader t5 = (*t7); t10 = (struct mem_Allocator__206 *)&a0->allocator; t11 = (*t10); - shared_Command_deinit__3935(t5, t11); + shared_Command_deinit__3933(t5, t11); return zig_error_UnexpectedError; } t5 = (*t7); t10 = (struct mem_Allocator__206 *)&a0->allocator; t11 = (*t10); - shared_Command_deinit__3935(t5, t11); + shared_Command_deinit__3933(t5, t11); return zig_error_UnexpectedResponse; } -static uint16_t instruments_perf_PerfInstrument_send_cmd__339(struct instruments_perf_PerfInstrument__200 *const a0, struct shared_Command__1959 const a1) { +static uint16_t instruments_perf_PerfInstrument_send_cmd__339(struct instruments_perf_PerfInstrument__200 *const a0, struct shared_Command__2004 const a1) { struct instruments_perf_PerfInstrument__200 *const *t1; struct instruments_perf_PerfInstrument__200 *t2; struct instruments_perf_PerfInstrument__200 *t0; @@ -2621,7 +2599,7 @@ static bool instruments_perf_PerfInstrument_is_instrumented__340(struct instrume t0 = a0; t1 = (struct instruments_perf_PerfInstrument__200 *const *)&t0; t2 = (*t1); - t3 = instruments_perf_PerfInstrument_send_cmd__339(t2, (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(4)}); + t3 = instruments_perf_PerfInstrument_send_cmd__339(t2, (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(4)}); t4 = t3 == UINT16_C(0); if (t4) { goto zig_block_0; @@ -2632,7 +2610,7 @@ static bool instruments_perf_PerfInstrument_is_instrumented__340(struct instrume return true; } -static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struct mem_Allocator__206 const a0, uintptr_t const a1, uintptr_t const a2) { +static nav__3738_39 mem_Allocator_allocBytesWithAlignment__anon_1902__3738(struct mem_Allocator__206 const a0, uintptr_t const a1, uintptr_t const a2) { struct mem_Allocator__206 const *t1; uint64_t t2; uint8_t *t4; @@ -2648,9 +2626,9 @@ static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struc uint8_t *(*t11)(void *, uintptr_t, uint8_t, uintptr_t); void *t12; uint8_t *const *t16; - nav__3740_52 t17; + nav__3738_52 t17; uintptr_t t18; - nav__3740_39 t19; + nav__3738_39 t19; bool t3; uint8_t t6; t0 = a0; @@ -2658,7 +2636,7 @@ static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struc t2 = a1; t3 = t2 == UINT64_C(0); if (t3) { - return (nav__3740_39){(uint8_t *)(uintptr_t)0xfffffffffffffff8ul,0}; + return (nav__3738_39){(uint8_t *)(uintptr_t)0xfffffffffffffff8ul,0}; } goto zig_block_0; @@ -2679,7 +2657,7 @@ static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struc t4 = t14; goto zig_block_1; } - return (nav__3740_39){((uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),zig_error_OutOfMemory}; + return (nav__3738_39){((uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),zig_error_OutOfMemory}; zig_block_1:; t15 = t4; @@ -2690,7 +2668,7 @@ static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struc if (t3) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, a1); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, a1); zig_unreachable(); zig_block_2:; @@ -2698,7 +2676,7 @@ static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struc if (t3) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, a1); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, a1); zig_unreachable(); zig_block_3:; @@ -2711,7 +2689,7 @@ static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struc if (t3) { goto zig_block_4; } - debug_no_panic_incorrectAlignment__4103(); + debug_no_panic_incorrectAlignment__4101(); zig_unreachable(); zig_block_4:; @@ -2722,33 +2700,33 @@ static nav__3740_39 mem_Allocator_allocBytesWithAlignment__anon_1857__3740(struc } static void debug_lockStdErr__161(void) { - Progress_lockStdErr__4357(); + Progress_lockStdErr__4355(); return; } -static struct fs_File__546 io_getStdErr__3758(void) { +static struct fs_File__546 io_getStdErr__3756(void) { int32_t *t1; int32_t t2; struct fs_File__546 t0; t1 = (int32_t *)&t0.handle; - t2 = io_getStdErrHandle__3757(); + t2 = io_getStdErrHandle__3755(); (*t1) = t2; return t0; } -static struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 fs_File_writer__1162(struct fs_File__546 const a0) { +static struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 fs_File_writer__1162(struct fs_File__546 const a0) { struct fs_File__546 *t1; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t0; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t0; t1 = (struct fs_File__546 *)&t0.context; (*t1) = a0; return t0; } -static nav__3820_38 io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3820(void const *const a0, nav__3820_41 const a1) { +static nav__3818_38 io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3818(void const *const a0, nav__3818_41 const a1) { uintptr_t t0; struct fs_File__546 const *t2; - nav__3820_38 t4; - nav__3820_38 t5; + nav__3818_38 t4; + nav__3818_38 t5; struct fs_File__546 t3; bool t1; t0 = (uintptr_t)a0; @@ -2757,33 +2735,33 @@ static nav__3820_38 io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemRes if (t1) { goto zig_block_0; } - debug_no_panic_incorrectAlignment__4103(); + debug_no_panic_incorrectAlignment__4101(); zig_unreachable(); zig_block_0:; t2 = (struct fs_File__546 const *)a0; t3 = (*t2); t4 = fs_File_write__1143(t3, a1); - memcpy(&t5, &t4, sizeof(nav__3820_38)); + memcpy(&t5, &t4, sizeof(nav__3818_38)); return t5; } -static uint16_t io_Writer_print__anon_1928__3837(struct io_Writer__1905 const a0, nav__3837_41 const a1) { +static uint16_t io_Writer_print__anon_1973__3835(struct io_Writer__1950 const a0, nav__3835_41 const a1) { uint16_t t0; uint16_t t1; - t0 = fmt_format__anon_2798__4556(a0, a1); + t0 = fmt_format__anon_2786__4554(a0, a1); memcpy(&t1, &t0, sizeof(uint16_t)); return t1; } static void debug_unlockStdErr__162(void) { - Progress_unlockStdErr__4358(); + Progress_unlockStdErr__4356(); return; } -static bool fs_path_isAbsolute__3872(nav__3872_39 const a0) { +static bool fs_path_isAbsolute__3870(nav__3870_39 const a0) { bool t0; - t0 = fs_path_isAbsolutePosix__3878(a0); + t0 = fs_path_isAbsolutePosix__3876(a0); return t0; } @@ -2791,7 +2769,7 @@ static void debug_assert__179(bool const a0) { bool t0; t0 = !a0; if (t0) { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } goto zig_block_0; @@ -2800,24 +2778,24 @@ static void debug_assert__179(bool const a0) { return; } -static struct fs_Dir__1777 fs_cwd__1045(void) { - struct fs_Dir__1777 t0; - t0 = (struct fs_Dir__1777){-INT32_C(100)}; +static struct fs_Dir__1822 fs_cwd__1045(void) { + struct fs_Dir__1822 t0; + t0 = (struct fs_Dir__1822){-INT32_C(100)}; return t0; } -static uint16_t fs_Dir_access__3696(struct fs_Dir__1777 const a0, nav__3696_40 const a1, struct fs_File_OpenFlags__1775 const a2) { - struct fs_Dir__1777 const *t1; +static uint16_t fs_Dir_access__3694(struct fs_Dir__1822 const a0, nav__3694_40 const a1, struct fs_File_OpenFlags__1820 const a2) { + struct fs_Dir__1822 const *t1; uint8_t const (*t6)[4096]; uint8_t const *t8; - struct fs_Dir__1777 t7; - struct fs_Dir__1777 t0; - nav__3696_49 t2; + struct fs_Dir__1822 t7; + struct fs_Dir__1822 t0; + nav__3694_49 t2; uint16_t t3; uint8_t t4[4096]; uint8_t t5[4096]; t0 = a0; - t1 = (struct fs_Dir__1777 const *)&t0; + t1 = (struct fs_Dir__1822 const *)&t0; t2 = posix_toPosixPath__1628(a1); if (t2.error) { t3 = t2.error; @@ -2828,24 +2806,24 @@ static uint16_t fs_Dir_access__3696(struct fs_Dir__1777 const a0, nav__3696_40 c t6 = (uint8_t const (*)[4096])&t5; t7 = (*t1); t8 = (uint8_t const *)t6; - t3 = fs_Dir_accessZ__3697(t7, t8, a2); + t3 = fs_Dir_accessZ__3695(t7, t8, a2); return t3; } -static nav__3632_39 fs_Dir_openFile__3632(struct fs_Dir__1777 const a0, nav__3632_42 const a1, struct fs_File_OpenFlags__1775 const a2) { - struct fs_Dir__1777 const *t1; +static nav__3630_39 fs_Dir_openFile__3630(struct fs_Dir__1822 const a0, nav__3630_42 const a1, struct fs_File_OpenFlags__1820 const a2) { + struct fs_Dir__1822 const *t1; uint8_t const (*t8)[4096]; uint8_t const *t10; - nav__3632_39 t5; - struct fs_Dir__1777 t9; - struct fs_Dir__1777 t0; - nav__3632_53 t3; + nav__3630_39 t5; + struct fs_Dir__1822 t9; + struct fs_Dir__1822 t0; + nav__3630_53 t3; uint16_t t4; uint8_t t6[4096]; uint8_t t7[4096]; - struct fs_File_OpenFlags__1775 t2; + struct fs_File_OpenFlags__1820 t2; t0 = a0; - t1 = (struct fs_Dir__1777 const *)&t0; + t1 = (struct fs_Dir__1822 const *)&t0; t2 = a2; t3 = posix_toPosixPath__1628(a1); if (t3.error) { @@ -2859,57 +2837,57 @@ static nav__3632_39 fs_Dir_openFile__3632(struct fs_Dir__1777 const a0, nav__363 t8 = (uint8_t const (*)[4096])&t7; t9 = (*t1); t10 = (uint8_t const *)t8; - t5 = fs_Dir_openFileZ__3633(t9, t10, a2); + t5 = fs_Dir_openFileZ__3631(t9, t10, a2); return t5; } -static struct array_list_ArrayListAligned_28u8_2cnull_29__1990 array_list_ArrayListAligned_28u8_2cnull_29_init__3985(struct mem_Allocator__206 const a0) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 t0; - t0.items = (nav__3985_42){(uint8_t *)((void const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),(uintptr_t)0ul}; +static struct array_list_ArrayListAligned_28u8_2cnull_29__2035 array_list_ArrayListAligned_28u8_2cnull_29_init__3983(struct mem_Allocator__206 const a0) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 t0; + t0.items = (nav__3983_42){(uint8_t *)((void const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),(uintptr_t)0ul}; t0.capacity = (uintptr_t)0ul; t0.allocator = a0; return t0; } -static struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 array_list_ArrayListAligned_28u8_2cnull_29_writer__4010(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const a0) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 **t1; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 **)&t0.context; +static struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 array_list_ArrayListAligned_28u8_2cnull_29_writer__4008(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const a0) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 **t1; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t0; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 **)&t0.context; (*t1) = a0; return t0; } -static uint16_t bincode_serialize__anon_2025__4091(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, struct shared_Command__1959 const a1) { +static uint16_t bincode_serialize__anon_2070__4089(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, struct shared_Command__2004 const a1) { uint16_t t0; - t0 = bincode_serializeUnion__anon_2928__4569(a0, a1); + t0 = bincode_serializeUnion__anon_2872__4567(a0, a1); if (t0) { return t0; } return 0; } -static void array_list_ArrayListAligned_28u8_2cnull_29_deinit__3987(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 const a0) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 const *t1; +static void array_list_ArrayListAligned_28u8_2cnull_29_deinit__3985(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 const a0) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 const *t1; struct mem_Allocator__206 const *t2; struct mem_Allocator__206 t3; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 t4; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 t0; - nav__3987_41 t5; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 t4; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 t0; + nav__3985_41 t5; t0 = a0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 const *)&t0; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 const *)&t0; t2 = (struct mem_Allocator__206 const *)&t1->allocator; t3 = (*t2); t4 = (*t1); - t5 = array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4033(t4); - mem_Allocator_free__anon_2707__4278(t3, t5); + t5 = array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4031(t4); + mem_Allocator_free__anon_2696__4276(t3, t5); return; } -static zig_cold zig_noreturn void debug_no_panic_castTruncatedData__4105(void) { +static zig_cold zig_noreturn void debug_no_panic_castTruncatedData__4103(void) { zig_trap(); } -static uint8_t const (*mem_asBytes__anon_2143__4120(uint32_t const *const a0))[4] { +static uint8_t const (*mem_asBytes__anon_2188__4118(uint32_t const *const a0))[4] { uint8_t const (*t0)[4]; t0 = (uint8_t const (*)[4])a0; return t0; @@ -2959,7 +2937,7 @@ static uint16_t fs_File_writeAll__1144(struct fs_File__546 const a0, nav__1144_4 if (t9) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097(t5, t13); + debug_no_panic_startGreaterThanEnd__4095(t5, t13); zig_unreachable(); zig_block_2:; @@ -2969,7 +2947,7 @@ static uint16_t fs_File_writeAll__1144(struct fs_File__546 const a0, nav__1144_4 if (t9) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096(t13, t15); + debug_no_panic_outOfBounds__4094(t13, t15); zig_unreachable(); zig_block_3:; @@ -2977,7 +2955,7 @@ static uint16_t fs_File_writeAll__1144(struct fs_File__546 const a0, nav__1144_4 if (t9) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096(t5, t13); + debug_no_panic_outOfBounds__4094(t5, t13); zig_unreachable(); zig_block_4:; @@ -2995,7 +2973,7 @@ static uint16_t fs_File_writeAll__1144(struct fs_File__546 const a0, nav__1144_4 if (t9) { goto zig_block_5; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_5:; @@ -3012,13 +2990,13 @@ static uint16_t fs_File_writeAll__1144(struct fs_File__546 const a0, nav__1144_4 return 0; } -static zig_i128 time_nanoTimestamp__4133(void) { +static zig_i128 time_nanoTimestamp__4131(void) { zig_i128 t6; zig_i128 t9; - nav__4133_43 t7; - nav__4133_41 t0; - struct os_linux_timespec__struct_2960__2960 t2; - struct os_linux_timespec__struct_2960__2960 t3; + nav__4131_43 t7; + nav__4131_41 t0; + struct os_linux_timespec__struct_2902__2902 t2; + struct os_linux_timespec__struct_2902__2902 t3; intptr_t t5; uint16_t t4; bool t1; @@ -3037,7 +3015,7 @@ static zig_i128 time_nanoTimestamp__4133(void) { return zig_make_i128(INT64_C(0), UINT64_C(0)); } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -3051,7 +3029,7 @@ static zig_i128 time_nanoTimestamp__4133(void) { if (t1) { goto zig_block_1; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_1:; @@ -3064,7 +3042,7 @@ static zig_i128 time_nanoTimestamp__4133(void) { if (t1) { goto zig_block_2; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_2:; @@ -3072,7 +3050,7 @@ static zig_i128 time_nanoTimestamp__4133(void) { return t9; } -static zig_cold zig_noreturn void debug_no_panic_integerOverflow__4107(void) { +static zig_cold zig_noreturn void debug_no_panic_integerOverflow__4105(void) { zig_trap(); } @@ -3118,7 +3096,7 @@ static nav__1134_38 fs_File_readAll__1134(struct fs_File__546 const a0, nav__113 if (t9) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097(t6, t5); + debug_no_panic_startGreaterThanEnd__4095(t6, t5); zig_unreachable(); zig_block_2:; @@ -3128,7 +3106,7 @@ static nav__1134_38 fs_File_readAll__1134(struct fs_File__546 const a0, nav__113 if (t9) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096(t5, t14); + debug_no_panic_outOfBounds__4094(t5, t14); zig_unreachable(); zig_block_3:; @@ -3136,7 +3114,7 @@ static nav__1134_38 fs_File_readAll__1134(struct fs_File__546 const a0, nav__113 if (t9) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096(t6, t5); + debug_no_panic_outOfBounds__4094(t6, t5); zig_unreachable(); zig_block_4:; @@ -3165,7 +3143,7 @@ static nav__1134_38 fs_File_readAll__1134(struct fs_File__546 const a0, nav__113 if (t9) { goto zig_block_6; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_6:; @@ -3185,19 +3163,19 @@ static nav__1134_38 fs_File_readAll__1134(struct fs_File__546 const a0, nav__113 return t15; } -static nav__4161_40 mem_Allocator_alloc__anon_2284__4161(struct mem_Allocator__206 const a0, uintptr_t const a1) { +static nav__4159_40 mem_Allocator_alloc__anon_2273__4159(struct mem_Allocator__206 const a0, uintptr_t const a1) { struct mem_Allocator__206 const *t1; struct mem_Allocator__206 t2; struct mem_Allocator__206 t0; struct mem_Allocator__206 t5; uintptr_t t3; - nav__4161_40 t4; - nav__4161_40 t8; - nav__4161_51 t6; + nav__4159_40 t4; + nav__4159_40 t8; + nav__4159_51 t6; uint8_t *t9; uint8_t *t10; uint8_t *const *t11; - nav__4161_39 t13; + nav__4159_39 t13; uint16_t t7; bool t12; t0 = a0; @@ -3207,10 +3185,10 @@ static nav__4161_40 mem_Allocator_alloc__anon_2284__4161(struct mem_Allocator__2 t5 = t2; t1 = (struct mem_Allocator__206 const *)&t5; t2 = (*t1); - t6 = mem_Allocator_allocWithSizeAndAlignment__anon_2991__4570(t2, a1, t3); + t6 = mem_Allocator_allocWithSizeAndAlignment__anon_2933__4568(t2, a1, t3); if (t6.error) { t7 = t6.error; - t8.payload = (nav__4161_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; + t8.payload = (nav__4159_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; t8.error = t7; t4 = t8; goto zig_block_0; @@ -3224,7 +3202,7 @@ static nav__4161_40 mem_Allocator_alloc__anon_2284__4161(struct mem_Allocator__2 if (t12) { goto zig_block_1; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, a1); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, a1); zig_unreachable(); zig_block_1:; @@ -3232,7 +3210,7 @@ static nav__4161_40 mem_Allocator_alloc__anon_2284__4161(struct mem_Allocator__2 if (t12) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, a1); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, a1); zig_unreachable(); zig_block_2:; @@ -3247,31 +3225,31 @@ static nav__4161_40 mem_Allocator_alloc__anon_2284__4161(struct mem_Allocator__2 return t4; } -static struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 io_fixed_buffer_stream_fixedBufferStream__anon_2306__4193(nav__4193_40 const a0) { - nav__4193_40 *t1; +static struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 io_fixed_buffer_stream_fixedBufferStream__anon_2295__4191(nav__4191_40 const a0) { + nav__4191_40 *t1; uintptr_t *t2; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 t0; - t1 = (nav__4193_40 *)&t0.buffer; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 t0; + t1 = (nav__4191_40 *)&t0.buffer; (*t1) = a0; t2 = (uintptr_t *)&t0.pos; (*t2) = (uintptr_t)0ul; return t0; } -static struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_reader__4182(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const a0) { - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 **t1; - struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2326 t0; - t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 **)&t0.context; +static struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_reader__4180(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const a0) { + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 **t1; + struct io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29__2315 t0; + t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 **)&t0.context; (*t1) = a0; return t0; } -static nav__4226_38 io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4226(void const *const a0, nav__4226_41 const a1) { +static nav__4224_38 io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7b_7d_2c_28function_20_27read_27_29_29_typeEras__4224(void const *const a0, nav__4224_41 const a1) { uintptr_t t0; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *t2; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *t3; - nav__4226_38 t4; - nav__4226_38 t5; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *t2; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *t3; + nav__4224_38 t4; + nav__4224_38 t5; bool t1; t0 = (uintptr_t)a0; t0 = t0 & (uintptr_t)7ul; @@ -3279,33 +3257,33 @@ static nav__4226_38 io_GenericReader_28_2aio_fixed_buffer_stream_FixedBufferStre if (t1) { goto zig_block_0; } - debug_no_panic_incorrectAlignment__4103(); + debug_no_panic_incorrectAlignment__4101(); zig_unreachable(); zig_block_0:; - t2 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *)a0; + t2 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *)a0; t3 = (*t2); - t4 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read__4185(t3, a1); - memcpy(&t5, &t4, sizeof(nav__4226_38)); + t4 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read__4183(t3, a1); + memcpy(&t5, &t4, sizeof(nav__4224_38)); return t5; } -static nav__4268_39 io_Reader_readBytesNoEof__anon_2479__4268(struct io_Reader__2450 const a0) { - struct io_Reader__2450 const *t1; - struct io_Reader__2450 t3; - struct io_Reader__2450 t0; - nav__4268_46 t4; +static nav__4266_39 io_Reader_readBytesNoEof__anon_2468__4266(struct io_Reader__2439 const a0) { + struct io_Reader__2439 const *t1; + struct io_Reader__2439 t3; + struct io_Reader__2439 t0; + nav__4266_46 t4; uint16_t t5; - nav__4268_39 t6; + nav__4266_39 t6; uint8_t t7[4]; uint8_t t2[4]; t0 = a0; - t1 = (struct io_Reader__2450 const *)&t0; + t1 = (struct io_Reader__2439 const *)&t0; memset(&t2, 0xaa, sizeof(uint8_t[4])); t3 = (*t1); t4.ptr = &t2[(uintptr_t)0ul]; t4.len = (uintptr_t)4ul; - t5 = io_Reader_readNoEof__4235(t3, t4); + t5 = io_Reader_readNoEof__4233(t3, t4); if (t5) { memcpy(t6.payload, "\252\252\252\252", sizeof(uint8_t[4])); t6.error = t5; @@ -3317,26 +3295,26 @@ static nav__4268_39 io_Reader_readBytesNoEof__anon_2479__4268(struct io_Reader__ return t6; } -static zig_cold zig_noreturn void debug_no_panic_invalidEnumValue__4115(void) { +static zig_cold zig_noreturn void debug_no_panic_invalidEnumValue__4113(void) { zig_trap(); } -static nav__4273_39 io_Reader_readBytesNoEof__anon_2573__4273(struct io_Reader__2450 const a0) { - struct io_Reader__2450 const *t1; - struct io_Reader__2450 t3; - struct io_Reader__2450 t0; - nav__4273_46 t4; +static nav__4271_39 io_Reader_readBytesNoEof__anon_2562__4271(struct io_Reader__2439 const a0) { + struct io_Reader__2439 const *t1; + struct io_Reader__2439 t3; + struct io_Reader__2439 t0; + nav__4271_46 t4; uint16_t t5; - nav__4273_39 t6; + nav__4271_39 t6; uint8_t t7[8]; uint8_t t2[8]; t0 = a0; - t1 = (struct io_Reader__2450 const *)&t0; + t1 = (struct io_Reader__2439 const *)&t0; memset(&t2, 0xaa, sizeof(uint8_t[8])); t3 = (*t1); t4.ptr = &t2[(uintptr_t)0ul]; t4.len = (uintptr_t)8ul; - t5 = io_Reader_readNoEof__4235(t3, t4); + t5 = io_Reader_readNoEof__4233(t3, t4); if (t5) { memcpy(t6.payload, "\252\252\252\252\252\252\252\252", sizeof(uint8_t[8])); t6.error = t5; @@ -3348,26 +3326,26 @@ static nav__4273_39 io_Reader_readBytesNoEof__anon_2573__4273(struct io_Reader__ return t6; } -static nav__4233_38 io_Reader_readAll__4233(struct io_Reader__2450 const a0, nav__4233_41 const a1) { +static nav__4231_38 io_Reader_readAll__4231(struct io_Reader__2439 const a0, nav__4231_41 const a1) { uintptr_t t0; - nav__4233_38 t1; + nav__4231_38 t1; t0 = a1.len; - t1 = io_Reader_readAtLeast__4234(a0, a1, t0); + t1 = io_Reader_readAtLeast__4232(a0, a1, t0); return t1; } -static zig_cold zig_noreturn void bincode_invalidProtocol__anon_2596__4274(void) { - debug_no_panic_call__4093((nav__4274_40){(uint8_t const *)&__anon_3011,(uintptr_t)88ul}, (nav__4274_42){(uintptr_t)0xaaaaaaaaaaaaaaaaul,true}); +static zig_cold zig_noreturn void bincode_invalidProtocol__anon_2585__4272(void) { + debug_no_panic_call__4091((nav__4272_40){(uint8_t const *)&__anon_2953,(uintptr_t)88ul}, (nav__4272_42){(uintptr_t)0xaaaaaaaaaaaaaaaaul,true}); zig_unreachable(); } -static zig_cold zig_noreturn void debug_no_panic_reachedUnreachable__4100(void) { +static zig_cold zig_noreturn void debug_no_panic_reachedUnreachable__4098(void) { zig_trap(); } -static void mem_Allocator_free__anon_2707__4278(struct mem_Allocator__206 const a0, nav__4278_40 const a1) { +static void mem_Allocator_free__anon_2696__4276(struct mem_Allocator__206 const a0, nav__4276_40 const a1) { struct mem_Allocator__206 const *t1; - nav__4278_40 t2; + nav__4276_40 t2; uintptr_t t3; uint64_t t4; uint8_t *t6; @@ -3379,14 +3357,14 @@ static void mem_Allocator_free__anon_2707__4278(struct mem_Allocator__206 const struct mem_Allocator__206 t12; struct mem_Allocator_VTable__209 const *const *t13; struct mem_Allocator_VTable__209 const *t14; - void (*const *t15)(void *, nav__4278_40, uint8_t, uintptr_t); - void (*t16)(void *, nav__4278_40, uint8_t, uintptr_t); + void (*const *t15)(void *, nav__4276_40, uint8_t, uintptr_t); + void (*t16)(void *, nav__4276_40, uint8_t, uintptr_t); void *t17; bool t5; uint8_t t11; t0 = a0; t1 = (struct mem_Allocator__206 const *)&t0; - t2 = mem_sliceAsBytes__anon_3028__4571(a1); + t2 = mem_sliceAsBytes__anon_2970__4569(a1); t3 = t2.len; t4 = t3; t5 = t4 == UINT64_C(0); @@ -3406,7 +3384,7 @@ static void mem_Allocator_free__anon_2707__4278(struct mem_Allocator__206 const if (t5) { goto zig_block_1; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_1:; @@ -3414,7 +3392,7 @@ static void mem_Allocator_free__anon_2707__4278(struct mem_Allocator__206 const if (t5) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_2:; @@ -3428,7 +3406,7 @@ static void mem_Allocator_free__anon_2707__4278(struct mem_Allocator__206 const if (t5) { goto zig_block_3; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_3:; @@ -3436,7 +3414,7 @@ static void mem_Allocator_free__anon_2707__4278(struct mem_Allocator__206 const if (t5) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_4:; @@ -3448,32 +3426,32 @@ static void mem_Allocator_free__anon_2707__4278(struct mem_Allocator__206 const t1 = (struct mem_Allocator__206 const *)&t12; t13 = (struct mem_Allocator_VTable__209 const *const *)&t1->vtable; t14 = (*t13); - t15 = (void (*const *)(void *, nav__4278_40, uint8_t, uintptr_t))&t14->free; + t15 = (void (*const *)(void *, nav__4276_40, uint8_t, uintptr_t))&t14->free; t16 = (*t15); t17 = t10.ptr; t16(t17, t2, t11, t3); return; } -static void Thread_sleep__4296(uint64_t const a0) { +static void Thread_sleep__4294(uint64_t const a0) { uint64_t t0; uint64_t t1; intptr_t *t3; intptr_t t4; intptr_t t7; - nav__4296_42 t5; - struct os_linux_timespec__struct_2960__2960 const *t9; - struct os_linux_timespec__struct_2960__2960 *t10; + nav__4294_42 t5; + struct os_linux_timespec__struct_2902__2902 const *t9; + struct os_linux_timespec__struct_2902__2902 *t10; uintptr_t t11; - struct os_linux_timespec__struct_2960__2960 t13; - struct os_linux_timespec__struct_2960__2960 t2; - struct os_linux_timespec__struct_2960__2960 t8; + struct os_linux_timespec__struct_2902__2902 t13; + struct os_linux_timespec__struct_2902__2902 t2; + struct os_linux_timespec__struct_2902__2902 t8; uint16_t t12; bool t6; t0 = a0 / UINT64_C(1000000000); t1 = a0 % UINT64_C(1000000000); t3 = (intptr_t *)&t2.sec; - t5 = math_cast__anon_3065__4635(t0); + t5 = math_cast__anon_3009__4633(t0); t6 = t5.is_null != true; if (t6) { t7 = t5.payload; @@ -3486,7 +3464,7 @@ static void Thread_sleep__4296(uint64_t const a0) { zig_block_0:; (*t3) = t4; t3 = (intptr_t *)&t2.nsec; - t5 = math_cast__anon_3065__4635(t1); + t5 = math_cast__anon_3009__4633(t1); t6 = t5.is_null != true; if (t6) { t7 = t5.payload; @@ -3498,10 +3476,10 @@ static void Thread_sleep__4296(uint64_t const a0) { zig_block_1:; (*t3) = t4; - memset(&t8, 0xaa, sizeof(struct os_linux_timespec__struct_2960__2960)); + memset(&t8, 0xaa, sizeof(struct os_linux_timespec__struct_2902__2902)); zig_loop_35: - t9 = (struct os_linux_timespec__struct_2960__2960 const *)&t2; - t10 = (struct os_linux_timespec__struct_2960__2960 *)&t8; + t9 = (struct os_linux_timespec__struct_2902__2902 const *)&t2; + t10 = (struct os_linux_timespec__struct_2902__2902 *)&t8; t11 = os_linux_clock_nanosleep__2718(UINT32_C(1), ((uint32_t)false | (uint32_t)UINT32_C(0) << UINT8_C(1)), t9, t10); t12 = os_linux_errnoFromSyscall__2615(t11); switch (t12) { @@ -3516,7 +3494,7 @@ static void Thread_sleep__4296(uint64_t const a0) { case UINT16_C(14): case UINT16_C(22): case UINT16_C(95): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } default: { @@ -3528,13 +3506,13 @@ static void Thread_sleep__4296(uint64_t const a0) { goto zig_loop_35; } -static void shared_Command_deinit__3935(struct shared_Command__1959 const a0, struct mem_Allocator__206 const a1) { +static void shared_Command_deinit__3933(struct shared_Command__2004 const a0, struct mem_Allocator__206 const a1) { struct mem_Allocator__206 const *t1; - struct shared_Command__struct_1963__1963 t3; + struct shared_Command__struct_2008__2008 t3; struct mem_Allocator__206 t4; struct mem_Allocator__206 t0; - nav__3935_43 t5; - struct shared_Command__struct_1962__1962 t6; + nav__3933_43 t5; + struct shared_Command__struct_2007__2007 t6; uint8_t t2; t0 = a1; t1 = (struct mem_Allocator__206 const *)&t0; @@ -3544,17 +3522,17 @@ static void shared_Command_deinit__3935(struct shared_Command__1959 const a0, st t3 = a0.payload.SetIntegration; t4 = (*t1); t5 = t3.name; - mem_Allocator_free__anon_3245__4637(t4, t5); + mem_Allocator_free__anon_3189__4635(t4, t5); t4 = (*t1); t5 = t3.version; - mem_Allocator_free__anon_3245__4637(t4, t5); + mem_Allocator_free__anon_3189__4635(t4, t5); goto zig_block_0; } case UINT8_C(0): { t6 = a0.payload.CurrentBenchmark; t4 = (*t1); t5 = t6.uri; - mem_Allocator_free__anon_3245__4637(t4, t5); + mem_Allocator_free__anon_3189__4635(t4, t5); goto zig_block_0; } default: { @@ -3569,41 +3547,41 @@ static void shared_Command_deinit__3935(struct shared_Command__1959 const a0, st static uint8_t mem_Alignment_fromByteUnits__628(uintptr_t const a0) { bool t0; uint8_t t1; - t0 = math_isPowerOfTwo__anon_3247__4638(a0); + t0 = math_isPowerOfTwo__anon_3191__4636(a0); debug_assert__179(t0); t1 = zig_ctz_u64(a0, UINT8_C(64)); t0 = t1 <= UINT8_C(63); if (t0) { goto zig_block_0; } - debug_no_panic_invalidEnumValue__4115(); + debug_no_panic_invalidEnumValue__4113(); zig_unreachable(); zig_block_0:; return t1; } -static zig_cold zig_noreturn void debug_no_panic_startGreaterThanEnd__4097(uintptr_t const a0, uintptr_t const a1) { +static zig_cold zig_noreturn void debug_no_panic_startGreaterThanEnd__4095(uintptr_t const a0, uintptr_t const a1) { (void)a0; (void)a1; zig_trap(); } -static zig_cold zig_noreturn void debug_no_panic_outOfBounds__4096(uintptr_t const a0, uintptr_t const a1) { +static zig_cold zig_noreturn void debug_no_panic_outOfBounds__4094(uintptr_t const a0, uintptr_t const a1) { (void)a0; (void)a1; zig_trap(); } -static zig_cold zig_noreturn void debug_no_panic_incorrectAlignment__4103(void) { +static zig_cold zig_noreturn void debug_no_panic_incorrectAlignment__4101(void) { zig_trap(); } -static void Progress_lockStdErr__4357(void) { +static void Progress_lockStdErr__4355(void) { uint16_t t0; bool t1; - Thread_Mutex_Recursive_lock__4765(((struct Thread_Mutex_Recursive__3310 *)&Progress_stderr_mutex__4394)); - t0 = Progress_clearWrittenWithEscapeCodes__4368(); + Thread_Mutex_Recursive_lock__4763(((struct Thread_Mutex_Recursive__3253 *)&Progress_stderr_mutex__4392)); + t0 = Progress_clearWrittenWithEscapeCodes__4366(); t1 = t0 == UINT16_C(0); if (t1) { goto zig_block_0; @@ -3614,7 +3592,7 @@ static void Progress_lockStdErr__4357(void) { return; } -static int32_t io_getStdErrHandle__3757(void) { +static int32_t io_getStdErrHandle__3755(void) { return INT32_C(2); } @@ -3626,38 +3604,38 @@ static nav__1143_38 fs_File_write__1143(struct fs_File__546 const a0, nav__1143_ return t1; } -static uint16_t fmt_format__anon_2798__4556(struct io_Writer__1905 const a0, nav__4556_41 const a1) { - struct io_Writer__1905 const *t1; - struct io_Writer__1905 t2; - struct io_Writer__1905 t0; - nav__4556_40 t4; +static uint16_t fmt_format__anon_2786__4554(struct io_Writer__1950 const a0, nav__4554_41 const a1) { + struct io_Writer__1950 const *t1; + struct io_Writer__1950 t2; + struct io_Writer__1950 t0; + nav__4554_40 t4; uint16_t t3; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__4556_40){(uint8_t const *)&__anon_3465,(uintptr_t)36ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__4554_40){(uint8_t const *)&__anon_3408,(uintptr_t)36ul}); if (t3) { return t3; } t4 = a1.f0; - t3 = fmt_formatType__anon_3903__5144(t4, (struct fmt_FormatOptions__3815){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); + t3 = fmt_formatType__anon_3846__5142(t4, (struct fmt_FormatOptions__3758){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); if (t3) { return t3; } t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__4556_40){(uint8_t const *)&__anon_3909,(uintptr_t)1ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__4554_40){(uint8_t const *)&__anon_3852,(uintptr_t)1ul}); if (t3) { return t3; } return 0; } -static void Progress_unlockStdErr__4358(void) { - Thread_Mutex_Recursive_unlock__4766(((struct Thread_Mutex_Recursive__3310 *)&Progress_stderr_mutex__4394)); +static void Progress_unlockStdErr__4356(void) { + Thread_Mutex_Recursive_unlock__4764(((struct Thread_Mutex_Recursive__3253 *)&Progress_stderr_mutex__4392)); return; } -static bool fs_path_isAbsolutePosix__3878(nav__3878_39 const a0) { +static bool fs_path_isAbsolutePosix__3876(nav__3876_39 const a0) { uintptr_t t0; uint64_t t1; bool t2; @@ -3672,7 +3650,7 @@ static bool fs_path_isAbsolutePosix__3878(nav__3878_39 const a0) { if (t2) { goto zig_block_1; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t0); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t0); zig_unreachable(); zig_block_1:; @@ -3703,7 +3681,7 @@ static nav__1628_39 posix_toPosixPath__1628(nav__1628_41 const a0) { bool t11; uint8_t t12[4096]; uint8_t t2[4096]; - t0 = mem_indexOfScalar__anon_3927__5145(a0, UINT8_C(0)); + t0 = mem_indexOfScalar__anon_3870__5143(a0, UINT8_C(0)); t1 = t0.is_null == true; debug_assert__179(t1); memset(&t2, 0xaa, sizeof(uint8_t[4096])); @@ -3723,7 +3701,7 @@ static nav__1628_39 posix_toPosixPath__1628(nav__1628_41 const a0) { if (t1) { goto zig_block_1; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_1:; @@ -3731,7 +3709,7 @@ static nav__1628_39 posix_toPosixPath__1628(nav__1628_41 const a0) { if (t1) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096(t3, (uintptr_t)4096ul); + debug_no_panic_outOfBounds__4094(t3, (uintptr_t)4096ul); zig_unreachable(); zig_block_2:; @@ -3739,7 +3717,7 @@ static nav__1628_39 posix_toPosixPath__1628(nav__1628_41 const a0) { if (t1) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_3:; @@ -3751,7 +3729,7 @@ static nav__1628_39 posix_toPosixPath__1628(nav__1628_41 const a0) { if (t1) { goto zig_block_4; } - debug_no_panic_memcpyLenMismatch__4117(); + debug_no_panic_memcpyLenMismatch__4115(); zig_unreachable(); zig_block_4:; @@ -3765,7 +3743,7 @@ static nav__1628_39 posix_toPosixPath__1628(nav__1628_41 const a0) { if (t11) { goto zig_block_5; } - debug_no_panic_memcpyAlias__4118(); + debug_no_panic_memcpyAlias__4116(); zig_unreachable(); zig_block_5:; @@ -3775,7 +3753,7 @@ static nav__1628_39 posix_toPosixPath__1628(nav__1628_41 const a0) { if (t11) { goto zig_block_6; } - debug_no_panic_outOfBounds__4096(t3, (uintptr_t)4095ul); + debug_no_panic_outOfBounds__4094(t3, (uintptr_t)4095ul); zig_unreachable(); zig_block_6:; @@ -3787,10 +3765,10 @@ static nav__1628_39 posix_toPosixPath__1628(nav__1628_41 const a0) { return t13; } -static uint16_t fs_Dir_accessZ__3697(struct fs_Dir__1777 const a0, uint8_t const *const a1, struct fs_File_OpenFlags__1775 const a2) { +static uint16_t fs_Dir_accessZ__3695(struct fs_Dir__1822 const a0, uint8_t const *const a1, struct fs_File_OpenFlags__1820 const a2) { uint32_t t2; int32_t t3; - struct fs_Dir__1777 t0; + struct fs_Dir__1822 t0; uint16_t t4; uint8_t t1; t0 = a0; @@ -3809,7 +3787,7 @@ static uint16_t fs_Dir_accessZ__3697(struct fs_Dir__1777 const a0, uint8_t const goto zig_block_0; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -3820,7 +3798,7 @@ static uint16_t fs_Dir_accessZ__3697(struct fs_Dir__1777 const a0, uint8_t const return t4; } -static nav__3633_39 fs_Dir_openFileZ__3633(struct fs_Dir__1777 const a0, uint8_t const *const a1, struct fs_File_OpenFlags__1775 const a2) { +static nav__3631_39 fs_Dir_openFileZ__3631(struct fs_Dir__1822 const a0, uint8_t const *const a1, struct fs_File_OpenFlags__1820 const a2) { uint32_t *t2; struct fs_File__546 *t14; int32_t *t15; @@ -3829,10 +3807,10 @@ static nav__3633_39 fs_Dir_openFileZ__3633(struct fs_Dir__1777 const a0, uint8_t int32_t t12; uint32_t t7; uint32_t t1; - nav__3633_50 t8; - nav__3633_39 t10; - nav__3633_39 t13; - struct fs_Dir__1777 t0; + nav__3631_50 t8; + nav__3631_39 t10; + nav__3631_39 t13; + struct fs_Dir__1822 t0; uint16_t t9; uint8_t t3; uint8_t t4; @@ -3854,7 +3832,7 @@ static nav__3633_39 fs_Dir_openFileZ__3633(struct fs_Dir__1777 const a0, uint8_t goto zig_block_0; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -3930,7 +3908,7 @@ static nav__3633_39 fs_Dir_openFileZ__3633(struct fs_Dir__1777 const a0, uint8_t t4 = a2.lock; switch (t4) { case UINT8_C(0): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT8_C(1): { @@ -3944,7 +3922,7 @@ static nav__3633_39 fs_Dir_openFileZ__3633(struct fs_Dir__1777 const a0, uint8_t goto zig_block_3; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -3969,16 +3947,16 @@ static nav__3633_39 fs_Dir_openFileZ__3633(struct fs_Dir__1777 const a0, uint8_t return t13; } -static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, struct shared_Command__1959 const a1) { - struct shared_Command__struct_1962__1962 t4; - struct shared_Command__struct_1963__1963 t5; +static uint16_t bincode_serializeUnion__anon_2872__4567(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, struct shared_Command__2004 const a1) { + struct shared_Command__struct_2007__2007 t4; + struct shared_Command__struct_2008__2008 t5; uint32_t t1; uint16_t t2; uint8_t t0; bool t3; t0 = a1.tag; t1 = (uint32_t)t0; - t2 = bincode_serialize__anon_4076__5215(a0, t1); + t2 = bincode_serialize__anon_3993__5213(a0, t1); if (t2) { return t2; } @@ -3990,12 +3968,12 @@ static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_ if (t3) { goto zig_block_1; } - debug_no_panic_inactiveUnionField__anon_4078__5216(t0, UINT8_C(0)); + debug_no_panic_inactiveUnionField__anon_3995__5214(t0, UINT8_C(0)); zig_unreachable(); zig_block_1:; t4 = a1.payload.CurrentBenchmark; - t2 = bincode_serialize__anon_4080__5217(a0, t4); + t2 = bincode_serialize__anon_3997__5215(a0, t4); if (t2) { return t2; } @@ -4012,11 +3990,11 @@ static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_ if (t3) { goto zig_block_3; } - debug_no_panic_inactiveUnionField__anon_4078__5216(t0, UINT8_C(1)); + debug_no_panic_inactiveUnionField__anon_3995__5214(t0, UINT8_C(1)); zig_unreachable(); zig_block_3:; - t2 = bincode_serialize__anon_4082__5218(a0); + t2 = bincode_serialize__anon_3999__5216(a0); if (t2) { return t2; } @@ -4033,11 +4011,11 @@ static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_ if (t3) { goto zig_block_5; } - debug_no_panic_inactiveUnionField__anon_4078__5216(t0, UINT8_C(2)); + debug_no_panic_inactiveUnionField__anon_3995__5214(t0, UINT8_C(2)); zig_unreachable(); zig_block_5:; - t2 = bincode_serialize__anon_4082__5218(a0); + t2 = bincode_serialize__anon_3999__5216(a0); if (t2) { return t2; } @@ -4054,11 +4032,11 @@ static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_ if (t3) { goto zig_block_7; } - debug_no_panic_inactiveUnionField__anon_4078__5216(t0, UINT8_C(3)); + debug_no_panic_inactiveUnionField__anon_3995__5214(t0, UINT8_C(3)); zig_unreachable(); zig_block_7:; - t2 = bincode_serialize__anon_4082__5218(a0); + t2 = bincode_serialize__anon_3999__5216(a0); if (t2) { return t2; } @@ -4075,11 +4053,11 @@ static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_ if (t3) { goto zig_block_9; } - debug_no_panic_inactiveUnionField__anon_4078__5216(t0, UINT8_C(4)); + debug_no_panic_inactiveUnionField__anon_3995__5214(t0, UINT8_C(4)); zig_unreachable(); zig_block_9:; - t2 = bincode_serialize__anon_4082__5218(a0); + t2 = bincode_serialize__anon_3999__5216(a0); if (t2) { return t2; } @@ -4096,12 +4074,12 @@ static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_ if (t3) { goto zig_block_11; } - debug_no_panic_inactiveUnionField__anon_4078__5216(t0, UINT8_C(5)); + debug_no_panic_inactiveUnionField__anon_3995__5214(t0, UINT8_C(5)); zig_unreachable(); zig_block_11:; t5 = a1.payload.SetIntegration; - t2 = bincode_serialize__anon_4084__5219(a0, t5); + t2 = bincode_serialize__anon_4001__5217(a0, t5); if (t2) { return t2; } @@ -4118,11 +4096,11 @@ static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_ if (t3) { goto zig_block_13; } - debug_no_panic_inactiveUnionField__anon_4078__5216(t0, UINT8_C(6)); + debug_no_panic_inactiveUnionField__anon_3995__5214(t0, UINT8_C(6)); zig_unreachable(); zig_block_13:; - t2 = bincode_serialize__anon_4082__5218(a0); + t2 = bincode_serialize__anon_3999__5216(a0); if (t2) { return t2; } @@ -4134,18 +4112,18 @@ static uint16_t bincode_serializeUnion__anon_2928__4569(struct io_GenericWriter_ return 0; } -static nav__4033_39 array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4033(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 const a0) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 const *t1; - nav__4033_39 const *t2; +static nav__4031_39 array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4031(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 const a0) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 const *t1; + nav__4031_39 const *t2; uint8_t *const *t3; uintptr_t t4; uint8_t *t5; - nav__4033_39 t7; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 t0; + nav__4031_39 t7; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 t0; bool t6; t0 = a0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 const *)&t0; - t2 = (nav__4033_39 const *)&t1->items; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 const *)&t0; + t2 = (nav__4031_39 const *)&t1->items; t3 = &t2->ptr; t4 = a0.capacity; t5 = (*t3); @@ -4154,7 +4132,7 @@ static nav__4033_39 array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4 if (t6) { goto zig_block_0; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t4); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t4); zig_unreachable(); zig_block_0:; @@ -4162,7 +4140,7 @@ static nav__4033_39 array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4 if (t6) { goto zig_block_1; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t4); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t4); zig_unreachable(); zig_block_1:; @@ -4172,14 +4150,14 @@ static nav__4033_39 array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4 } static nav__1544_39 posix_clock_gettime__1544(uint32_t const a0) { - struct os_linux_timespec__struct_2960__2960 t3; - struct os_linux_timespec__struct_2960__2960 t0; + struct os_linux_timespec__struct_2902__2902 t3; + struct os_linux_timespec__struct_2902__2902 t0; nav__1544_39 t4; int t1; uint16_t t2; - memset(&t0, 0xaa, sizeof(struct os_linux_timespec__struct_2960__2960)); + memset(&t0, 0xaa, sizeof(struct os_linux_timespec__struct_2902__2902)); t1 = clock_gettime(a0, &t0); - t2 = posix_errno__anon_4097__5221(t1); + t2 = posix_errno__anon_4014__5219(t1); switch (t2) { case UINT16_C(0): { t3 = t0; @@ -4188,7 +4166,7 @@ static nav__1544_39 posix_clock_gettime__1544(uint32_t const a0) { return t4; } case UINT16_C(14): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(22): { @@ -4196,14 +4174,14 @@ static nav__1544_39 posix_clock_gettime__1544(uint32_t const a0) { } default: { t2 = posix_unexpectedErrno__1627(t2); - t4.payload = (struct os_linux_timespec__struct_2960__2960){-(intptr_t)0x5555555555555556,-(intptr_t)0x5555555555555556}; + t4.payload = (struct os_linux_timespec__struct_2902__2902){-(intptr_t)0x5555555555555556,-(intptr_t)0x5555555555555556}; t4.error = t2; return t4; } } } -static zig_cold zig_noreturn void debug_no_panic_corruptSwitch__4113(void) { +static zig_cold zig_noreturn void debug_no_panic_corruptSwitch__4111(void) { zig_trap(); } @@ -4215,62 +4193,62 @@ static nav__1133_38 fs_File_read__1133(struct fs_File__546 const a0, nav__1133_4 return t1; } -static nav__4570_39 mem_Allocator_allocWithSizeAndAlignment__anon_2991__4570(struct mem_Allocator__206 const a0, uintptr_t const a1, uintptr_t const a2) { +static nav__4568_39 mem_Allocator_allocWithSizeAndAlignment__anon_2933__4568(struct mem_Allocator__206 const a0, uintptr_t const a1, uintptr_t const a2) { struct mem_Allocator__206 const *t1; uintptr_t t2; uintptr_t t5; - nav__4570_49 t3; + nav__4568_49 t3; struct mem_Allocator__206 t6; struct mem_Allocator__206 t0; - nav__4570_39 t7; + nav__4568_39 t7; bool t4; t0 = a0; t1 = (struct mem_Allocator__206 const *)&t0; - t3 = math_mul__anon_4111__5222((uintptr_t)1ul, a1); + t3 = math_mul__anon_4028__5220((uintptr_t)1ul, a1); t4 = t3.error == UINT16_C(0); if (t4) { t5 = t3.payload; t2 = t5; goto zig_block_0; } - return (nav__4570_39){((uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),zig_error_OutOfMemory}; + return (nav__4568_39){((uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),zig_error_OutOfMemory}; zig_block_0:; t6 = (*t1); - t7 = mem_Allocator_allocBytesWithAlignment__anon_4113__5223(t6, t2, a2); + t7 = mem_Allocator_allocBytesWithAlignment__anon_4030__5221(t6, t2, a2); return t7; } -static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read__4185(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const a0, nav__4185_42 const a1) { - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *t1; - nav__4185_42 const *t3; +static nav__4183_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read__4183(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const a0, nav__4183_42 const a1) { + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *t1; + nav__4183_42 const *t3; uintptr_t t4; uintptr_t t7; uintptr_t t9; uintptr_t t17; - nav__4185_42 *t5; - nav__4185_42 t6; - nav__4185_42 t16; - nav__4185_42 t2; + nav__4183_42 *t5; + nav__4183_42 t6; + nav__4183_42 t16; + nav__4183_42 t2; uintptr_t *t8; - nav__4185_52 t10; + nav__4183_52 t10; uint64_t t13; uint8_t *t14; uint8_t *t18; uint8_t *t19; uint8_t *t20; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *t15; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *t0; - nav__4185_38 t22; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *t15; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *t0; + nav__4183_38 t22; uint8_t t11; bool t12; bool t21; t0 = a0; - t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *)&t0; + t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *)&t0; t2 = a1; - t3 = (nav__4185_42 const *)&t2; + t3 = (nav__4183_42 const *)&t2; t4 = a1.len; - t5 = (nav__4185_42 *)&a0->buffer; + t5 = (nav__4183_42 *)&a0->buffer; t6 = (*t5); t7 = t6.len; t8 = (uintptr_t *)&a0->pos; @@ -4281,7 +4259,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -4297,7 +4275,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_1; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_1:; @@ -4310,7 +4288,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t9); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t9); zig_unreachable(); zig_block_2:; @@ -4319,7 +4297,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096(t9, t7); + debug_no_panic_outOfBounds__4094(t9, t7); zig_unreachable(); zig_block_3:; @@ -4327,14 +4305,14 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t9); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t9); zig_unreachable(); zig_block_4:; t6.ptr = t14; t6.len = t9; t15 = (*t1); - t5 = (nav__4185_42 *)&t15->buffer; + t5 = (nav__4183_42 *)&t15->buffer; t8 = (uintptr_t *)&a0->pos; t9 = (*t8); t16 = (*t5); @@ -4344,7 +4322,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_5; } - debug_no_panic_startGreaterThanEnd__4097(t9, t4); + debug_no_panic_startGreaterThanEnd__4095(t9, t4); zig_unreachable(); zig_block_5:; @@ -4354,7 +4332,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_6; } - debug_no_panic_outOfBounds__4096(t4, t17); + debug_no_panic_outOfBounds__4094(t4, t17); zig_unreachable(); zig_block_6:; @@ -4362,7 +4340,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_7; } - debug_no_panic_outOfBounds__4096(t9, t4); + debug_no_panic_outOfBounds__4094(t9, t4); zig_unreachable(); zig_block_7:; @@ -4374,7 +4352,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t12) { goto zig_block_8; } - debug_no_panic_memcpyLenMismatch__4117(); + debug_no_panic_memcpyLenMismatch__4115(); zig_unreachable(); zig_block_8:; @@ -4388,7 +4366,7 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ if (t21) { goto zig_block_9; } - debug_no_panic_memcpyAlias__4118(); + debug_no_panic_memcpyAlias__4116(); zig_unreachable(); zig_block_9:; @@ -4402,11 +4380,11 @@ static nav__4185_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_read_ return t22; } -static uint16_t io_Reader_readNoEof__4235(struct io_Reader__2450 const a0, nav__4235_40 const a1) { - struct io_Reader__2450 const *t1; - struct io_Reader__2450 t2; - struct io_Reader__2450 t0; - nav__4235_43 t3; +static uint16_t io_Reader_readNoEof__4233(struct io_Reader__2439 const a0, nav__4233_40 const a1) { + struct io_Reader__2439 const *t1; + struct io_Reader__2439 t2; + struct io_Reader__2439 t0; + nav__4233_43 t3; uintptr_t t5; uintptr_t t6; uint64_t t7; @@ -4414,9 +4392,9 @@ static uint16_t io_Reader_readNoEof__4235(struct io_Reader__2450 const a0, nav__ uint16_t t4; bool t9; t0 = a0; - t1 = (struct io_Reader__2450 const *)&t0; + t1 = (struct io_Reader__2439 const *)&t0; t2 = (*t1); - t3 = io_Reader_readAll__4233(t2, a1); + t3 = io_Reader_readAll__4231(t2, a1); if (t3.error) { t4 = t3.error; return t4; @@ -4435,9 +4413,9 @@ static uint16_t io_Reader_readNoEof__4235(struct io_Reader__2450 const a0, nav__ return 0; } -static nav__4234_38 io_Reader_readAtLeast__4234(struct io_Reader__2450 const a0, nav__4234_41 const a1, uintptr_t const a2) { - struct io_Reader__2450 const *t1; - nav__4234_41 const *t3; +static nav__4232_38 io_Reader_readAtLeast__4232(struct io_Reader__2439 const a0, nav__4232_41 const a1, uintptr_t const a2) { + struct io_Reader__2439 const *t1; + nav__4232_41 const *t3; uintptr_t t4; uintptr_t t12; uintptr_t t13; @@ -4445,20 +4423,20 @@ static nav__4234_38 io_Reader_readAtLeast__4234(struct io_Reader__2450 const a0, uintptr_t t8; uint64_t t5; uint64_t t6; - struct io_Reader__2450 t9; - struct io_Reader__2450 t0; - nav__4234_41 t10; - nav__4234_41 t2; + struct io_Reader__2439 t9; + struct io_Reader__2439 t0; + nav__4232_41 t10; + nav__4232_41 t2; uint8_t *t11; - nav__4234_38 t15; - nav__4234_52 t17; + nav__4232_38 t15; + nav__4232_52 t17; uint16_t t16; bool t7; uint8_t t18; t0 = a0; - t1 = (struct io_Reader__2450 const *)&t0; + t1 = (struct io_Reader__2439 const *)&t0; t2 = a1; - t3 = (nav__4234_41 const *)&t2; + t3 = (nav__4232_41 const *)&t2; t4 = a1.len; t5 = a2; t6 = t4; @@ -4481,7 +4459,7 @@ static nav__4234_38 io_Reader_readAtLeast__4234(struct io_Reader__2450 const a0, if (t7) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097(t4, t12); + debug_no_panic_startGreaterThanEnd__4095(t4, t12); zig_unreachable(); zig_block_2:; @@ -4491,7 +4469,7 @@ static nav__4234_38 io_Reader_readAtLeast__4234(struct io_Reader__2450 const a0, if (t7) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096(t12, t14); + debug_no_panic_outOfBounds__4094(t12, t14); zig_unreachable(); zig_block_3:; @@ -4499,13 +4477,13 @@ static nav__4234_38 io_Reader_readAtLeast__4234(struct io_Reader__2450 const a0, if (t7) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096(t4, t12); + debug_no_panic_outOfBounds__4094(t4, t12); zig_unreachable(); zig_block_4:; t10.ptr = t11; t10.len = t13; - t15 = io_Reader_read__4232(t9, t10); + t15 = io_Reader_read__4230(t9, t10); if (t15.error) { t16 = t15.error; t15.payload = (uintptr_t)0xaaaaaaaaaaaaaaaaul; @@ -4528,7 +4506,7 @@ static nav__4234_38 io_Reader_readAtLeast__4234(struct io_Reader__2450 const a0, if (t7) { goto zig_block_6; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_6:; @@ -4548,19 +4526,19 @@ static nav__4234_38 io_Reader_readAtLeast__4234(struct io_Reader__2450 const a0, return t15; } -static zig_cold zig_noreturn void debug_no_panic_call__4093(nav__4093_39 const a0, nav__4093_40 const a1) { +static zig_cold zig_noreturn void debug_no_panic_call__4091(nav__4091_39 const a0, nav__4091_40 const a1) { (void)a0; (void)a1; zig_trap(); } -static nav__4571_39 mem_sliceAsBytes__anon_3028__4571(nav__4571_39 const a0) { +static nav__4569_39 mem_sliceAsBytes__anon_2970__4569(nav__4569_39 const a0) { uintptr_t t0; uint64_t t1; uint8_t *t4; uint8_t *t5; uint8_t *const *t6; - nav__4571_39 t7; + nav__4569_39 t7; bool t2; bool t3; t0 = a0.len; @@ -4575,7 +4553,7 @@ static nav__4571_39 mem_sliceAsBytes__anon_3028__4571(nav__4571_39 const a0) { zig_block_1:; if (t3) { - return (nav__4571_39){(uint8_t *)((void const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),(uintptr_t)0ul}; + return (nav__4569_39){(uint8_t *)((void const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),(uintptr_t)0ul}; } goto zig_block_0; @@ -4590,7 +4568,7 @@ static nav__4571_39 mem_sliceAsBytes__anon_3028__4571(nav__4571_39 const a0) { if (t3) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t0); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t0); zig_unreachable(); zig_block_2:; @@ -4598,7 +4576,7 @@ static nav__4571_39 mem_sliceAsBytes__anon_3028__4571(nav__4571_39 const a0) { if (t3) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t0); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t0); zig_unreachable(); zig_block_3:; @@ -4607,19 +4585,19 @@ static nav__4571_39 mem_sliceAsBytes__anon_3028__4571(nav__4571_39 const a0) { return t7; } -static nav__4635_38 math_cast__anon_3065__4635(uint64_t const a0) { +static nav__4633_38 math_cast__anon_3009__4633(uint64_t const a0) { intptr_t t1; - nav__4635_38 t2; + nav__4633_38 t2; bool t0; t0 = a0 > UINT64_C(9223372036854775807); if (t0) { - return (nav__4635_38){-(intptr_t)0x5555555555555556,true}; + return (nav__4633_38){-(intptr_t)0x5555555555555556,true}; } t0 = a0 <= UINT64_C(9223372036854775807); if (t0) { goto zig_block_0; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_0:; @@ -4629,7 +4607,7 @@ static nav__4635_38 math_cast__anon_3065__4635(uint64_t const a0) { return t2; } -static uintptr_t os_linux_clock_nanosleep__2718(uint32_t const a0, uint32_t const a1, struct os_linux_timespec__struct_2960__2960 const *const a2, struct os_linux_timespec__struct_2960__2960 *const a3) { +static uintptr_t os_linux_clock_nanosleep__2718(uint32_t const a0, uint32_t const a1, struct os_linux_timespec__struct_2902__2902 const *const a2, struct os_linux_timespec__struct_2902__2902 *const a3) { uintptr_t t1; uintptr_t t2; uintptr_t t3; @@ -4641,7 +4619,7 @@ static uintptr_t os_linux_clock_nanosleep__2718(uint32_t const a0, uint32_t cons t2 = (uintptr_t)t0; t3 = (uintptr_t)a2; t4 = (uintptr_t)a3; - t4 = os_linux_x86_64_syscall4__4600((uintptr_t)230ul, t1, t2, t3, t4); + t4 = os_linux_x86_64_syscall4__4598((uintptr_t)230ul, t1, t2, t3, t4); return t4; } @@ -4676,7 +4654,7 @@ static uint16_t os_linux_errnoFromSyscall__2615(uintptr_t const a0) { if (t4) { goto zig_block_2; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_2:; @@ -4695,7 +4673,7 @@ static uint16_t os_linux_errnoFromSyscall__2615(uintptr_t const a0) { if (t4) { goto zig_block_3; } - debug_no_panic_invalidEnumValue__4115(); + debug_no_panic_invalidEnumValue__4113(); zig_unreachable(); zig_block_3:; @@ -4703,29 +4681,29 @@ static uint16_t os_linux_errnoFromSyscall__2615(uintptr_t const a0) { return t8; } -static void mem_Allocator_free__anon_3245__4637(struct mem_Allocator__206 const a0, nav__4637_40 const a1) { +static void mem_Allocator_free__anon_3189__4635(struct mem_Allocator__206 const a0, nav__4635_40 const a1) { struct mem_Allocator__206 const *t1; - nav__4637_40 t2; + nav__4635_40 t2; uintptr_t t3; uint64_t t4; uint8_t const *t6; uint8_t *t7; uint8_t *t8; uint8_t *const *t9; - nav__4637_51 t10; + nav__4635_51 t10; struct mem_Allocator__206 t11; struct mem_Allocator__206 t0; struct mem_Allocator__206 t13; struct mem_Allocator_VTable__209 const *const *t14; struct mem_Allocator_VTable__209 const *t15; - void (*const *t16)(void *, nav__4637_51, uint8_t, uintptr_t); - void (*t17)(void *, nav__4637_51, uint8_t, uintptr_t); + void (*const *t16)(void *, nav__4635_51, uint8_t, uintptr_t); + void (*t17)(void *, nav__4635_51, uint8_t, uintptr_t); void *t18; bool t5; uint8_t t12; t0 = a0; t1 = (struct mem_Allocator__206 const *)&t0; - t2 = mem_sliceAsBytes__anon_4629__5245(a1); + t2 = mem_sliceAsBytes__anon_4546__5243(a1); t3 = t2.len; t4 = t3; t5 = t4 == UINT64_C(0); @@ -4745,7 +4723,7 @@ static void mem_Allocator_free__anon_3245__4637(struct mem_Allocator__206 const if (t5) { goto zig_block_1; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_1:; @@ -4753,7 +4731,7 @@ static void mem_Allocator_free__anon_3245__4637(struct mem_Allocator__206 const if (t5) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_2:; @@ -4767,7 +4745,7 @@ static void mem_Allocator_free__anon_3245__4637(struct mem_Allocator__206 const if (t5) { goto zig_block_3; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_3:; @@ -4775,7 +4753,7 @@ static void mem_Allocator_free__anon_3245__4637(struct mem_Allocator__206 const if (t5) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_4:; @@ -4787,16 +4765,16 @@ static void mem_Allocator_free__anon_3245__4637(struct mem_Allocator__206 const t1 = (struct mem_Allocator__206 const *)&t13; t14 = (struct mem_Allocator_VTable__209 const *const *)&t1->vtable; t15 = (*t14); - t16 = (void (*const *)(void *, nav__4637_51, uint8_t, uintptr_t))&t15->free; + t16 = (void (*const *)(void *, nav__4635_51, uint8_t, uintptr_t))&t15->free; t17 = (*t16); t18 = t11.ptr; t17(t18, t10, t12, t3); return; } -static bool math_isPowerOfTwo__anon_3247__4638(uintptr_t const a0) { +static bool math_isPowerOfTwo__anon_3191__4636(uintptr_t const a0) { uint64_t t0; - nav__4638_39 t2; + nav__4636_39 t2; uintptr_t t4; bool t1; uint8_t t3; @@ -4809,7 +4787,7 @@ static bool math_isPowerOfTwo__anon_3247__4638(uintptr_t const a0) { if (t1) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -4820,24 +4798,24 @@ static bool math_isPowerOfTwo__anon_3247__4638(uintptr_t const a0) { return t1; } -static void Thread_Mutex_Recursive_lock__4765(struct Thread_Mutex_Recursive__3310 *const a0) { - struct Thread_Mutex_Recursive__3310 *const *t1; - struct Thread_Mutex_Recursive__3310 *t3; - struct Thread_Mutex_Recursive__3310 *t0; +static void Thread_Mutex_Recursive_lock__4763(struct Thread_Mutex_Recursive__3253 *const a0) { + struct Thread_Mutex_Recursive__3253 *const *t1; + struct Thread_Mutex_Recursive__3253 *t3; + struct Thread_Mutex_Recursive__3253 *t0; uint32_t *t4; uint32_t const *t5; - struct Thread_Mutex__3308 *t8; + struct Thread_Mutex__3251 *t8; uintptr_t *t9; uintptr_t t10; uint64_t t11; - nav__4765_55 t12; + nav__4763_55 t12; uint32_t t2; uint32_t t6; bool t7; uint8_t t13; t0 = a0; - t1 = (struct Thread_Mutex_Recursive__3310 *const *)&t0; - t2 = Thread_getCurrentId__4305(); + t1 = (struct Thread_Mutex_Recursive__3253 *const *)&t0; + t2 = Thread_getCurrentId__4303(); t3 = (*t1); t4 = (uint32_t *)&t3->thread_id; t5 = (uint32_t const *)t4; @@ -4845,8 +4823,8 @@ static void Thread_Mutex_Recursive_lock__4765(struct Thread_Mutex_Recursive__331 t7 = t6 != t2; if (t7) { t3 = (*t1); - t8 = (struct Thread_Mutex__3308 *)&t3->mutex; - Thread_Mutex_lock__4746(t8); + t8 = (struct Thread_Mutex__3251 *)&t3->mutex; + Thread_Mutex_lock__4744(t8); t9 = (uintptr_t *)&a0->lock_count; t10 = (*t9); t11 = t10; @@ -4869,7 +4847,7 @@ static void Thread_Mutex_Recursive_lock__4765(struct Thread_Mutex_Recursive__331 if (t7) { goto zig_block_1; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_1:; @@ -4878,11 +4856,11 @@ static void Thread_Mutex_Recursive_lock__4765(struct Thread_Mutex_Recursive__331 return; } -static uint16_t Progress_clearWrittenWithEscapeCodes__4368(void) { - struct Progress__2779 t0; +static uint16_t Progress_clearWrittenWithEscapeCodes__4366(void) { + struct Progress__2767 t0; uint16_t t2; bool t1; - t0 = (*((struct Progress__2779 *)&Progress_global_progress__4343)); + t0 = (*((struct Progress__2767 *)&Progress_global_progress__4341)); t1 = t0.need_clear; t1 = !t1; if (t1) { @@ -4891,8 +4869,8 @@ static uint16_t Progress_clearWrittenWithEscapeCodes__4368(void) { goto zig_block_0; zig_block_0:; - (*&(((struct Progress__2779 *)&Progress_global_progress__4343))->need_clear) = false; - t2 = Progress_write__4387((nav__4368_68){(uint8_t const *)&__anon_4676,(uintptr_t)3ul}); + (*&(((struct Progress__2767 *)&Progress_global_progress__4341))->need_clear) = false; + t2 = Progress_write__4385((nav__4366_68){(uint8_t const *)&__anon_4593,(uintptr_t)3ul}); if (t2) { return t2; } @@ -4924,14 +4902,14 @@ static nav__1363_38 posix_write__1363(int32_t const a0, nav__1363_40 const a1) { t4 = (uint32_t)t0; t0 = (uintptr_t)t4; t5 = write(a0, t3, t0); - t6 = posix_errno__anon_4692__5247(t5); + t6 = posix_errno__anon_4609__5245(t5); switch (t6) { case UINT16_C(0): { t2 = t5 >= (intptr_t)0; if (t2) { goto zig_block_2; } - debug_no_panic_negativeToUnsigned__4106(); + debug_no_panic_negativeToUnsigned__4104(); zig_unreachable(); zig_block_2:; @@ -4947,7 +4925,7 @@ static nav__1363_38 posix_write__1363(int32_t const a0, nav__1363_40 const a1) { return (nav__1363_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_InvalidArgument}; } case UINT16_C(14): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(2): { @@ -4960,7 +4938,7 @@ static nav__1363_38 posix_write__1363(int32_t const a0, nav__1363_40 const a1) { return (nav__1363_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_NotOpenForWriting}; } case UINT16_C(89): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(122): { @@ -5005,9 +4983,9 @@ static nav__1363_38 posix_write__1363(int32_t const a0, nav__1363_40 const a1) { goto zig_loop_16; } -static uint16_t io_Writer_writeAll__3828(struct io_Writer__1905 const a0, nav__3828_40 const a1) { - struct io_Writer__1905 const *t1; - nav__3828_40 const *t3; +static uint16_t io_Writer_writeAll__3826(struct io_Writer__1950 const a0, nav__3826_40 const a1) { + struct io_Writer__1950 const *t1; + nav__3826_40 const *t3; uintptr_t t5; uintptr_t t6; uintptr_t t13; @@ -5016,20 +4994,20 @@ static uint16_t io_Writer_writeAll__3828(struct io_Writer__1905 const a0, nav__3 uintptr_t t4; uint64_t t7; uint64_t t8; - struct io_Writer__1905 t10; - struct io_Writer__1905 t0; - nav__3828_40 t11; - nav__3828_40 t2; + struct io_Writer__1950 t10; + struct io_Writer__1950 t0; + nav__3826_40 t11; + nav__3826_40 t2; uint8_t const *t12; - nav__3828_43 t16; - nav__3828_52 t18; + nav__3826_43 t16; + nav__3826_52 t18; uint16_t t17; bool t9; uint8_t t19; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = a1; - t3 = (nav__3828_40 const *)&t2; + t3 = (nav__3826_40 const *)&t2; t4 = (uintptr_t)0ul; zig_loop_11: t5 = t4; @@ -5049,7 +5027,7 @@ static uint16_t io_Writer_writeAll__3828(struct io_Writer__1905 const a0, nav__3 if (t9) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097(t5, t13); + debug_no_panic_startGreaterThanEnd__4095(t5, t13); zig_unreachable(); zig_block_2:; @@ -5059,7 +5037,7 @@ static uint16_t io_Writer_writeAll__3828(struct io_Writer__1905 const a0, nav__3 if (t9) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096(t13, t15); + debug_no_panic_outOfBounds__4094(t13, t15); zig_unreachable(); zig_block_3:; @@ -5067,13 +5045,13 @@ static uint16_t io_Writer_writeAll__3828(struct io_Writer__1905 const a0, nav__3 if (t9) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096(t5, t13); + debug_no_panic_outOfBounds__4094(t5, t13); zig_unreachable(); zig_block_4:; t11.ptr = t12; t11.len = t14; - t16 = io_Writer_write__3827(t10, t11); + t16 = io_Writer_write__3825(t10, t11); if (t16.error) { t17 = t16.error; return t17; @@ -5085,7 +5063,7 @@ static uint16_t io_Writer_writeAll__3828(struct io_Writer__1905 const a0, nav__3 if (t9) { goto zig_block_5; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_5:; @@ -5102,50 +5080,50 @@ static uint16_t io_Writer_writeAll__3828(struct io_Writer__1905 const a0, nav__3 return 0; } -static uint16_t fmt_formatType__anon_3903__5144(nav__5144_39 const a0, struct fmt_FormatOptions__3815 const a1, struct io_Writer__1905 const a2, uintptr_t const a3) { - struct io_Writer__1905 const *t2; +static uint16_t fmt_formatType__anon_3846__5142(nav__5142_39 const a0, struct fmt_FormatOptions__3758 const a1, struct io_Writer__1950 const a2, uintptr_t const a3) { + struct io_Writer__1950 const *t2; uint64_t t3; - struct io_Writer__1905 t5; - struct io_Writer__1905 t1; - nav__5144_39 t7; - nav__5144_39 t0; + struct io_Writer__1950 t5; + struct io_Writer__1950 t1; + nav__5142_39 t7; + nav__5142_39 t0; uint16_t t6; uint16_t t8; bool t4; t0 = a0; t1 = a2; - t2 = (struct io_Writer__1905 const *)&t1; + t2 = (struct io_Writer__1950 const *)&t1; t3 = a3; t4 = t3 == UINT64_C(0); if (t4) { t5 = (*t2); - t6 = io_Writer_writeAll__3828(t5, (nav__5144_39){(uint8_t const *)&__anon_4810,(uintptr_t)7ul}); + t6 = io_Writer_writeAll__3826(t5, (nav__5142_39){(uint8_t const *)&__anon_4727,(uintptr_t)7ul}); return t6; } goto zig_block_0; zig_block_0:; - memcpy(&t7, &a0, sizeof(nav__5144_39)); - t6 = fmt_formatBuf__anon_4820__5248(t7, a1, a2); + memcpy(&t7, &a0, sizeof(nav__5142_39)); + t6 = fmt_formatBuf__anon_4737__5246(t7, a1, a2); memcpy(&t8, &t6, sizeof(uint16_t)); return t8; } -static void Thread_Mutex_Recursive_unlock__4766(struct Thread_Mutex_Recursive__3310 *const a0) { - struct Thread_Mutex_Recursive__3310 *const *t1; - struct Thread_Mutex_Recursive__3310 *t2; - struct Thread_Mutex_Recursive__3310 *t0; +static void Thread_Mutex_Recursive_unlock__4764(struct Thread_Mutex_Recursive__3253 *const a0) { + struct Thread_Mutex_Recursive__3253 *const *t1; + struct Thread_Mutex_Recursive__3253 *t2; + struct Thread_Mutex_Recursive__3253 *t0; uintptr_t *t3; uintptr_t t4; - nav__4766_52 t5; + nav__4764_52 t5; uint64_t t8; uint32_t *t9; - struct Thread_Mutex__3308 *t11; + struct Thread_Mutex__3251 *t11; uint32_t t10; uint8_t t6; bool t7; t0 = a0; - t1 = (struct Thread_Mutex_Recursive__3310 *const *)&t0; + t1 = (struct Thread_Mutex_Recursive__3253 *const *)&t0; t2 = (*t1); t3 = (uintptr_t *)&t2->lock_count; t4 = (*t3); @@ -5155,7 +5133,7 @@ static void Thread_Mutex_Recursive_unlock__4766(struct Thread_Mutex_Recursive__3 if (t7) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -5171,8 +5149,8 @@ static void Thread_Mutex_Recursive_unlock__4766(struct Thread_Mutex_Recursive__3 t10 = UINT32_MAX; zig_atomic_store((zig_atomic(uint32_t) *)t9, t10, zig_memory_order_relaxed, u32, uint32_t); t2 = (*t1); - t11 = (struct Thread_Mutex__3308 *)&t2->mutex; - Thread_Mutex_unlock__4747(t11); + t11 = (struct Thread_Mutex__3251 *)&t2->mutex; + Thread_Mutex_unlock__4745(t11); goto zig_block_1; } goto zig_block_1; @@ -5181,17 +5159,17 @@ static void Thread_Mutex_Recursive_unlock__4766(struct Thread_Mutex_Recursive__3 return; } -static nav__5145_38 mem_indexOfScalar__anon_3927__5145(nav__5145_40 const a0, uint8_t const a1) { - nav__5145_38 t0; - t0 = mem_indexOfScalarPos__anon_4831__5249(a0, (uintptr_t)0ul, a1); +static nav__5143_38 mem_indexOfScalar__anon_3870__5143(nav__5143_40 const a0, uint8_t const a1) { + nav__5143_38 t0; + t0 = mem_indexOfScalarPos__anon_4748__5247(a0, (uintptr_t)0ul, a1); return t0; } -static zig_cold zig_noreturn void debug_no_panic_memcpyLenMismatch__4117(void) { +static zig_cold zig_noreturn void debug_no_panic_memcpyLenMismatch__4115(void) { zig_trap(); } -static zig_cold zig_noreturn void debug_no_panic_memcpyAlias__4118(void) { +static zig_cold zig_noreturn void debug_no_panic_memcpyAlias__4116(void) { zig_trap(); } @@ -5203,7 +5181,7 @@ static uint16_t posix_faccessatZ__1519(int32_t const a0, uint8_t const *const a1 t0 = a2; t1 = a3; t2 = faccessat(a0, a1, t0, t1); - t3 = posix_errno__anon_4097__5221(t2); + t3 = posix_errno__anon_4014__5219(t2); switch (t3) { case UINT16_C(0): { return 0; @@ -5233,11 +5211,11 @@ static uint16_t posix_faccessatZ__1519(int32_t const a0, uint8_t const *const a1 return zig_error_NameTooLong; } case UINT16_C(22): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(14): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(5): { @@ -5267,7 +5245,7 @@ static nav__1375_38 posix_openatZ__1375(int32_t const a0, uint8_t const *const a t0 = a0; t1 = a3; t0 = openat64(t0, a1, a2, t1); - t2 = posix_errno__anon_4097__5221(t0); + t2 = posix_errno__anon_4014__5219(t0); switch (t2) { case UINT16_C(0): { t3 = t0; @@ -5279,14 +5257,14 @@ static nav__1375_38 posix_openatZ__1375(int32_t const a0, uint8_t const *const a goto zig_block_0; } case UINT16_C(14): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(22): { return (nav__1375_38){-INT32_C(0x55555556),zig_error_BadPathName}; } case UINT16_C(9): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(13): { @@ -5373,20 +5351,20 @@ static uint16_t posix_flock__1536(int32_t const a0, int32_t const a1) { zig_loop_3: t0 = a1; t0 = flock(a0, t0); - t1 = posix_errno__anon_4097__5221(t0); + t1 = posix_errno__anon_4014__5219(t0); switch (t1) { case UINT16_C(0): { return 0; } case UINT16_C(9): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(4): { goto zig_block_0; } case UINT16_C(22): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(37): { @@ -5412,10 +5390,10 @@ static void posix_close__1333(int32_t const a0) { int t0; uint16_t t1; t0 = close(a0); - t1 = posix_errno__anon_4097__5221(t0); + t1 = posix_errno__anon_4014__5219(t0); switch (t1) { case UINT16_C(9): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(4): { @@ -5427,45 +5405,45 @@ static void posix_close__1333(int32_t const a0) { } } -static uint16_t bincode_serialize__anon_4076__5215(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, uint32_t const a1) { +static uint16_t bincode_serialize__anon_3993__5213(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, uint32_t const a1) { uint16_t t0; - t0 = bincode_serializeInt__anon_4953__5253(a0, a1); + t0 = bincode_serializeInt__anon_4870__5251(a0, a1); if (t0) { return t0; } return 0; } -static zig_cold zig_noreturn void debug_no_panic_inactiveUnionField__anon_4078__5216(uint8_t const a0, uint8_t const a1) { +static zig_cold zig_noreturn void debug_no_panic_inactiveUnionField__anon_3995__5214(uint8_t const a0, uint8_t const a1) { (void)a0; (void)a1; zig_trap(); } -static uint16_t bincode_serialize__anon_4080__5217(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, struct shared_Command__struct_1962__1962 const a1) { +static uint16_t bincode_serialize__anon_3997__5215(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, struct shared_Command__struct_2007__2007 const a1) { uint16_t t0; - t0 = bincode_serializeStruct__anon_4958__5254(a0, a1); + t0 = bincode_serializeStruct__anon_4875__5252(a0, a1); if (t0) { return t0; } return 0; } -static uint16_t bincode_serialize__anon_4082__5218(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0) { +static uint16_t bincode_serialize__anon_3999__5216(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0) { (void)a0; return 0; } -static uint16_t bincode_serialize__anon_4084__5219(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, struct shared_Command__struct_1963__1963 const a1) { +static uint16_t bincode_serialize__anon_4001__5217(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, struct shared_Command__struct_2008__2008 const a1) { uint16_t t0; - t0 = bincode_serializeStruct__anon_4959__5255(a0, a1); + t0 = bincode_serializeStruct__anon_4876__5253(a0, a1); if (t0) { return t0; } return 0; } -static uint16_t posix_errno__anon_4097__5221(int const a0) { +static uint16_t posix_errno__anon_4014__5219(int const a0) { int *t3; int32_t t1; int t4; @@ -5486,7 +5464,7 @@ static uint16_t posix_errno__anon_4097__5221(int const a0) { if (t2) { goto zig_block_1; } - debug_no_panic_invalidEnumValue__4115(); + debug_no_panic_invalidEnumValue__4113(); zig_unreachable(); zig_block_1:; @@ -5531,14 +5509,14 @@ static nav__1355_38 posix_read__1355(int32_t const a0, nav__1355_40 const a1) { t4 = (uint32_t)t0; t0 = (uintptr_t)t4; t5 = read(a0, t3, t0); - t6 = posix_errno__anon_4692__5247(t5); + t6 = posix_errno__anon_4609__5245(t5); switch (t6) { case UINT16_C(0): { t2 = t5 >= (intptr_t)0; if (t2) { goto zig_block_2; } - debug_no_panic_negativeToUnsigned__4106(); + debug_no_panic_negativeToUnsigned__4104(); zig_unreachable(); zig_block_2:; @@ -5551,11 +5529,11 @@ static nav__1355_38 posix_read__1355(int32_t const a0, nav__1355_40 const a1) { goto zig_block_1; } case UINT16_C(22): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(14): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } case UINT16_C(2): { @@ -5603,17 +5581,17 @@ static nav__1355_38 posix_read__1355(int32_t const a0, nav__1355_40 const a1) { goto zig_loop_16; } -static nav__5222_38 math_mul__anon_4111__5222(uintptr_t const a0, uintptr_t const a1) { - nav__5222_42 t0; +static nav__5220_38 math_mul__anon_4028__5220(uintptr_t const a0, uintptr_t const a1) { + nav__5220_42 t0; uintptr_t t3; - nav__5222_38 t4; + nav__5220_38 t4; uint8_t t1; bool t2; t0.f1 = zig_mulo_u64(&t0.f0, a0, a1, UINT8_C(64)); t1 = t0.f1; t2 = t1 != UINT8_C(0); if (t2) { - return (nav__5222_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_Overflow}; + return (nav__5220_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_Overflow}; } goto zig_block_0; @@ -5624,7 +5602,7 @@ static nav__5222_38 math_mul__anon_4111__5222(uintptr_t const a0, uintptr_t cons return t4; } -static nav__5223_39 mem_Allocator_allocBytesWithAlignment__anon_4113__5223(struct mem_Allocator__206 const a0, uintptr_t const a1, uintptr_t const a2) { +static nav__5221_39 mem_Allocator_allocBytesWithAlignment__anon_4030__5221(struct mem_Allocator__206 const a0, uintptr_t const a1, uintptr_t const a2) { struct mem_Allocator__206 const *t1; uint64_t t2; uint8_t *t4; @@ -5640,8 +5618,8 @@ static nav__5223_39 mem_Allocator_allocBytesWithAlignment__anon_4113__5223(struc uint8_t *(*t11)(void *, uintptr_t, uint8_t, uintptr_t); void *t12; uint8_t *const *t16; - nav__5223_52 t17; - nav__5223_39 t18; + nav__5221_52 t17; + nav__5221_39 t18; bool t3; uint8_t t6; t0 = a0; @@ -5649,7 +5627,7 @@ static nav__5223_39 mem_Allocator_allocBytesWithAlignment__anon_4113__5223(struc t2 = a1; t3 = t2 == UINT64_C(0); if (t3) { - return (nav__5223_39){(uint8_t *)UINTPTR_MAX,0}; + return (nav__5221_39){(uint8_t *)UINTPTR_MAX,0}; } goto zig_block_0; @@ -5670,7 +5648,7 @@ static nav__5223_39 mem_Allocator_allocBytesWithAlignment__anon_4113__5223(struc t4 = t14; goto zig_block_1; } - return (nav__5223_39){((uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),zig_error_OutOfMemory}; + return (nav__5221_39){((uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),zig_error_OutOfMemory}; zig_block_1:; t15 = t4; @@ -5681,7 +5659,7 @@ static nav__5223_39 mem_Allocator_allocBytesWithAlignment__anon_4113__5223(struc if (t3) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, a1); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, a1); zig_unreachable(); zig_block_2:; @@ -5689,7 +5667,7 @@ static nav__5223_39 mem_Allocator_allocBytesWithAlignment__anon_4113__5223(struc if (t3) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, a1); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, a1); zig_unreachable(); zig_block_3:; @@ -5701,23 +5679,23 @@ static nav__5223_39 mem_Allocator_allocBytesWithAlignment__anon_4113__5223(struc return t18; } -static nav__4232_38 io_Reader_read__4232(struct io_Reader__2450 const a0, nav__4232_41 const a1) { - struct io_Reader__2450 const *t1; - nav__4232_38 (*const *t2)(void const *, nav__4232_41); - nav__4232_38 (*t3)(void const *, nav__4232_41); +static nav__4230_38 io_Reader_read__4230(struct io_Reader__2439 const a0, nav__4230_41 const a1) { + struct io_Reader__2439 const *t1; + nav__4230_38 (*const *t2)(void const *, nav__4230_41); + nav__4230_38 (*t3)(void const *, nav__4230_41); void const *t4; - nav__4232_38 t5; - struct io_Reader__2450 t0; + nav__4230_38 t5; + struct io_Reader__2439 t0; t0 = a0; - t1 = (struct io_Reader__2450 const *)&t0; - t2 = (nav__4232_38 (*const *)(void const *, nav__4232_41))&t1->readFn; + t1 = (struct io_Reader__2439 const *)&t0; + t2 = (nav__4230_38 (*const *)(void const *, nav__4230_41))&t1->readFn; t3 = (*t2); t4 = a0.context; t5 = t3(t4, a1); return t5; } -static uintptr_t os_linux_x86_64_syscall4__4600(uintptr_t const a0, uintptr_t const a1, uintptr_t const a2, uintptr_t const a3, uintptr_t const a4) { +static uintptr_t os_linux_x86_64_syscall4__4598(uintptr_t const a0, uintptr_t const a1, uintptr_t const a2, uintptr_t const a3, uintptr_t const a4) { uintptr_t t0; uintptr_t t1; t0 = a0; @@ -5733,13 +5711,13 @@ static uintptr_t os_linux_x86_64_syscall4__4600(uintptr_t const a0, uintptr_t co return t1; } -static nav__5245_39 mem_sliceAsBytes__anon_4629__5245(nav__5245_39 const a0) { +static nav__5243_39 mem_sliceAsBytes__anon_4546__5243(nav__5243_39 const a0) { uintptr_t t0; uint64_t t1; uint8_t const *t4; uint8_t const *t5; uint8_t const *const *t6; - nav__5245_39 t7; + nav__5243_39 t7; bool t2; bool t3; t0 = a0.len; @@ -5754,7 +5732,7 @@ static nav__5245_39 mem_sliceAsBytes__anon_4629__5245(nav__5245_39 const a0) { zig_block_1:; if (t3) { - return (nav__5245_39){(uint8_t const *)((void const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),(uintptr_t)0ul}; + return (nav__5243_39){(uint8_t const *)((void const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),(uintptr_t)0ul}; } goto zig_block_0; @@ -5769,7 +5747,7 @@ static nav__5245_39 mem_sliceAsBytes__anon_4629__5245(nav__5245_39 const a0) { if (t3) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t0); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t0); zig_unreachable(); zig_block_2:; @@ -5777,7 +5755,7 @@ static nav__5245_39 mem_sliceAsBytes__anon_4629__5245(nav__5245_39 const a0) { if (t3) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t0); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t0); zig_unreachable(); zig_block_3:; @@ -5786,44 +5764,44 @@ static nav__5245_39 mem_sliceAsBytes__anon_4629__5245(nav__5245_39 const a0) { return t7; } -static uint32_t Thread_getCurrentId__4305(void) { +static uint32_t Thread_getCurrentId__4303(void) { uint32_t t0; - t0 = Thread_PosixThreadImpl_getCurrentId__4574(); + t0 = Thread_PosixThreadImpl_getCurrentId__4572(); return t0; } -static void Thread_Mutex_lock__4746(struct Thread_Mutex__3308 *const a0) { - struct Thread_Mutex__3308 *const *t1; - struct Thread_Mutex__3308 *t2; - struct Thread_Mutex__3308 *t0; - struct Thread_Mutex_DebugImpl__3323 *t3; - struct Thread_Mutex_DebugImpl__3323 *t4; - struct Thread_Mutex_DebugImpl__3323 *const *t5; - struct atomic_Value_28u32_29__3290 *t7; - struct atomic_Value_28u32_29__3290 *t16; - struct atomic_Value_28u32_29__3290 const *t8; - struct atomic_Value_28u32_29__3290 const *t9; - struct atomic_Value_28u32_29__3290 const *const *t10; +static void Thread_Mutex_lock__4744(struct Thread_Mutex__3251 *const a0) { + struct Thread_Mutex__3251 *const *t1; + struct Thread_Mutex__3251 *t2; + struct Thread_Mutex__3251 *t0; + struct Thread_Mutex_DebugImpl__3266 *t3; + struct Thread_Mutex_DebugImpl__3266 *t4; + struct Thread_Mutex_DebugImpl__3266 *const *t5; + struct atomic_Value_28u32_29__3233 *t7; + struct atomic_Value_28u32_29__3233 *t16; + struct atomic_Value_28u32_29__3233 const *t8; + struct atomic_Value_28u32_29__3233 const *t9; + struct atomic_Value_28u32_29__3233 const *const *t10; uint32_t const *t11; - struct Thread_Mutex_FutexImpl__3338 *t15; - struct atomic_Value_28u32_29__3290 *const *t17; + struct Thread_Mutex_FutexImpl__3281 *t15; + struct atomic_Value_28u32_29__3233 *const *t17; uint32_t *t18; uint32_t t6; uint32_t t12; bool t13; bool t14; t0 = a0; - t1 = (struct Thread_Mutex__3308 *const *)&t0; + t1 = (struct Thread_Mutex__3251 *const *)&t0; t2 = (*t1); - t3 = (struct Thread_Mutex_DebugImpl__3323 *)&t2->impl; + t3 = (struct Thread_Mutex_DebugImpl__3266 *)&t2->impl; t4 = t3; - t5 = (struct Thread_Mutex_DebugImpl__3323 *const *)&t4; - t6 = Thread_getCurrentId__4305(); + t5 = (struct Thread_Mutex_DebugImpl__3266 *const *)&t4; + t6 = Thread_getCurrentId__4303(); t3 = (*t5); - t7 = (struct atomic_Value_28u32_29__3290 *)&t3->locking_thread; - t8 = (struct atomic_Value_28u32_29__3290 const *)t7; + t7 = (struct atomic_Value_28u32_29__3233 *)&t3->locking_thread; + t8 = (struct atomic_Value_28u32_29__3233 const *)t7; t9 = t8; - t10 = (struct atomic_Value_28u32_29__3290 const *const *)&t9; + t10 = (struct atomic_Value_28u32_29__3233 const *const *)&t9; t8 = (*t10); t11 = (uint32_t const *)&t8->raw; zig_atomic_load(t12, (zig_atomic(uint32_t) *)t11, zig_memory_order_relaxed, u32, uint32_t); @@ -5838,29 +5816,29 @@ static void Thread_Mutex_lock__4746(struct Thread_Mutex__3308 *const a0) { zig_block_1:; if (t14) { - debug_no_panic_call__4093((nav__4746_56){(uint8_t const *)&__anon_5046,(uintptr_t)17ul}, (nav__4746_58){(uintptr_t)0xaaaaaaaaaaaaaaaaul,true}); + debug_no_panic_call__4091((nav__4744_56){(uint8_t const *)&__anon_4963,(uintptr_t)17ul}, (nav__4744_58){(uintptr_t)0xaaaaaaaaaaaaaaaaul,true}); zig_unreachable(); } goto zig_block_0; zig_block_0:; t3 = (*t5); - t15 = (struct Thread_Mutex_FutexImpl__3338 *)&t3->impl; - Thread_Mutex_FutexImpl_lock__4774(t15); + t15 = (struct Thread_Mutex_FutexImpl__3281 *)&t3->impl; + Thread_Mutex_FutexImpl_lock__4772(t15); t3 = (*t5); - t7 = (struct atomic_Value_28u32_29__3290 *)&t3->locking_thread; + t7 = (struct atomic_Value_28u32_29__3233 *)&t3->locking_thread; t16 = t7; - t17 = (struct atomic_Value_28u32_29__3290 *const *)&t16; + t17 = (struct atomic_Value_28u32_29__3233 *const *)&t16; t7 = (*t17); t18 = (uint32_t *)&t7->raw; zig_atomic_store((zig_atomic(uint32_t) *)t18, t6, zig_memory_order_relaxed, u32, uint32_t); return; } -static uint16_t Progress_write__4387(nav__4387_39 const a0) { +static uint16_t Progress_write__4385(nav__4385_39 const a0) { struct fs_File__546 t0; uint16_t t1; - t0 = (*&(((struct Progress__2779 *)&Progress_global_progress__4343))->terminal); + t0 = (*&(((struct Progress__2767 *)&Progress_global_progress__4341))->terminal); t1 = fs_File_writeAll__1144(t0, a0); if (t1) { return t1; @@ -5868,7 +5846,7 @@ static uint16_t Progress_write__4387(nav__4387_39 const a0) { return 0; } -static uint16_t posix_errno__anon_4692__5247(intptr_t const a0) { +static uint16_t posix_errno__anon_4609__5245(intptr_t const a0) { int64_t t1; int *t3; int t4; @@ -5889,7 +5867,7 @@ static uint16_t posix_errno__anon_4692__5247(intptr_t const a0) { if (t2) { goto zig_block_1; } - debug_no_panic_invalidEnumValue__4115(); + debug_no_panic_invalidEnumValue__4113(); zig_unreachable(); zig_block_1:; @@ -5904,43 +5882,43 @@ static uint16_t posix_errno__anon_4692__5247(intptr_t const a0) { return t0; } -static zig_cold zig_noreturn void debug_no_panic_negativeToUnsigned__4106(void) { +static zig_cold zig_noreturn void debug_no_panic_negativeToUnsigned__4104(void) { zig_trap(); } -static nav__3827_38 io_Writer_write__3827(struct io_Writer__1905 const a0, nav__3827_41 const a1) { - struct io_Writer__1905 const *t1; - nav__3827_38 (*const *t2)(void const *, nav__3827_41); - nav__3827_38 (*t3)(void const *, nav__3827_41); +static nav__3825_38 io_Writer_write__3825(struct io_Writer__1950 const a0, nav__3825_41 const a1) { + struct io_Writer__1950 const *t1; + nav__3825_38 (*const *t2)(void const *, nav__3825_41); + nav__3825_38 (*t3)(void const *, nav__3825_41); void const *t4; - nav__3827_38 t5; - struct io_Writer__1905 t0; + nav__3825_38 t5; + struct io_Writer__1950 t0; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; - t2 = (nav__3827_38 (*const *)(void const *, nav__3827_41))&t1->writeFn; + t1 = (struct io_Writer__1950 const *)&t0; + t2 = (nav__3825_38 (*const *)(void const *, nav__3825_41))&t1->writeFn; t3 = (*t2); t4 = a0.context; t5 = t3(t4, a1); return t5; } -static nav__4789_38 unicode_utf8ByteSequenceLength__4789(uint8_t const a0) { - nav__4789_38 t0; +static nav__4787_38 unicode_utf8ByteSequenceLength__4787(uint8_t const a0) { + nav__4787_38 t0; switch (a0) { default: if ((a0 >= UINT8_C(0) && a0 <= UINT8_C(127))) { - t0 = (nav__4789_38){0,UINT8_C(1)}; + t0 = (nav__4787_38){0,UINT8_C(1)}; goto zig_block_0; }if ((a0 >= UINT8_C(192) && a0 <= UINT8_C(223))) { - t0 = (nav__4789_38){0,UINT8_C(2)}; + t0 = (nav__4787_38){0,UINT8_C(2)}; goto zig_block_0; }if ((a0 >= UINT8_C(224) && a0 <= UINT8_C(239))) { - t0 = (nav__4789_38){0,UINT8_C(3)}; + t0 = (nav__4787_38){0,UINT8_C(3)}; goto zig_block_0; }if ((a0 >= UINT8_C(240) && a0 <= UINT8_C(247))) { - t0 = (nav__4789_38){0,UINT8_C(4)}; + t0 = (nav__4787_38){0,UINT8_C(4)}; goto zig_block_0; }{ - t0 = (nav__4789_38){zig_error_Utf8InvalidStartByte,UINT8_C(0x2)}; + t0 = (nav__4787_38){zig_error_Utf8InvalidStartByte,UINT8_C(0x2)}; goto zig_block_0; } } @@ -5949,8 +5927,8 @@ static nav__4789_38 unicode_utf8ByteSequenceLength__4789(uint8_t const a0) { return t0; } -static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { - nav__4805_40 const *t1; +static nav__4803_38 unicode_utf8CountCodepoints__4803(nav__4803_40 const a0) { + nav__4803_40 const *t1; uintptr_t t4; uintptr_t t5; uintptr_t t19; @@ -5959,21 +5937,21 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { uintptr_t t3; uint64_t t6; uint64_t t7; - nav__4805_46 t9; - nav__4805_40 t11; - nav__4805_40 t0; + nav__4803_46 t9; + nav__4803_40 t11; + nav__4803_40 t0; uint8_t const *t12; uint8_t const (*t13)[8]; - nav__4805_38 t17; - nav__4805_52 t21; - nav__4805_50 t15; + nav__4803_38 t17; + nav__4803_52 t21; + nav__4803_50 t15; uint16_t t16; bool t8; uint8_t t10; uint8_t t18; uint8_t t14[8]; t0 = a0; - t1 = (nav__4805_40 const *)&t0; + t1 = (nav__4803_40 const *)&t0; t2 = (uintptr_t)0ul; t3 = (uintptr_t)0ul; zig_loop_9: @@ -5991,7 +5969,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_4; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_4:; @@ -6012,7 +5990,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_5; } - debug_no_panic_outOfBounds__4096(t4, t5); + debug_no_panic_outOfBounds__4094(t4, t5); zig_unreachable(); zig_block_5:; @@ -6035,7 +6013,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_7; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_7:; @@ -6048,7 +6026,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_8; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_8:; @@ -6074,12 +6052,12 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_10; } - debug_no_panic_outOfBounds__4096(t4, t5); + debug_no_panic_outOfBounds__4094(t4, t5); zig_unreachable(); zig_block_10:; t10 = a0.ptr[t4]; - t15 = unicode_utf8ByteSequenceLength__4789(t10); + t15 = unicode_utf8ByteSequenceLength__4787(t10); if (t15.error) { t16 = t15.error; t17.payload = (uintptr_t)0xaaaaaaaaaaaaaaaaul; @@ -6095,7 +6073,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_12; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_12:; @@ -6105,7 +6083,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { t7 = t4; t8 = t6 > t7; if (t8) { - return (nav__4805_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_TruncatedInput}; + return (nav__4803_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_TruncatedInput}; } goto zig_block_11; @@ -6127,7 +6105,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_14; } - debug_no_panic_outOfBounds__4096(t5, t20); + debug_no_panic_outOfBounds__4094(t5, t20); zig_unreachable(); zig_block_14:; @@ -6135,13 +6113,13 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_15; } - debug_no_panic_outOfBounds__4096(t4, t5); + debug_no_panic_outOfBounds__4094(t4, t5); zig_unreachable(); zig_block_15:; t11.ptr = t12; t11.len = t19; - t21 = unicode_utf8Decode__4795(t11); + t21 = unicode_utf8Decode__4793(t11); if (t21.error) { t16 = t21.error; t17.payload = (uintptr_t)0xaaaaaaaaaaaaaaaaul; @@ -6161,7 +6139,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_16; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_16:; @@ -6174,7 +6152,7 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { if (t8) { goto zig_block_17; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_17:; @@ -6199,36 +6177,36 @@ static nav__4805_38 unicode_utf8CountCodepoints__4805(nav__4805_40 const a0) { return t17; } -static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt_FormatOptions__3815 const a1, struct io_Writer__1905 const a2) { - struct io_Writer__1905 const *t1; - nav__5248_44 t2; +static uint16_t fmt_formatBuf__anon_4737__5246(nav__5246_39 const a0, struct fmt_FormatOptions__3758 const a1, struct io_Writer__1950 const a2) { + struct io_Writer__1950 const *t1; + nav__5246_44 t2; uintptr_t t4; uintptr_t t5; uintptr_t t7; - nav__5248_48 t6; + nav__5246_48 t6; uint64_t t8; uint64_t t9; - nav__5248_55 t10; - struct io_Writer__1905 t12; - struct io_Writer__1905 t0; - nav__5248_59 t17; - nav__5248_39 t19; - nav__5248_39 t21; + nav__5246_55 t10; + struct io_Writer__1950 t12; + struct io_Writer__1950 t0; + nav__5246_59 t17; + nav__5246_39 t19; + nav__5246_39 t21; uint8_t *t20; uint32_t t16; uint16_t t13; uint16_t t14; - nav__5248_62 t18; + nav__5246_62 t18; bool t3; uint8_t t11; uint8_t t15[4]; t0 = a2; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = a1.width; t3 = t2.is_null != true; if (t3) { t4 = t2.payload; - t6 = unicode_utf8CountCodepoints__4805(a0); + t6 = unicode_utf8CountCodepoints__4803(a0); t3 = t6.error == UINT16_C(0); if (t3) { t7 = t6.payload; @@ -6250,7 +6228,7 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt if (t3) { goto zig_block_3; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_3:; @@ -6266,7 +6244,7 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt t3 = t9 == UINT64_C(0); if (t3) { t12 = (*t1); - t13 = io_Writer_writeAll__3828(t12, a0); + t13 = io_Writer_writeAll__3826(t12, a0); memcpy(&t14, &t13, sizeof(uint16_t)); return t14; } @@ -6277,7 +6255,7 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt t16 = a1.fill; t17.ptr = &t15[(uintptr_t)0ul]; t17.len = (uintptr_t)4ul; - t18 = unicode_utf8Encode__4790(t16, t17); + t18 = unicode_utf8Encode__4788(t16, t17); t3 = t18.error == UINT16_C(0); if (t3) { t11 = t18.payload; @@ -6288,7 +6266,7 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt if (t3) { goto zig_block_6; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t5); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t5); zig_unreachable(); zig_block_6:; @@ -6296,7 +6274,7 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt if (t3) { goto zig_block_7; } - debug_no_panic_outOfBounds__4096(t5, (uintptr_t)4ul); + debug_no_panic_outOfBounds__4094(t5, (uintptr_t)4ul); zig_unreachable(); zig_block_7:; @@ -6304,13 +6282,13 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt if (t3) { goto zig_block_8; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t5); zig_unreachable(); zig_block_8:; t17.ptr = t20; t17.len = t5; - memcpy(&t21, &t17, sizeof(nav__5248_39)); + memcpy(&t21, &t17, sizeof(nav__5246_39)); t19 = t21; goto zig_block_5; @@ -6319,11 +6297,11 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt switch (t14) { case zig_error_Utf8CannotEncodeSurrogateHalf: case zig_error_CodepointTooLarge: { - t19 = (nav__5248_39){(uint8_t const *)&__anon_5154,(uintptr_t)3ul}; + t19 = (nav__5246_39){(uint8_t const *)&__anon_5071,(uintptr_t)3ul}; goto zig_block_5; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -6333,12 +6311,12 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt switch (t11) { case UINT8_C(0): { t12 = (*t1); - t14 = io_Writer_writeAll__3828(t12, a0); + t14 = io_Writer_writeAll__3826(t12, a0); if (t14) { return t14; } t12 = (*t1); - t14 = io_Writer_writeBytesNTimes__3832(t12, t19, t7); + t14 = io_Writer_writeBytesNTimes__3830(t12, t19, t7); if (t14) { return t14; } @@ -6352,24 +6330,24 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt if (t3) { goto zig_block_11; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_11:; t7 = t10.f0; t7 = t7 / (uintptr_t)2ul; t12 = (*t1); - t14 = io_Writer_writeBytesNTimes__3832(t12, t19, t5); + t14 = io_Writer_writeBytesNTimes__3830(t12, t19, t5); if (t14) { return t14; } t12 = (*t1); - t14 = io_Writer_writeAll__3828(t12, a0); + t14 = io_Writer_writeAll__3826(t12, a0); if (t14) { return t14; } t12 = (*t1); - t14 = io_Writer_writeBytesNTimes__3832(t12, t19, t7); + t14 = io_Writer_writeBytesNTimes__3830(t12, t19, t7); if (t14) { return t14; } @@ -6377,19 +6355,19 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt } case UINT8_C(2): { t12 = (*t1); - t14 = io_Writer_writeBytesNTimes__3832(t12, t19, t7); + t14 = io_Writer_writeBytesNTimes__3830(t12, t19, t7); if (t14) { return t14; } t12 = (*t1); - t14 = io_Writer_writeAll__3828(t12, a0); + t14 = io_Writer_writeAll__3826(t12, a0); if (t14) { return t14; } goto zig_block_10; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -6398,7 +6376,7 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt goto zig_block_0; } t12 = (*t1); - t14 = io_Writer_writeAll__3828(t12, a0); + t14 = io_Writer_writeAll__3826(t12, a0); if (t14) { return t14; } @@ -6408,58 +6386,58 @@ static uint16_t fmt_formatBuf__anon_4820__5248(nav__5248_39 const a0, struct fmt return 0; } -static void Thread_Mutex_unlock__4747(struct Thread_Mutex__3308 *const a0) { - struct Thread_Mutex__3308 *const *t1; - struct Thread_Mutex__3308 *t2; - struct Thread_Mutex__3308 *t0; - struct Thread_Mutex_DebugImpl__3323 *t3; - struct Thread_Mutex_DebugImpl__3323 *t4; - struct Thread_Mutex_DebugImpl__3323 *const *t5; - struct atomic_Value_28u32_29__3290 *t6; - struct atomic_Value_28u32_29__3290 *t14; - struct atomic_Value_28u32_29__3290 const *t7; - struct atomic_Value_28u32_29__3290 const *t8; - struct atomic_Value_28u32_29__3290 const *const *t9; +static void Thread_Mutex_unlock__4745(struct Thread_Mutex__3251 *const a0) { + struct Thread_Mutex__3251 *const *t1; + struct Thread_Mutex__3251 *t2; + struct Thread_Mutex__3251 *t0; + struct Thread_Mutex_DebugImpl__3266 *t3; + struct Thread_Mutex_DebugImpl__3266 *t4; + struct Thread_Mutex_DebugImpl__3266 *const *t5; + struct atomic_Value_28u32_29__3233 *t6; + struct atomic_Value_28u32_29__3233 *t14; + struct atomic_Value_28u32_29__3233 const *t7; + struct atomic_Value_28u32_29__3233 const *t8; + struct atomic_Value_28u32_29__3233 const *const *t9; uint32_t const *t10; - struct atomic_Value_28u32_29__3290 *const *t15; + struct atomic_Value_28u32_29__3233 *const *t15; uint32_t *t16; - struct Thread_Mutex_FutexImpl__3338 *t17; + struct Thread_Mutex_FutexImpl__3281 *t17; uint32_t t11; uint32_t t12; bool t13; t0 = a0; - t1 = (struct Thread_Mutex__3308 *const *)&t0; + t1 = (struct Thread_Mutex__3251 *const *)&t0; t2 = (*t1); - t3 = (struct Thread_Mutex_DebugImpl__3323 *)&t2->impl; + t3 = (struct Thread_Mutex_DebugImpl__3266 *)&t2->impl; t4 = t3; - t5 = (struct Thread_Mutex_DebugImpl__3323 *const *)&t4; + t5 = (struct Thread_Mutex_DebugImpl__3266 *const *)&t4; t3 = (*t5); - t6 = (struct atomic_Value_28u32_29__3290 *)&t3->locking_thread; - t7 = (struct atomic_Value_28u32_29__3290 const *)t6; + t6 = (struct atomic_Value_28u32_29__3233 *)&t3->locking_thread; + t7 = (struct atomic_Value_28u32_29__3233 const *)t6; t8 = t7; - t9 = (struct atomic_Value_28u32_29__3290 const *const *)&t8; + t9 = (struct atomic_Value_28u32_29__3233 const *const *)&t8; t7 = (*t9); t10 = (uint32_t const *)&t7->raw; zig_atomic_load(t11, (zig_atomic(uint32_t) *)t10, zig_memory_order_relaxed, u32, uint32_t); - t12 = Thread_getCurrentId__4305(); + t12 = Thread_getCurrentId__4303(); t13 = t11 == t12; debug_assert__179(t13); t3 = (*t5); - t6 = (struct atomic_Value_28u32_29__3290 *)&t3->locking_thread; + t6 = (struct atomic_Value_28u32_29__3233 *)&t3->locking_thread; t14 = t6; - t15 = (struct atomic_Value_28u32_29__3290 *const *)&t14; + t15 = (struct atomic_Value_28u32_29__3233 *const *)&t14; t6 = (*t15); t16 = (uint32_t *)&t6->raw; t12 = UINT32_C(0); zig_atomic_store((zig_atomic(uint32_t) *)t16, t12, zig_memory_order_relaxed, u32, uint32_t); t3 = (*t5); - t17 = (struct Thread_Mutex_FutexImpl__3338 *)&t3->impl; - Thread_Mutex_FutexImpl_unlock__4777(t17); + t17 = (struct Thread_Mutex_FutexImpl__3281 *)&t3->impl; + Thread_Mutex_FutexImpl_unlock__4775(t17); return; } -static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, uintptr_t const a1, uint8_t const a2) { - nav__5249_40 const *t1; +static nav__5247_38 mem_indexOfScalarPos__anon_4748__5247(nav__5247_40 const a0, uintptr_t const a1, uint8_t const a2) { + nav__5247_40 const *t1; uintptr_t t2; uintptr_t t9; uintptr_t t27; @@ -6468,12 +6446,12 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, uintptr_t t26; uint64_t t3; uint64_t t4; - nav__5249_46 t7; - nav__5249_40 t11; - nav__5249_40 t0; + nav__5247_46 t7; + nav__5247_40 t11; + nav__5247_40 t0; uint8_t const *t12; uint8_t const (*t13)[32]; - nav__5249_38 t19; + nav__5247_38 t19; uint8_t const (*t21)[16]; bool t5; uint8_t t8; @@ -6482,27 +6460,27 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, uint8_t t15[32]; uint8_t t14[32]; bool t16[32]; - nav__5249_52 t17; - nav__5249_54 t18; + nav__5247_52 t17; + nav__5247_54 t18; uint8_t t20[16]; uint8_t t23[16]; uint8_t t22[16]; bool t24[16]; - nav__5249_60 t25; + nav__5247_60 t25; t0 = a0; - t1 = (nav__5249_40 const *)&t0; + t1 = (nav__5247_40 const *)&t0; t2 = a0.len; t3 = a1; t4 = t2; t5 = t3 >= t4; if (t5) { - return (nav__5249_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,true}; + return (nav__5247_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,true}; } goto zig_block_0; zig_block_0:; t6 = a1; - t5 = math_isPowerOfTwo__anon_5177__5258(); + t5 = math_isPowerOfTwo__anon_5094__5256(); if (t5) { t2 = t6; t7.f1 = zig_addo_u64(&t7.f0, t2, (uintptr_t)64ul, UINT8_C(64)); @@ -6511,7 +6489,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_3; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_3:; @@ -6536,7 +6514,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_5; } - debug_no_panic_outOfBounds__4096(t9, t2); + debug_no_panic_outOfBounds__4094(t9, t2); zig_unreachable(); zig_block_5:; @@ -6551,13 +6529,13 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, } if (t5) { t9 = t6; - memcpy(t17.array, t16, sizeof(nav__5249_52)); - t18 = simd_firstTrue__anon_5206__5265(t17); + memcpy(t17.array, t16, sizeof(nav__5247_52)); + t18 = simd_firstTrue__anon_5123__5263(t17); t5 = t18.is_null != true; if (t5) { goto zig_block_7; } - debug_no_panic_unwrapNull__4101(); + debug_no_panic_unwrapNull__4099(); zig_unreachable(); zig_block_7:; @@ -6569,7 +6547,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_8; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_8:; @@ -6588,7 +6566,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_9; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_9:; @@ -6605,7 +6583,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_10; } - debug_no_panic_outOfBounds__4096(t9, t2); + debug_no_panic_outOfBounds__4094(t9, t2); zig_unreachable(); zig_block_10:; @@ -6620,13 +6598,13 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, } if (t5) { t9 = t6; - memcpy(t17.array, t16, sizeof(nav__5249_52)); - t18 = simd_firstTrue__anon_5206__5265(t17); + memcpy(t17.array, t16, sizeof(nav__5247_52)); + t18 = simd_firstTrue__anon_5123__5263(t17); t5 = t18.is_null != true; if (t5) { goto zig_block_12; } - debug_no_panic_unwrapNull__4101(); + debug_no_panic_unwrapNull__4099(); zig_unreachable(); zig_block_12:; @@ -6638,7 +6616,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_13; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_13:; @@ -6657,7 +6635,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_14; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_14:; @@ -6670,7 +6648,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_16; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_16:; @@ -6700,7 +6678,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_18; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_18:; @@ -6724,7 +6702,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_19; } - debug_no_panic_outOfBounds__4096(t2, t9); + debug_no_panic_outOfBounds__4094(t2, t9); zig_unreachable(); zig_block_19:; @@ -6739,13 +6717,13 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, } if (t5) { t9 = t6; - memcpy(t17.array, t16, sizeof(nav__5249_52)); - t18 = simd_firstTrue__anon_5206__5265(t17); + memcpy(t17.array, t16, sizeof(nav__5247_52)); + t18 = simd_firstTrue__anon_5123__5263(t17); t5 = t18.is_null != true; if (t5) { goto zig_block_21; } - debug_no_panic_unwrapNull__4101(); + debug_no_panic_unwrapNull__4099(); zig_unreachable(); zig_block_21:; @@ -6757,7 +6735,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_22; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_22:; @@ -6776,7 +6754,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_23; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_23:; @@ -6794,7 +6772,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_25; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_25:; @@ -6818,7 +6796,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_26; } - debug_no_panic_outOfBounds__4096(t2, t9); + debug_no_panic_outOfBounds__4094(t2, t9); zig_unreachable(); zig_block_26:; @@ -6833,13 +6811,13 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, } if (t5) { t9 = t6; - memcpy(t25.array, t24, sizeof(nav__5249_60)); - t18 = simd_firstTrue__anon_5225__5266(t25); + memcpy(t25.array, t24, sizeof(nav__5247_60)); + t18 = simd_firstTrue__anon_5142__5264(t25); t5 = t18.is_null != true; if (t5) { goto zig_block_28; } - debug_no_panic_unwrapNull__4101(); + debug_no_panic_unwrapNull__4099(); zig_unreachable(); zig_block_28:; @@ -6851,7 +6829,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_29; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_29:; @@ -6870,7 +6848,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_30; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_30:; @@ -6896,7 +6874,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_31; } - debug_no_panic_startGreaterThanEnd__4097(t9, t2); + debug_no_panic_startGreaterThanEnd__4095(t9, t2); zig_unreachable(); zig_block_31:; @@ -6906,7 +6884,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_32; } - debug_no_panic_outOfBounds__4096(t2, t28); + debug_no_panic_outOfBounds__4094(t2, t28); zig_unreachable(); zig_block_32:; @@ -6914,7 +6892,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_33; } - debug_no_panic_outOfBounds__4096(t9, t2); + debug_no_panic_outOfBounds__4094(t9, t2); zig_unreachable(); zig_block_33:; @@ -6935,7 +6913,7 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, if (t5) { goto zig_block_36; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_36:; @@ -6959,57 +6937,57 @@ static nav__5249_38 mem_indexOfScalarPos__anon_4831__5249(nav__5249_40 const a0, goto zig_loop_374; zig_block_34:; - return (nav__5249_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,true}; + return (nav__5247_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,true}; } -static uint16_t bincode_serializeInt__anon_4953__5253(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, uint32_t const a1) { - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *t1; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *t4; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t2; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t0; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t3; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *const *t5; +static uint16_t bincode_serializeInt__anon_4870__5251(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, uint32_t const a1) { + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *t1; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *t4; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t2; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t0; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t3; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *const *t5; void const **t7; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t8; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t8; void const *t9; - nav__5253_48 (**t10)(void const *, nav__5253_50); - struct io_Writer__1905 t11; - struct io_Writer__1905 t6; - struct io_Writer__1905 t12; - struct io_Writer__1905 t14; - struct io_Writer__1905 const *t13; - nav__5253_50 t17; + nav__5251_48 (**t10)(void const *, nav__5251_50); + struct io_Writer__1950 t11; + struct io_Writer__1950 t6; + struct io_Writer__1950 t12; + struct io_Writer__1950 t14; + struct io_Writer__1950 const *t13; + nav__5251_50 t17; uint16_t t18; uint16_t t19; uint8_t t16[4]; uint8_t t15[4]; t0 = a0; - t1 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *)&t0; + t1 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *)&t0; t2 = (*t1); t3 = t2; - t1 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *)&t3; + t1 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *)&t3; t4 = t1; - t5 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *const *)&t4; + t5 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *const *)&t4; t7 = (void const **)&t6.context; t1 = (*t5); - t8 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t1->context; + t8 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t1->context; t9 = (void const *)t8; (*t7) = t9; - t10 = (nav__5253_48 (**)(void const *, nav__5253_50))&t6.writeFn; - (*t10) = &io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4090; + t10 = (nav__5251_48 (**)(void const *, nav__5251_50))&t6.writeFn; + (*t10) = &io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4088; t11 = t6; t12 = t11; - t13 = (struct io_Writer__1905 const *)&t12; + t13 = (struct io_Writer__1950 const *)&t12; t11 = (*t13); t14 = t11; - t13 = (struct io_Writer__1905 const *)&t14; + t13 = (struct io_Writer__1950 const *)&t14; memset(&t15, 0xaa, sizeof(uint8_t[4])); memcpy(&t16, &a1, sizeof(uint8_t[4])); memcpy((char *)&t15, t16, sizeof(uint8_t[4])); t11 = (*t13); t17.ptr = &t15[(uintptr_t)0ul]; t17.len = (uintptr_t)4ul; - t18 = io_Writer_writeAll__3828(t11, t17); + t18 = io_Writer_writeAll__3826(t11, t17); memcpy(&t19, &t18, sizeof(uint16_t)); if (t19) { return t19; @@ -7017,58 +6995,58 @@ static uint16_t bincode_serializeInt__anon_4953__5253(struct io_GenericWriter_28 return 0; } -static uint16_t bincode_serializeStruct__anon_4958__5254(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, struct shared_Command__struct_1962__1962 const a1) { - nav__5254_45 t2; +static uint16_t bincode_serializeStruct__anon_4875__5252(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, struct shared_Command__struct_2007__2007 const a1) { + nav__5252_45 t2; uint32_t t0; uint16_t t1; t0 = a1.pid; - t1 = bincode_serialize__anon_4076__5215(a0, t0); + t1 = bincode_serialize__anon_3993__5213(a0, t0); if (t1) { return t1; } t2 = a1.uri; - t1 = bincode_serialize__anon_5255__5267(a0, t2); + t1 = bincode_serialize__anon_5172__5265(a0, t2); if (t1) { return t1; } return 0; } -static uint16_t bincode_serializeStruct__anon_4959__5255(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, struct shared_Command__struct_1963__1963 const a1) { - nav__5255_45 t0; +static uint16_t bincode_serializeStruct__anon_4876__5253(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, struct shared_Command__struct_2008__2008 const a1) { + nav__5253_45 t0; uint16_t t1; t0 = a1.name; - t1 = bincode_serialize__anon_5255__5267(a0, t0); + t1 = bincode_serialize__anon_5172__5265(a0, t0); if (t1) { return t1; } t0 = a1.version; - t1 = bincode_serialize__anon_5255__5267(a0, t0); + t1 = bincode_serialize__anon_5172__5265(a0, t0); if (t1) { return t1; } return 0; } -static uint32_t Thread_PosixThreadImpl_getCurrentId__4574(void) { +static uint32_t Thread_PosixThreadImpl_getCurrentId__4572(void) { uint32_t t0; - t0 = Thread_LinuxThreadImpl_getCurrentId__5271(); + t0 = Thread_LinuxThreadImpl_getCurrentId__5269(); return t0; } -static void Thread_Mutex_FutexImpl_lock__4774(struct Thread_Mutex_FutexImpl__3338 *const a0) { - struct Thread_Mutex_FutexImpl__3338 *const *t1; - struct Thread_Mutex_FutexImpl__3338 *t2; - struct Thread_Mutex_FutexImpl__3338 *t0; +static void Thread_Mutex_FutexImpl_lock__4772(struct Thread_Mutex_FutexImpl__3281 *const a0) { + struct Thread_Mutex_FutexImpl__3281 *const *t1; + struct Thread_Mutex_FutexImpl__3281 *t2; + struct Thread_Mutex_FutexImpl__3281 *t0; bool t3; t0 = a0; - t1 = (struct Thread_Mutex_FutexImpl__3338 *const *)&t0; + t1 = (struct Thread_Mutex_FutexImpl__3281 *const *)&t0; t2 = (*t1); - t3 = Thread_Mutex_FutexImpl_tryLock__4775(t2); + t3 = Thread_Mutex_FutexImpl_tryLock__4773(t2); t3 = !t3; if (t3) { t2 = (*t1); - Thread_Mutex_FutexImpl_lockSlow__4776(t2); + Thread_Mutex_FutexImpl_lockSlow__4774(t2); goto zig_block_0; } goto zig_block_0; @@ -7077,29 +7055,29 @@ static void Thread_Mutex_FutexImpl_lock__4774(struct Thread_Mutex_FutexImpl__333 return; } -static nav__4795_38 unicode_utf8Decode__4795(nav__4795_40 const a0) { - nav__4795_40 const *t1; +static nav__4793_38 unicode_utf8Decode__4793(nav__4793_40 const a0) { + nav__4793_40 const *t1; uintptr_t t2; - nav__4795_40 t8; - nav__4795_40 t0; + nav__4793_40 t8; + nav__4793_40 t0; uint8_t const *t9; uint8_t const (*t10)[2]; uint8_t const (*t14)[3]; uint8_t const (*t17)[4]; - nav__4795_38 t3; - nav__4795_38 t7; - nav__4795_38 t13; + nav__4793_38 t3; + nav__4793_38 t7; + nav__4793_38 t13; uint32_t t6; bool t4; uint8_t t5; uint8_t t11[2]; - nav__4795_48 t12; + nav__4793_48 t12; uint8_t t15[3]; - nav__4795_52 t16; + nav__4793_52 t16; uint8_t t18[4]; - nav__4795_56 t19; + nav__4793_56 t19; t0 = a0; - t1 = (nav__4795_40 const *)&t0; + t1 = (nav__4793_40 const *)&t0; t2 = a0.len; switch (t2) { case (uintptr_t)1ul: { @@ -7108,7 +7086,7 @@ static nav__4795_38 unicode_utf8Decode__4795(nav__4795_40 const a0) { if (t4) { goto zig_block_1; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t2); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t2); zig_unreachable(); zig_block_1:; @@ -7129,14 +7107,14 @@ static nav__4795_38 unicode_utf8Decode__4795(nav__4795_40 const a0) { if (t4) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096((uintptr_t)2ul, t2); + debug_no_panic_outOfBounds__4094((uintptr_t)2ul, t2); zig_unreachable(); zig_block_2:; memcpy(t11, (const char *)t10, sizeof(uint8_t[2])); - memcpy(t12.array, t11, sizeof(nav__4795_48)); - t7 = unicode_utf8Decode2__4797(t12); - memcpy(&t13, &t7, sizeof(nav__4795_38)); + memcpy(t12.array, t11, sizeof(nav__4793_48)); + t7 = unicode_utf8Decode2__4795(t12); + memcpy(&t13, &t7, sizeof(nav__4793_38)); t3 = t13; goto zig_block_0; } @@ -7150,14 +7128,14 @@ static nav__4795_38 unicode_utf8Decode__4795(nav__4795_40 const a0) { if (t4) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)3ul, t2); + debug_no_panic_outOfBounds__4094((uintptr_t)3ul, t2); zig_unreachable(); zig_block_3:; memcpy(t15, (const char *)t14, sizeof(uint8_t[3])); - memcpy(t16.array, t15, sizeof(nav__4795_52)); - t13 = unicode_utf8Decode3__4799(t16); - memcpy(&t7, &t13, sizeof(nav__4795_38)); + memcpy(t16.array, t15, sizeof(nav__4793_52)); + t13 = unicode_utf8Decode3__4797(t16); + memcpy(&t7, &t13, sizeof(nav__4793_38)); t3 = t7; goto zig_block_0; } @@ -7171,19 +7149,19 @@ static nav__4795_38 unicode_utf8Decode__4795(nav__4795_40 const a0) { if (t4) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096((uintptr_t)4ul, t2); + debug_no_panic_outOfBounds__4094((uintptr_t)4ul, t2); zig_unreachable(); zig_block_4:; memcpy(t18, (const char *)t17, sizeof(uint8_t[4])); - memcpy(t19.array, t18, sizeof(nav__4795_56)); - t13 = unicode_utf8Decode4__4803(t19); - memcpy(&t7, &t13, sizeof(nav__4795_38)); + memcpy(t19.array, t18, sizeof(nav__4793_56)); + t13 = unicode_utf8Decode4__4801(t19); + memcpy(&t7, &t13, sizeof(nav__4793_38)); t3 = t7; goto zig_block_0; } default: { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } } @@ -7192,56 +7170,56 @@ static nav__4795_38 unicode_utf8Decode__4795(nav__4795_40 const a0) { return t3; } -static nav__4788_38 unicode_utf8CodepointSequenceLength__4788(uint32_t const a0) { +static nav__4786_38 unicode_utf8CodepointSequenceLength__4786(uint32_t const a0) { bool t0; t0 = a0 < UINT32_C(128); if (t0) { - return (nav__4788_38){0,UINT8_C(1)}; + return (nav__4786_38){0,UINT8_C(1)}; } goto zig_block_0; zig_block_0:; t0 = a0 < UINT32_C(2048); if (t0) { - return (nav__4788_38){0,UINT8_C(2)}; + return (nav__4786_38){0,UINT8_C(2)}; } goto zig_block_1; zig_block_1:; t0 = a0 < UINT32_C(65536); if (t0) { - return (nav__4788_38){0,UINT8_C(3)}; + return (nav__4786_38){0,UINT8_C(3)}; } goto zig_block_2; zig_block_2:; t0 = a0 < UINT32_C(1114112); if (t0) { - return (nav__4788_38){0,UINT8_C(4)}; + return (nav__4786_38){0,UINT8_C(4)}; } goto zig_block_3; zig_block_3:; - return (nav__4788_38){zig_error_CodepointTooLarge,UINT8_C(0x2)}; + return (nav__4786_38){zig_error_CodepointTooLarge,UINT8_C(0x2)}; } -static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, nav__5278_40 const a1) { - nav__5278_40 const *t1; +static nav__5276_38 unicode_utf8EncodeImpl__anon_5200__5276(uint32_t const a0, nav__5276_40 const a1) { + nav__5276_40 const *t1; uintptr_t t5; uint64_t t6; uint64_t t7; - nav__5278_40 t9; - nav__5278_40 t0; + nav__5276_40 t9; + nav__5276_40 t0; uint8_t *t10; uint32_t t12; - nav__5278_38 t2; + nav__5276_38 t2; uint16_t t3; uint8_t t4; uint8_t t11; bool t8; t0 = a1; - t1 = (nav__5278_40 const *)&t0; - t2 = unicode_utf8CodepointSequenceLength__4788(a0); + t1 = (nav__5276_40 const *)&t0; + t2 = unicode_utf8CodepointSequenceLength__4786(a0); if (t2.error) { t3 = t2.error; t2.payload = UINT8_C(0x2); @@ -7262,7 +7240,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_1; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t5); zig_unreachable(); zig_block_1:; @@ -7271,7 +7249,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_2; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_2:; @@ -7286,7 +7264,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t5); zig_unreachable(); zig_block_3:; @@ -7296,7 +7274,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_4; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_4:; @@ -7305,7 +7283,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_5; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_5:; @@ -7317,7 +7295,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_6; } - debug_no_panic_outOfBounds__4096((uintptr_t)1ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)1ul, t5); zig_unreachable(); zig_block_6:; @@ -7328,7 +7306,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_7; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_7:; @@ -7337,9 +7315,9 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n goto zig_block_0; } case UINT8_C(3): { - t8 = unicode_isSurrogateCodepoint__4868(a0); + t8 = unicode_isSurrogateCodepoint__4866(a0); if (t8) { - return (nav__5278_38){zig_error_Utf8CannotEncodeSurrogateHalf,UINT8_C(0x2)}; + return (nav__5276_38){zig_error_Utf8CannotEncodeSurrogateHalf,UINT8_C(0x2)}; } goto zig_block_8; @@ -7350,7 +7328,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_9; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t5); zig_unreachable(); zig_block_9:; @@ -7360,7 +7338,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_10; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_10:; @@ -7369,7 +7347,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_11; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_11:; @@ -7381,7 +7359,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_12; } - debug_no_panic_outOfBounds__4096((uintptr_t)1ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)1ul, t5); zig_unreachable(); zig_block_12:; @@ -7391,7 +7369,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_13; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_13:; @@ -7401,7 +7379,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_14; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_14:; @@ -7413,7 +7391,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_15; } - debug_no_panic_outOfBounds__4096((uintptr_t)2ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)2ul, t5); zig_unreachable(); zig_block_15:; @@ -7424,7 +7402,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_16; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_16:; @@ -7439,7 +7417,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_17; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t5); zig_unreachable(); zig_block_17:; @@ -7449,7 +7427,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_18; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_18:; @@ -7458,7 +7436,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_19; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_19:; @@ -7470,7 +7448,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_20; } - debug_no_panic_outOfBounds__4096((uintptr_t)1ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)1ul, t5); zig_unreachable(); zig_block_20:; @@ -7480,7 +7458,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_21; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_21:; @@ -7490,7 +7468,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_22; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_22:; @@ -7502,7 +7480,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_23; } - debug_no_panic_outOfBounds__4096((uintptr_t)2ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)2ul, t5); zig_unreachable(); zig_block_23:; @@ -7512,7 +7490,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_24; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_24:; @@ -7522,7 +7500,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_25; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_25:; @@ -7534,7 +7512,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_26; } - debug_no_panic_outOfBounds__4096((uintptr_t)3ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)3ul, t5); zig_unreachable(); zig_block_26:; @@ -7545,7 +7523,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n if (t8) { goto zig_block_27; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_27:; @@ -7554,7 +7532,7 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n goto zig_block_0; } default: { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } } @@ -7565,28 +7543,28 @@ static nav__5278_38 unicode_utf8EncodeImpl__anon_5283__5278(uint32_t const a0, n return t2; } -static nav__4790_38 unicode_utf8Encode__4790(uint32_t const a0, nav__4790_40 const a1) { - nav__4790_38 t0; - nav__4790_38 t1; - t0 = unicode_utf8EncodeImpl__anon_5283__5278(a0, a1); - memcpy(&t1, &t0, sizeof(nav__4790_38)); +static nav__4788_38 unicode_utf8Encode__4788(uint32_t const a0, nav__4788_40 const a1) { + nav__4788_38 t0; + nav__4788_38 t1; + t0 = unicode_utf8EncodeImpl__anon_5200__5276(a0, a1); + memcpy(&t1, &t0, sizeof(nav__4788_38)); return t1; } -static uint16_t io_Writer_writeBytesNTimes__3832(struct io_Writer__1905 const a0, nav__3832_40 const a1, uintptr_t const a2) { - struct io_Writer__1905 const *t1; +static uint16_t io_Writer_writeBytesNTimes__3830(struct io_Writer__1950 const a0, nav__3830_40 const a1, uintptr_t const a2) { + struct io_Writer__1950 const *t1; uintptr_t t3; uintptr_t t2; uint64_t t4; uint64_t t5; - struct io_Writer__1905 t7; - struct io_Writer__1905 t0; - nav__3832_50 t9; + struct io_Writer__1950 t7; + struct io_Writer__1950 t0; + nav__3830_50 t9; uint16_t t8; bool t6; uint8_t t10; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = (uintptr_t)0ul; zig_loop_9: t3 = t2; @@ -7595,7 +7573,7 @@ static uint16_t io_Writer_writeBytesNTimes__3832(struct io_Writer__1905 const a0 t6 = t4 < t5; if (t6) { t7 = (*t1); - t8 = io_Writer_writeAll__3828(t7, a1); + t8 = io_Writer_writeAll__3826(t7, a1); if (t8) { return t8; } @@ -7606,7 +7584,7 @@ static uint16_t io_Writer_writeBytesNTimes__3832(struct io_Writer__1905 const a0 if (t6) { goto zig_block_2; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_2:; @@ -7623,24 +7601,24 @@ static uint16_t io_Writer_writeBytesNTimes__3832(struct io_Writer__1905 const a0 return 0; } -static void Thread_Mutex_FutexImpl_unlock__4777(struct Thread_Mutex_FutexImpl__3338 *const a0) { - struct Thread_Mutex_FutexImpl__3338 *const *t1; - struct Thread_Mutex_FutexImpl__3338 *t2; - struct Thread_Mutex_FutexImpl__3338 *t0; - struct atomic_Value_28u32_29__3290 *t3; - struct atomic_Value_28u32_29__3290 *t4; - struct atomic_Value_28u32_29__3290 *const *t5; +static void Thread_Mutex_FutexImpl_unlock__4775(struct Thread_Mutex_FutexImpl__3281 *const a0) { + struct Thread_Mutex_FutexImpl__3281 *const *t1; + struct Thread_Mutex_FutexImpl__3281 *t2; + struct Thread_Mutex_FutexImpl__3281 *t0; + struct atomic_Value_28u32_29__3233 *t3; + struct atomic_Value_28u32_29__3233 *t4; + struct atomic_Value_28u32_29__3233 *const *t5; uint32_t *t6; - struct atomic_Value_28u32_29__3290 const *t10; + struct atomic_Value_28u32_29__3233 const *t10; uint32_t t7; uint32_t t8; bool t9; t0 = a0; - t1 = (struct Thread_Mutex_FutexImpl__3338 *const *)&t0; + t1 = (struct Thread_Mutex_FutexImpl__3281 *const *)&t0; t2 = (*t1); - t3 = (struct atomic_Value_28u32_29__3290 *)&t2->state; + t3 = (struct atomic_Value_28u32_29__3233 *)&t2->state; t4 = t3; - t5 = (struct atomic_Value_28u32_29__3290 *const *)&t4; + t5 = (struct atomic_Value_28u32_29__3233 *const *)&t4; t3 = (*t5); t6 = (uint32_t *)&t3->raw; t7 = UINT32_C(0); @@ -7650,9 +7628,9 @@ static void Thread_Mutex_FutexImpl_unlock__4777(struct Thread_Mutex_FutexImpl__3 t9 = t8 == UINT32_C(3); if (t9) { t2 = (*t1); - t3 = (struct atomic_Value_28u32_29__3290 *)&t2->state; - t10 = (struct atomic_Value_28u32_29__3290 const *)t3; - Thread_Futex_wake__5290(t10, UINT32_C(1)); + t3 = (struct atomic_Value_28u32_29__3233 *)&t2->state; + t10 = (struct atomic_Value_28u32_29__3233 const *)t3; + Thread_Futex_wake__5288(t10, UINT32_C(1)); goto zig_block_0; } goto zig_block_0; @@ -7661,26 +7639,26 @@ static void Thread_Mutex_FutexImpl_unlock__4777(struct Thread_Mutex_FutexImpl__3 return; } -static bool math_isPowerOfTwo__anon_5177__5258(void) { +static bool math_isPowerOfTwo__anon_5094__5256(void) { debug_assert__179(true); return true; } -static nav__5265_38 simd_firstTrue__anon_5206__5265(nav__5265_40 const a0) { +static nav__5263_38 simd_firstTrue__anon_5123__5263(nav__5263_40 const a0) { static uint8_t const t2[32] = {UINT8_C(0),UINT8_C(1),UINT8_C(2),UINT8_C(3),UINT8_C(4),UINT8_C(5),UINT8_C(6),UINT8_C(7),UINT8_C(8),UINT8_C(9),UINT8_C(10),UINT8_C(11),UINT8_C(12),UINT8_C(13),UINT8_C(14),UINT8_C(15),UINT8_C(16),UINT8_C(17),UINT8_C(18),UINT8_C(19),UINT8_C(20),UINT8_C(21),UINT8_C(22),UINT8_C(23),UINT8_C(24),UINT8_C(25),UINT8_C(26),UINT8_C(27),UINT8_C(28),UINT8_C(29),UINT8_C(30),UINT8_C(31)}; static uint8_t const t3[32] = {UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31),UINT8_C(31)}; uintptr_t t1; bool t0; uint8_t t4[32]; uint8_t t5; - nav__5265_38 t6; + nav__5263_38 t6; t0 = false; for (t1 = (uintptr_t)0ul; t1 < (uintptr_t)32ul; t1 += (uintptr_t)1ul) { t0 |= a0.array[t1]; } t0 = !t0; if (t0) { - return (nav__5265_38){true,UINT8_C(0xa)}; + return (nav__5263_38){true,UINT8_C(0xa)}; } goto zig_block_0; @@ -7697,25 +7675,25 @@ static nav__5265_38 simd_firstTrue__anon_5206__5265(nav__5265_40 const a0) { return t6; } -static zig_cold zig_noreturn void debug_no_panic_unwrapNull__4101(void) { +static zig_cold zig_noreturn void debug_no_panic_unwrapNull__4099(void) { zig_trap(); } -static nav__5266_38 simd_firstTrue__anon_5225__5266(nav__5266_40 const a0) { +static nav__5264_38 simd_firstTrue__anon_5142__5264(nav__5264_40 const a0) { static uint8_t const t2[16] = {UINT8_C(0),UINT8_C(1),UINT8_C(2),UINT8_C(3),UINT8_C(4),UINT8_C(5),UINT8_C(6),UINT8_C(7),UINT8_C(8),UINT8_C(9),UINT8_C(10),UINT8_C(11),UINT8_C(12),UINT8_C(13),UINT8_C(14),UINT8_C(15)}; static uint8_t const t3[16] = {UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15),UINT8_C(15)}; uintptr_t t1; bool t0; uint8_t t4[16]; uint8_t t5; - nav__5266_38 t6; + nav__5264_38 t6; t0 = false; for (t1 = (uintptr_t)0ul; t1 < (uintptr_t)16ul; t1 += (uintptr_t)1ul) { t0 |= a0.array[t1]; } t0 = !t0; if (t0) { - return (nav__5266_38){true,UINT8_C(0xa)}; + return (nav__5264_38){true,UINT8_C(0xa)}; } goto zig_block_0; @@ -7732,12 +7710,12 @@ static nav__5266_38 simd_firstTrue__anon_5225__5266(nav__5266_40 const a0) { return t6; } -static nav__4090_38 io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4090(void const *const a0, nav__4090_41 const a1) { +static nav__4088_38 io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4088(void const *const a0, nav__4088_41 const a1) { uintptr_t t0; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t2; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t3; - nav__4090_38 t4; - nav__4090_38 t5; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t2; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t3; + nav__4088_38 t4; + nav__4088_38 t5; bool t1; t0 = (uintptr_t)a0; t0 = t0 & (uintptr_t)7ul; @@ -7745,33 +7723,33 @@ static nav__4090_38 io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnul if (t1) { goto zig_block_0; } - debug_no_panic_incorrectAlignment__4103(); + debug_no_panic_incorrectAlignment__4101(); zig_unreachable(); zig_block_0:; - t2 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)a0; + t2 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)a0; t3 = (*t2); - t4 = array_list_ArrayListAligned_28u8_2cnull_29_appendWrite__4011(t3, a1); - memcpy(&t5, &t4, sizeof(nav__4090_38)); + t4 = array_list_ArrayListAligned_28u8_2cnull_29_appendWrite__4009(t3, a1); + memcpy(&t5, &t4, sizeof(nav__4088_38)); return t5; } -static uint16_t bincode_serialize__anon_5255__5267(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, nav__5267_40 const a1) { +static uint16_t bincode_serialize__anon_5172__5265(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, nav__5265_40 const a1) { uint16_t t0; - t0 = bincode_serializePointer__anon_5401__5307(a0, a1); + t0 = bincode_serializePointer__anon_5318__5305(a0, a1); if (t0) { return t0; } return 0; } -static uint32_t Thread_LinuxThreadImpl_getCurrentId__5271(void) { +static uint32_t Thread_LinuxThreadImpl_getCurrentId__5269(void) { uint32_t t0; uint32_t t3; - nav__5271_39 t1; + nav__5269_39 t1; int32_t t4; bool t2; - t1 = (*((nav__5271_39 *)&Thread_LinuxThreadImpl_tls_thread_id__5270)); + t1 = (*((nav__5269_39 *)&Thread_LinuxThreadImpl_tls_thread_id__5268)); t2 = t1.is_null != true; if (t2) { t3 = t1.payload; @@ -7783,35 +7761,35 @@ static uint32_t Thread_LinuxThreadImpl_getCurrentId__5271(void) { t3 = zig_wrap_u32(t3, UINT8_C(32)); t1.is_null = false; t1.payload = t3; - (*((nav__5271_39 *)&Thread_LinuxThreadImpl_tls_thread_id__5270)) = t1; + (*((nav__5269_39 *)&Thread_LinuxThreadImpl_tls_thread_id__5268)) = t1; return t3; zig_block_0:; return t0; } -static bool Thread_Mutex_FutexImpl_tryLock__4775(struct Thread_Mutex_FutexImpl__3338 *const a0) { - struct Thread_Mutex_FutexImpl__3338 *const *t1; - struct Thread_Mutex_FutexImpl__3338 *t2; - struct Thread_Mutex_FutexImpl__3338 *t0; - struct atomic_Value_28u32_29__3290 *t3; - struct atomic_Value_28u32_29__3290 *t4; - struct atomic_Value_28u32_29__3290 *t6; - struct atomic_Value_28u32_29__3290 *const *t5; +static bool Thread_Mutex_FutexImpl_tryLock__4773(struct Thread_Mutex_FutexImpl__3281 *const a0) { + struct Thread_Mutex_FutexImpl__3281 *const *t1; + struct Thread_Mutex_FutexImpl__3281 *t2; + struct Thread_Mutex_FutexImpl__3281 *t0; + struct atomic_Value_28u32_29__3233 *t3; + struct atomic_Value_28u32_29__3233 *t4; + struct atomic_Value_28u32_29__3233 *t6; + struct atomic_Value_28u32_29__3233 *const *t5; uint32_t *t7; uint32_t t8; uint32_t t9; bool t10; uint8_t t11; t0 = a0; - t1 = (struct Thread_Mutex_FutexImpl__3338 *const *)&t0; + t1 = (struct Thread_Mutex_FutexImpl__3281 *const *)&t0; t2 = (*t1); - t3 = (struct atomic_Value_28u32_29__3290 *)&t2->state; + t3 = (struct atomic_Value_28u32_29__3233 *)&t2->state; t4 = t3; - t5 = (struct atomic_Value_28u32_29__3290 *const *)&t4; + t5 = (struct atomic_Value_28u32_29__3233 *const *)&t4; t3 = (*t5); t6 = t3; - t5 = (struct atomic_Value_28u32_29__3290 *const *)&t6; + t5 = (struct atomic_Value_28u32_29__3233 *const *)&t6; t3 = (*t5); t7 = (uint32_t *)&t3->raw; t8 = UINT32_C(1); @@ -7824,37 +7802,37 @@ static bool Thread_Mutex_FutexImpl_tryLock__4775(struct Thread_Mutex_FutexImpl__ return t10; } -static zig_cold void Thread_Mutex_FutexImpl_lockSlow__4776(struct Thread_Mutex_FutexImpl__3338 *const a0) { - struct Thread_Mutex_FutexImpl__3338 *const *t1; - struct Thread_Mutex_FutexImpl__3338 *t2; - struct Thread_Mutex_FutexImpl__3338 *t0; - struct atomic_Value_28u32_29__3290 *t3; - struct atomic_Value_28u32_29__3290 *t10; - struct atomic_Value_28u32_29__3290 const *t4; - struct atomic_Value_28u32_29__3290 const *t5; - struct atomic_Value_28u32_29__3290 const *const *t6; +static zig_cold void Thread_Mutex_FutexImpl_lockSlow__4774(struct Thread_Mutex_FutexImpl__3281 *const a0) { + struct Thread_Mutex_FutexImpl__3281 *const *t1; + struct Thread_Mutex_FutexImpl__3281 *t2; + struct Thread_Mutex_FutexImpl__3281 *t0; + struct atomic_Value_28u32_29__3233 *t3; + struct atomic_Value_28u32_29__3233 *t10; + struct atomic_Value_28u32_29__3233 const *t4; + struct atomic_Value_28u32_29__3233 const *t5; + struct atomic_Value_28u32_29__3233 const *const *t6; uint32_t const *t7; - struct atomic_Value_28u32_29__3290 *const *t11; + struct atomic_Value_28u32_29__3233 *const *t11; uint32_t *t12; uint32_t t8; uint32_t t13; bool t9; t0 = a0; - t1 = (struct Thread_Mutex_FutexImpl__3338 *const *)&t0; + t1 = (struct Thread_Mutex_FutexImpl__3281 *const *)&t0; t2 = (*t1); - t3 = (struct atomic_Value_28u32_29__3290 *)&t2->state; - t4 = (struct atomic_Value_28u32_29__3290 const *)t3; + t3 = (struct atomic_Value_28u32_29__3233 *)&t2->state; + t4 = (struct atomic_Value_28u32_29__3233 const *)t3; t5 = t4; - t6 = (struct atomic_Value_28u32_29__3290 const *const *)&t5; + t6 = (struct atomic_Value_28u32_29__3233 const *const *)&t5; t4 = (*t6); t7 = (uint32_t const *)&t4->raw; zig_atomic_load(t8, (zig_atomic(uint32_t) *)t7, zig_memory_order_relaxed, u32, uint32_t); t9 = t8 == UINT32_C(3); if (t9) { t2 = (*t1); - t3 = (struct atomic_Value_28u32_29__3290 *)&t2->state; - t4 = (struct atomic_Value_28u32_29__3290 const *)t3; - Thread_Futex_wait__5288(t4, UINT32_C(3)); + t3 = (struct atomic_Value_28u32_29__3233 *)&t2->state; + t4 = (struct atomic_Value_28u32_29__3233 const *)t3; + Thread_Futex_wait__5286(t4, UINT32_C(3)); goto zig_block_0; } goto zig_block_0; @@ -7862,9 +7840,9 @@ static zig_cold void Thread_Mutex_FutexImpl_lockSlow__4776(struct Thread_Mutex_F zig_block_0:; zig_loop_25: t2 = (*t1); - t3 = (struct atomic_Value_28u32_29__3290 *)&t2->state; + t3 = (struct atomic_Value_28u32_29__3233 *)&t2->state; t10 = t3; - t11 = (struct atomic_Value_28u32_29__3290 *const *)&t10; + t11 = (struct atomic_Value_28u32_29__3233 *const *)&t10; t3 = (*t11); t12 = (uint32_t *)&t3->raw; t8 = UINT32_C(3); @@ -7872,9 +7850,9 @@ static zig_cold void Thread_Mutex_FutexImpl_lockSlow__4776(struct Thread_Mutex_F t9 = t13 != UINT32_C(0); if (t9) { t2 = (*t1); - t3 = (struct atomic_Value_28u32_29__3290 *)&t2->state; - t4 = (struct atomic_Value_28u32_29__3290 const *)t3; - Thread_Futex_wait__5288(t4, UINT32_C(3)); + t3 = (struct atomic_Value_28u32_29__3233 *)&t2->state; + t4 = (struct atomic_Value_28u32_29__3233 const *)t3; + Thread_Futex_wait__5286(t4, UINT32_C(3)); goto zig_block_2; } goto zig_block_1; @@ -7886,11 +7864,11 @@ static zig_cold void Thread_Mutex_FutexImpl_lockSlow__4776(struct Thread_Mutex_F return; } -static nav__4797_38 unicode_utf8Decode2__4797(nav__4797_40 const a0) { +static nav__4795_38 unicode_utf8Decode2__4795(nav__4795_40 const a0) { uint32_t t3; uint32_t t4; uint32_t t2; - nav__4797_38 t5; + nav__4795_38 t5; uint8_t t0; bool t1; t0 = a0.array[(uintptr_t)0ul]; @@ -7905,7 +7883,7 @@ static nav__4797_38 unicode_utf8Decode2__4797(nav__4797_40 const a0) { t0 = t0 & UINT8_C(192); t1 = t0 != UINT8_C(128); if (t1) { - return (nav__4797_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; + return (nav__4795_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; } goto zig_block_0; @@ -7915,7 +7893,7 @@ static nav__4797_38 unicode_utf8Decode2__4797(nav__4797_40 const a0) { if (t1) { goto zig_block_1; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_1:; @@ -7930,7 +7908,7 @@ static nav__4797_38 unicode_utf8Decode2__4797(nav__4797_40 const a0) { t4 = t2; t1 = t4 < UINT32_C(128); if (t1) { - return (nav__4797_38){UINT32_C(0xaaaaa),zig_error_Utf8OverlongEncoding}; + return (nav__4795_38){UINT32_C(0xaaaaa),zig_error_Utf8OverlongEncoding}; } goto zig_block_2; @@ -7941,15 +7919,15 @@ static nav__4797_38 unicode_utf8Decode2__4797(nav__4797_40 const a0) { return t5; } -static nav__4799_38 unicode_utf8Decode3__4799(nav__4799_40 const a0) { - nav__4799_38 t1; +static nav__4797_38 unicode_utf8Decode3__4797(nav__4797_40 const a0) { + nav__4797_38 t1; uint32_t t3; uint16_t t2; - nav__4799_40 t0; + nav__4797_40 t0; bool t4; bool t5; - memcpy(t0.array, a0.array, sizeof(nav__4799_40)); - t1 = unicode_utf8Decode3AllowSurrogateHalf__4801(t0); + memcpy(t0.array, a0.array, sizeof(nav__4797_40)); + t1 = unicode_utf8Decode3AllowSurrogateHalf__4799(t0); if (t1.error) { t2 = t1.error; t1.payload = UINT32_C(0xaaaaa); @@ -7968,7 +7946,7 @@ static nav__4799_38 unicode_utf8Decode3__4799(nav__4799_40 const a0) { zig_block_1:; if (t5) { - return (nav__4799_38){UINT32_C(0xaaaaa),zig_error_Utf8EncodesSurrogateHalf}; + return (nav__4797_38){UINT32_C(0xaaaaa),zig_error_Utf8EncodesSurrogateHalf}; } goto zig_block_0; @@ -7978,11 +7956,11 @@ static nav__4799_38 unicode_utf8Decode3__4799(nav__4799_40 const a0) { return t1; } -static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { +static nav__4801_38 unicode_utf8Decode4__4801(nav__4801_40 const a0) { uint32_t t3; uint32_t t4; uint32_t t2; - nav__4803_38 t5; + nav__4801_38 t5; uint8_t t0; bool t1; t0 = a0.array[(uintptr_t)0ul]; @@ -7997,7 +7975,7 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { t0 = t0 & UINT8_C(192); t1 = t0 != UINT8_C(128); if (t1) { - return (nav__4803_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; + return (nav__4801_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; } goto zig_block_0; @@ -8007,7 +7985,7 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { if (t1) { goto zig_block_1; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_1:; @@ -8023,7 +8001,7 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { t0 = t0 & UINT8_C(192); t1 = t0 != UINT8_C(128); if (t1) { - return (nav__4803_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; + return (nav__4801_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; } goto zig_block_2; @@ -8033,7 +8011,7 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { if (t1) { goto zig_block_3; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_3:; @@ -8049,7 +8027,7 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { t0 = t0 & UINT8_C(192); t1 = t0 != UINT8_C(128); if (t1) { - return (nav__4803_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; + return (nav__4801_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; } goto zig_block_4; @@ -8059,7 +8037,7 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { if (t1) { goto zig_block_5; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_5:; @@ -8074,7 +8052,7 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { t4 = t2; t1 = t4 < UINT32_C(65536); if (t1) { - return (nav__4803_38){UINT32_C(0xaaaaa),zig_error_Utf8OverlongEncoding}; + return (nav__4801_38){UINT32_C(0xaaaaa),zig_error_Utf8OverlongEncoding}; } goto zig_block_6; @@ -8082,7 +8060,7 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { t4 = t2; t1 = t4 > UINT32_C(1114111); if (t1) { - return (nav__4803_38){UINT32_C(0xaaaaa),zig_error_Utf8CodepointTooLarge}; + return (nav__4801_38){UINT32_C(0xaaaaa),zig_error_Utf8CodepointTooLarge}; } goto zig_block_7; @@ -8093,11 +8071,11 @@ static nav__4803_38 unicode_utf8Decode4__4803(nav__4803_40 const a0) { return t5; } -static zig_cold zig_noreturn void debug_no_panic_shiftRhsTooBig__4114(void) { +static zig_cold zig_noreturn void debug_no_panic_shiftRhsTooBig__4112(void) { zig_trap(); } -static bool unicode_isSurrogateCodepoint__4868(uint32_t const a0) { +static bool unicode_isSurrogateCodepoint__4866(uint32_t const a0) { bool t0; switch (a0) { default: if ((a0 >= UINT32_C(55296) && a0 <= UINT32_C(57343))) { @@ -8113,7 +8091,7 @@ static bool unicode_isSurrogateCodepoint__4868(uint32_t const a0) { return t0; } -static zig_cold void Thread_Futex_wake__5290(struct atomic_Value_28u32_29__3290 const *const a0, uint32_t const a1) { +static zig_cold void Thread_Futex_wake__5288(struct atomic_Value_28u32_29__3233 const *const a0, uint32_t const a1) { bool t0; t0 = a1 == UINT32_C(0); if (t0) { @@ -8122,21 +8100,21 @@ static zig_cold void Thread_Futex_wake__5290(struct atomic_Value_28u32_29__3290 goto zig_block_0; zig_block_0:; - Thread_Futex_LinuxImpl_wake__5352(a0, a1); + Thread_Futex_LinuxImpl_wake__5350(a0, a1); return; } -static nav__4011_38 array_list_ArrayListAligned_28u8_2cnull_29_appendWrite__4011(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const a0, nav__4011_42 const a1) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t1; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t2; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t0; - nav__4011_38 t4; +static nav__4009_38 array_list_ArrayListAligned_28u8_2cnull_29_appendWrite__4009(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const a0, nav__4009_42 const a1) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t1; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t2; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t0; + nav__4009_38 t4; uintptr_t t5; uint16_t t3; t0 = a0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t0; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t0; t2 = (*t1); - t3 = array_list_ArrayListAligned_28u8_2cnull_29_appendSlice__4005(t2, a1); + t3 = array_list_ArrayListAligned_28u8_2cnull_29_appendSlice__4003(t2, a1); if (t3) { t4.payload = (uintptr_t)0xaaaaaaaaaaaaaaaaul; t4.error = t3; @@ -8148,84 +8126,84 @@ static nav__4011_38 array_list_ArrayListAligned_28u8_2cnull_29_appendWrite__4011 return t4; } -static uint16_t bincode_serializePointer__anon_5401__5307(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const a0, nav__5307_40 const a1) { - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *t1; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *t6; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *t7; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *t24; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t2; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t0; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t5; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 t23; +static uint16_t bincode_serializePointer__anon_5318__5305(struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const a0, nav__5305_40 const a1) { + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *t1; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *t6; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *t7; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *t24; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t2; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t0; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t5; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 t23; uintptr_t t3; uint64_t t4; - struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *const *t8; + struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *const *t8; void const **t10; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t11; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t11; void const *t12; - nav__5307_51 (**t13)(void const *, nav__5307_40); - struct io_Writer__1905 t14; - struct io_Writer__1905 t9; - struct io_Writer__1905 t15; - struct io_Writer__1905 t17; - struct io_Writer__1905 t25; - struct io_Writer__1905 t26; - struct io_Writer__1905 const *t16; - nav__5307_40 t20; + nav__5305_51 (**t13)(void const *, nav__5305_40); + struct io_Writer__1950 t14; + struct io_Writer__1950 t9; + struct io_Writer__1950 t15; + struct io_Writer__1950 t17; + struct io_Writer__1950 t25; + struct io_Writer__1950 t26; + struct io_Writer__1950 const *t16; + nav__5305_40 t20; uint16_t t21; uint16_t t22; uint8_t t19[8]; uint8_t t18[8]; t0 = a0; - t1 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *)&t0; + t1 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *)&t0; t2 = (*t1); t3 = a1.len; t4 = t3; t5 = t2; - t6 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *)&t5; + t6 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *)&t5; t7 = t6; - t8 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *const *)&t7; + t8 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *const *)&t7; t10 = (void const **)&t9.context; t6 = (*t8); - t11 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t6->context; + t11 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t6->context; t12 = (void const *)t11; (*t10) = t12; - t13 = (nav__5307_51 (**)(void const *, nav__5307_40))&t9.writeFn; - (*t13) = &io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4090; + t13 = (nav__5305_51 (**)(void const *, nav__5305_40))&t9.writeFn; + (*t13) = &io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4088; t14 = t9; t15 = t14; - t16 = (struct io_Writer__1905 const *)&t15; + t16 = (struct io_Writer__1950 const *)&t15; t14 = (*t16); t17 = t14; - t16 = (struct io_Writer__1905 const *)&t17; + t16 = (struct io_Writer__1950 const *)&t17; memset(&t18, 0xaa, sizeof(uint8_t[8])); memcpy(&t19, &t4, sizeof(uint8_t[8])); memcpy((char *)&t18, t19, sizeof(uint8_t[8])); t14 = (*t16); t20.ptr = &t18[(uintptr_t)0ul]; t20.len = (uintptr_t)8ul; - t21 = io_Writer_writeAll__3828(t14, t20); + t21 = io_Writer_writeAll__3826(t14, t20); memcpy(&t22, &t21, sizeof(uint16_t)); if (t22) { return t22; } t2 = (*t1); t23 = t2; - t1 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *)&t23; + t1 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *)&t23; t24 = t1; - t8 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2015 const *const *)&t24; + t8 = (struct io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29__2060 const *const *)&t24; t10 = (void const **)&t25.context; t1 = (*t8); - t11 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t1->context; + t11 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t1->context; t12 = (void const *)t11; (*t10) = t12; - t13 = (nav__5307_51 (**)(void const *, nav__5307_40))&t25.writeFn; - (*t13) = &io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4090; + t13 = (nav__5305_51 (**)(void const *, nav__5305_40))&t25.writeFn; + (*t13) = &io_GenericWriter_28_2aarray_list_ArrayListAligned_28u8_2cnull_29_2cerror_7bOutOfMemory_7d_2c_28function_20_27appendWrite_27_29_29___4088; t14 = t25; t26 = t14; - t16 = (struct io_Writer__1905 const *)&t26; + t16 = (struct io_Writer__1950 const *)&t26; t14 = (*t16); - t22 = io_Writer_writeAll__3828(t14, a1); + t22 = io_Writer_writeAll__3826(t14, a1); memcpy(&t21, &t22, sizeof(uint16_t)); if (t21) { return t21; @@ -8237,28 +8215,28 @@ static int32_t os_linux_gettid__2743(void) { uintptr_t t0; uint32_t t1; int32_t t2; - t0 = os_linux_x86_64_syscall0__4596((uintptr_t)186ul); + t0 = os_linux_x86_64_syscall0__4594((uintptr_t)186ul); t1 = (uint32_t)t0; memcpy(&t2, &t1, sizeof(int32_t)); t2 = zig_wrap_i32(t2, UINT8_C(32)); return t2; } -static zig_cold void Thread_Futex_wait__5288(struct atomic_Value_28u32_29__3290 const *const a0, uint32_t const a1) { +static zig_cold void Thread_Futex_wait__5286(struct atomic_Value_28u32_29__3233 const *const a0, uint32_t const a1) { uint16_t t0; bool t1; - t0 = Thread_Futex_LinuxImpl_wait__5351(a0, a1, (nav__5288_41){UINT64_C(0xaaaaaaaaaaaaaaaa),true}); + t0 = Thread_Futex_LinuxImpl_wait__5349(a0, a1, (nav__5286_41){UINT64_C(0xaaaaaaaaaaaaaaaa),true}); t1 = t0 == UINT16_C(0); if (t1) { goto zig_block_0; } switch (t0) { case zig_error_Timeout: { - debug_no_panic_unwrapError__4095(t0); + debug_no_panic_unwrapError__4093(t0); zig_unreachable(); } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -8267,11 +8245,11 @@ static zig_cold void Thread_Futex_wait__5288(struct atomic_Value_28u32_29__3290 return; } -static nav__4801_38 unicode_utf8Decode3AllowSurrogateHalf__4801(nav__4801_40 const a0) { +static nav__4799_38 unicode_utf8Decode3AllowSurrogateHalf__4799(nav__4799_40 const a0) { uint32_t t3; uint32_t t4; uint32_t t2; - nav__4801_38 t5; + nav__4799_38 t5; uint8_t t0; bool t1; t0 = a0.array[(uintptr_t)0ul]; @@ -8286,7 +8264,7 @@ static nav__4801_38 unicode_utf8Decode3AllowSurrogateHalf__4801(nav__4801_40 con t0 = t0 & UINT8_C(192); t1 = t0 != UINT8_C(128); if (t1) { - return (nav__4801_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; + return (nav__4799_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; } goto zig_block_0; @@ -8296,7 +8274,7 @@ static nav__4801_38 unicode_utf8Decode3AllowSurrogateHalf__4801(nav__4801_40 con if (t1) { goto zig_block_1; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_1:; @@ -8312,7 +8290,7 @@ static nav__4801_38 unicode_utf8Decode3AllowSurrogateHalf__4801(nav__4801_40 con t0 = t0 & UINT8_C(192); t1 = t0 != UINT8_C(128); if (t1) { - return (nav__4801_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; + return (nav__4799_38){UINT32_C(0xaaaaa),zig_error_Utf8ExpectedContinuation}; } goto zig_block_2; @@ -8322,7 +8300,7 @@ static nav__4801_38 unicode_utf8Decode3AllowSurrogateHalf__4801(nav__4801_40 con if (t1) { goto zig_block_3; } - debug_no_panic_shiftRhsTooBig__4114(); + debug_no_panic_shiftRhsTooBig__4112(); zig_unreachable(); zig_block_3:; @@ -8337,7 +8315,7 @@ static nav__4801_38 unicode_utf8Decode3AllowSurrogateHalf__4801(nav__4801_40 con t3 = t2; t1 = t3 < UINT32_C(2048); if (t1) { - return (nav__4801_38){UINT32_C(0xaaaaa),zig_error_Utf8OverlongEncoding}; + return (nav__4799_38){UINT32_C(0xaaaaa),zig_error_Utf8OverlongEncoding}; } goto zig_block_4; @@ -8348,24 +8326,24 @@ static nav__4801_38 unicode_utf8Decode3AllowSurrogateHalf__4801(nav__4801_40 con return t5; } -static void Thread_Futex_LinuxImpl_wake__5352(struct atomic_Value_28u32_29__3290 const *const a0, uint32_t const a1) { - struct atomic_Value_28u32_29__3290 const *const *t1; - struct atomic_Value_28u32_29__3290 const *t2; - struct atomic_Value_28u32_29__3290 const *t0; +static void Thread_Futex_LinuxImpl_wake__5350(struct atomic_Value_28u32_29__3233 const *const a0, uint32_t const a1) { + struct atomic_Value_28u32_29__3233 const *const *t1; + struct atomic_Value_28u32_29__3233 const *t2; + struct atomic_Value_28u32_29__3233 const *t0; uint32_t const *t3; int32_t const *t4; uintptr_t t9; int32_t t5; int32_t t8; - nav__5352_45 t6; + nav__5350_45 t6; uint16_t t10; bool t7; t0 = a0; - t1 = (struct atomic_Value_28u32_29__3290 const *const *)&t0; + t1 = (struct atomic_Value_28u32_29__3233 const *const *)&t0; t2 = (*t1); t3 = (uint32_t const *)&t2->raw; t4 = (int32_t const *)t3; - t6 = math_cast__anon_5556__5369(a1); + t6 = math_cast__anon_5473__5367(a1); t7 = t6.is_null != true; if (t7) { t8 = t6.payload; @@ -8389,7 +8367,7 @@ static void Thread_Futex_LinuxImpl_wake__5352(struct atomic_Value_28u32_29__3290 goto zig_block_1; } default: { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } } @@ -8398,26 +8376,26 @@ static void Thread_Futex_LinuxImpl_wake__5352(struct atomic_Value_28u32_29__3290 return; } -static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_appendSlice__4005(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const a0, nav__4005_41 const a1) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t1; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t2; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t0; +static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_appendSlice__4003(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const a0, nav__4003_41 const a1) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t1; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t2; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t0; uintptr_t t3; uint16_t t4; t0 = a0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t0; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t0; t2 = (*t1); t3 = a1.len; - t4 = array_list_ArrayListAligned_28u8_2cnull_29_ensureUnusedCapacity__4024(t2, t3); + t4 = array_list_ArrayListAligned_28u8_2cnull_29_ensureUnusedCapacity__4022(t2, t3); if (t4) { return t4; } t2 = (*t1); - array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity__4006(t2, a1); + array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity__4004(t2, a1); return 0; } -static uintptr_t os_linux_x86_64_syscall0__4596(uintptr_t const a0) { +static uintptr_t os_linux_x86_64_syscall0__4594(uintptr_t const a0) { uintptr_t t0; uintptr_t t1; t0 = a0; @@ -8429,26 +8407,26 @@ static uintptr_t os_linux_x86_64_syscall0__4596(uintptr_t const a0) { return t1; } -static uint16_t Thread_Futex_LinuxImpl_wait__5351(struct atomic_Value_28u32_29__3290 const *const a0, uint32_t const a1, nav__5351_40 const a2) { - struct atomic_Value_28u32_29__3290 const *const *t1; +static uint16_t Thread_Futex_LinuxImpl_wait__5349(struct atomic_Value_28u32_29__3233 const *const a0, uint32_t const a1, nav__5349_40 const a2) { + struct atomic_Value_28u32_29__3233 const *const *t1; uint64_t t4; uint64_t t6; intptr_t *t5; intptr_t t7; - struct atomic_Value_28u32_29__3290 const *t8; - struct atomic_Value_28u32_29__3290 const *t0; + struct atomic_Value_28u32_29__3233 const *t8; + struct atomic_Value_28u32_29__3233 const *t0; uint32_t const *t9; int32_t const *t10; - struct os_linux_timespec__struct_2960__2960 const *t12; - struct os_linux_timespec__struct_2960__2960 const *t13; + struct os_linux_timespec__struct_2902__2902 const *t12; + struct os_linux_timespec__struct_2902__2902 const *t13; uintptr_t t14; - struct os_linux_timespec__struct_2960__2960 t2; + struct os_linux_timespec__struct_2902__2902 t2; int32_t t11; uint16_t t15; bool t3; t0 = a0; - t1 = (struct atomic_Value_28u32_29__3290 const *const *)&t0; - memset(&t2, 0xaa, sizeof(struct os_linux_timespec__struct_2960__2960)); + t1 = (struct atomic_Value_28u32_29__3233 const *const *)&t0; + memset(&t2, 0xaa, sizeof(struct os_linux_timespec__struct_2902__2902)); t3 = a2.is_null != true; if (t3) { t4 = a2.payload; @@ -8458,7 +8436,7 @@ static uint16_t Thread_Futex_LinuxImpl_wait__5351(struct atomic_Value_28u32_29__ if (t3) { goto zig_block_1; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_1:; @@ -8470,7 +8448,7 @@ static uint16_t Thread_Futex_LinuxImpl_wait__5351(struct atomic_Value_28u32_29__ if (t3) { goto zig_block_2; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_2:; @@ -8488,7 +8466,7 @@ static uint16_t Thread_Futex_LinuxImpl_wait__5351(struct atomic_Value_28u32_29__ t11 = zig_wrap_i32(t11, UINT8_C(32)); t3 = a2.is_null != true; if (t3) { - t13 = (struct os_linux_timespec__struct_2960__2960 const *)&t2; + t13 = (struct os_linux_timespec__struct_2902__2902 const *)&t2; t12 = t13; goto zig_block_3; } @@ -8517,11 +8495,11 @@ static uint16_t Thread_Futex_LinuxImpl_wait__5351(struct atomic_Value_28u32_29__ goto zig_block_4; } case UINT16_C(14): { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } default: { - debug_no_panic_reachedUnreachable__4100(); + debug_no_panic_reachedUnreachable__4098(); zig_unreachable(); } } @@ -8530,24 +8508,24 @@ static uint16_t Thread_Futex_LinuxImpl_wait__5351(struct atomic_Value_28u32_29__ return 0; } -static zig_cold zig_noreturn void debug_no_panic_unwrapError__4095(uint16_t const a0) { +static zig_cold zig_noreturn void debug_no_panic_unwrapError__4093(uint16_t const a0) { (void)a0; zig_trap(); } -static nav__5369_38 math_cast__anon_5556__5369(uint32_t const a0) { +static nav__5367_38 math_cast__anon_5473__5367(uint32_t const a0) { int32_t t1; - nav__5369_38 t2; + nav__5367_38 t2; bool t0; t0 = a0 > UINT32_C(2147483647); if (t0) { - return (nav__5369_38){-INT32_C(0x55555556),true}; + return (nav__5367_38){-INT32_C(0x55555556),true}; } t0 = a0 <= UINT32_C(2147483647); if (t0) { goto zig_block_0; } - debug_no_panic_castTruncatedData__4105(); + debug_no_panic_castTruncatedData__4103(); zig_unreachable(); zig_block_0:; @@ -8567,49 +8545,49 @@ static uintptr_t os_linux_futex_wake__2629(int32_t const *const a0, uint32_t con memcpy(&t2, &a2, sizeof(uint32_t)); t2 = zig_wrap_u32(t2, UINT8_C(32)); t3 = (uintptr_t)t2; - t3 = os_linux_x86_64_syscall3__4599((uintptr_t)202ul, t0, t1, t3); + t3 = os_linux_x86_64_syscall3__4597((uintptr_t)202ul, t0, t1, t3); return t3; } -static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureUnusedCapacity__4024(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const a0, uintptr_t const a1) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t1; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t2; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t0; - nav__4024_43 *t3; - nav__4024_43 t4; +static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureUnusedCapacity__4022(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const a0, uintptr_t const a1) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t1; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t2; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t0; + nav__4022_43 *t3; + nav__4022_43 t4; uintptr_t t5; - nav__4024_52 t6; + nav__4022_52 t6; uint16_t t7; t0 = a0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t0; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t0; t2 = (*t1); - t3 = (nav__4024_43 *)&a0->items; + t3 = (nav__4022_43 *)&a0->items; t4 = (*t3); t5 = t4.len; - t6 = array_list_addOrOom__3949(t5, a1); + t6 = array_list_addOrOom__3947(t5, a1); if (t6.error) { t7 = t6.error; return t7; } t5 = t6.payload; - t7 = array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacity__4022(t2, t5); + t7 = array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacity__4020(t2, t5); return t7; } -static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity__4006(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const a0, nav__4006_41 const a1) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t1; - nav__4006_47 *t2; - nav__4006_47 t3; +static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity__4004(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const a0, nav__4004_41 const a1) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t1; + nav__4004_47 *t2; + nav__4004_47 t3; uintptr_t t4; uintptr_t t5; uintptr_t t10; uintptr_t t15; - nav__4006_56 t6; + nav__4004_56 t6; uintptr_t *t9; uint64_t t11; uint64_t t12; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t13; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t0; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t13; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t0; uint8_t *t14; uint8_t *t18; uint8_t const *t16; @@ -8618,8 +8596,8 @@ static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity bool t8; bool t19; t0 = a0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t0; - t2 = (nav__4006_47 *)&a0->items; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t0; + t2 = (nav__4004_47 *)&a0->items; t3 = (*t2); t4 = t3.len; t5 = a1.len; @@ -8629,7 +8607,7 @@ static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity if (t8) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -8641,11 +8619,11 @@ static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity t8 = t11 <= t12; debug_assert__179(t8); t13 = (*t1); - t2 = (nav__4006_47 *)&t13->items; + t2 = (nav__4004_47 *)&t13->items; t9 = &t2->len; (*t9) = t5; t13 = (*t1); - t2 = (nav__4006_47 *)&t13->items; + t2 = (nav__4004_47 *)&t13->items; t5 = a1.len; t3 = (*t2); t14 = t3.ptr; @@ -8656,7 +8634,7 @@ static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity if (t8) { goto zig_block_1; } - debug_no_panic_outOfBounds__4096(t10, t15); + debug_no_panic_outOfBounds__4094(t10, t15); zig_unreachable(); zig_block_1:; @@ -8664,7 +8642,7 @@ static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity if (t8) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096(t4, t10); + debug_no_panic_outOfBounds__4094(t4, t10); zig_unreachable(); zig_block_2:; @@ -8676,7 +8654,7 @@ static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity if (t8) { goto zig_block_3; } - debug_no_panic_memcpyLenMismatch__4117(); + debug_no_panic_memcpyLenMismatch__4115(); zig_unreachable(); zig_block_3:; @@ -8690,7 +8668,7 @@ static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity if (t19) { goto zig_block_4; } - debug_no_panic_memcpyAlias__4118(); + debug_no_panic_memcpyAlias__4116(); zig_unreachable(); zig_block_4:; @@ -8698,7 +8676,7 @@ static void array_list_ArrayListAligned_28u8_2cnull_29_appendSliceAssumeCapacity return; } -static uintptr_t os_linux_futex_wait__2628(int32_t const *const a0, uint32_t const a1, int32_t const a2, struct os_linux_timespec__struct_2960__2960 const *const a3) { +static uintptr_t os_linux_futex_wait__2628(int32_t const *const a0, uint32_t const a1, int32_t const a2, struct os_linux_timespec__struct_2902__2902 const *const a3) { uintptr_t t0; uintptr_t t1; uintptr_t t3; @@ -8710,11 +8688,11 @@ static uintptr_t os_linux_futex_wait__2628(int32_t const *const a0, uint32_t con t2 = zig_wrap_u32(t2, UINT8_C(32)); t3 = (uintptr_t)t2; t4 = (uintptr_t)a3; - t4 = os_linux_x86_64_syscall4__4600((uintptr_t)202ul, t0, t1, t3, t4); + t4 = os_linux_x86_64_syscall4__4598((uintptr_t)202ul, t0, t1, t3, t4); return t4; } -static uintptr_t os_linux_x86_64_syscall3__4599(uintptr_t const a0, uintptr_t const a1, uintptr_t const a2, uintptr_t const a3) { +static uintptr_t os_linux_x86_64_syscall3__4597(uintptr_t const a0, uintptr_t const a1, uintptr_t const a2, uintptr_t const a3) { uintptr_t t0; uintptr_t t1; t0 = a0; @@ -8729,13 +8707,13 @@ static uintptr_t os_linux_x86_64_syscall3__4599(uintptr_t const a0, uintptr_t co return t1; } -static nav__3949_38 array_list_addOrOom__3949(uintptr_t const a0, uintptr_t const a1) { - nav__3949_42 t2; +static nav__3947_38 array_list_addOrOom__3947(uintptr_t const a0, uintptr_t const a1) { + nav__3947_42 t2; uintptr_t t3; uintptr_t t0; uintptr_t const *t5; uint8_t const *t6; - nav__3949_38 t8; + nav__3947_38 t8; uint8_t t4; uint8_t t1; bool t7; @@ -8749,7 +8727,7 @@ static nav__3949_38 array_list_addOrOom__3949(uintptr_t const a0, uintptr_t cons t4 = (*t6); t7 = t4 != UINT8_C(0); if (t7) { - return (nav__3949_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_OutOfMemory}; + return (nav__3947_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_OutOfMemory}; } goto zig_block_0; @@ -8760,18 +8738,18 @@ static nav__3949_38 array_list_addOrOom__3949(uintptr_t const a0, uintptr_t cons return t8; } -static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacity__4022(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const a0, uintptr_t const a1) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t1; +static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacity__4020(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const a0, uintptr_t const a1) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t1; uintptr_t *t2; uintptr_t t3; uint64_t t4; uint64_t t5; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t7; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t0; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t7; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t0; uint16_t t8; bool t6; t0 = a0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t0; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t0; t2 = (uintptr_t *)&a0->capacity; t3 = (*t2); t4 = t3; @@ -8785,17 +8763,17 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacity__ zig_block_0:; t2 = (uintptr_t *)&a0->capacity; t3 = (*t2); - t3 = array_list_ArrayListAlignedUnmanaged_28u8_2cnull_29_growCapacity__5428(t3, a1); + t3 = array_list_ArrayListAlignedUnmanaged_28u8_2cnull_29_growCapacity__5426(t3, a1); t7 = (*t1); - t8 = array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPrecise__4023(t7, t3); + t8 = array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPrecise__4021(t7, t3); return t8; } -static uintptr_t array_list_ArrayListAlignedUnmanaged_28u8_2cnull_29_growCapacity__5428(uintptr_t const a0, uintptr_t const a1) { +static uintptr_t array_list_ArrayListAlignedUnmanaged_28u8_2cnull_29_growCapacity__5426(uintptr_t const a0, uintptr_t const a1) { uintptr_t t1; uintptr_t t2; uintptr_t t0; - nav__5428_39 t3; + nav__5426_39 t3; uint64_t t6; uint64_t t7; uint8_t t4; @@ -8811,7 +8789,7 @@ static uintptr_t array_list_ArrayListAlignedUnmanaged_28u8_2cnull_29_growCapacit if (t5) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -8832,36 +8810,36 @@ static uintptr_t array_list_ArrayListAlignedUnmanaged_28u8_2cnull_29_growCapacit goto zig_loop_6; } -static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPrecise__4023(struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const a0, uintptr_t const a1) { - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *t1; +static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPrecise__4021(struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const a0, uintptr_t const a1) { + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *t1; uintptr_t *t2; uintptr_t t3; uintptr_t t21; uint64_t t4; uint64_t t5; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t7; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *t0; - struct array_list_ArrayListAligned_28u8_2cnull_29__1990 t8; - nav__4023_43 t9; - nav__4023_43 t12; - nav__4023_43 t20; - nav__4023_43 t22; - nav__4023_43 t18; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t7; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *t0; + struct array_list_ArrayListAligned_28u8_2cnull_29__2035 t8; + nav__4021_43 t9; + nav__4021_43 t12; + nav__4021_43 t20; + nav__4021_43 t22; + nav__4021_43 t18; struct mem_Allocator__206 *t10; struct mem_Allocator__206 t11; - nav__4023_43 *t13; + nav__4021_43 *t13; uint8_t **t14; uint8_t *t15; uint8_t *t23; uint8_t *t24; uint8_t *t25; - nav__4023_55 t16; - nav__4023_43 const *t19; + nav__4021_55 t16; + nav__4021_43 const *t19; uint16_t t17; bool t6; bool t26; t0 = a0; - t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__1990 *const *)&t0; + t1 = (struct array_list_ArrayListAligned_28u8_2cnull_29__2035 *const *)&t0; t2 = (uintptr_t *)&a0->capacity; t3 = (*t2); t4 = t3; @@ -8875,16 +8853,16 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr zig_block_0:; t7 = (*t1); t8 = (*t7); - t9 = array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4033(t8); + t9 = array_list_ArrayListAligned_28u8_2cnull_29_allocatedSlice__4031(t8); t7 = (*t1); t10 = (struct mem_Allocator__206 *)&t7->allocator; t11 = (*t10); - t12 = mem_Allocator_remap__anon_5627__5429(t11, t9, a1); + t12 = mem_Allocator_remap__anon_5544__5427(t11, t9, a1); t6 = t12.ptr != NULL; if (t6) { t9 = t12; t7 = (*t1); - t13 = (nav__4023_43 *)&t7->items; + t13 = (nav__4021_43 *)&t7->items; t14 = &t13->ptr; t15 = t9.ptr; (*t14) = t15; @@ -8897,15 +8875,15 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr t7 = (*t1); t10 = (struct mem_Allocator__206 *)&t7->allocator; t11 = (*t10); - t16 = mem_Allocator_alignedAlloc__anon_5632__5430(t11, a1); + t16 = mem_Allocator_alignedAlloc__anon_5549__5428(t11, a1); if (t16.error) { t17 = t16.error; return t17; } t12 = t16.payload; t18 = t12; - t19 = (nav__4023_43 const *)&t18; - t13 = (nav__4023_43 *)&a0->items; + t19 = (nav__4021_43 const *)&t18; + t13 = (nav__4021_43 *)&a0->items; t20 = (*t13); t3 = t20.len; t20 = (*t19); @@ -8915,7 +8893,7 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr if (t6) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_2:; @@ -8924,7 +8902,7 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr if (t6) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096(t3, t21); + debug_no_panic_outOfBounds__4094(t3, t21); zig_unreachable(); zig_block_3:; @@ -8932,13 +8910,13 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr if (t6) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_4:; t20.ptr = t15; t20.len = t3; - t13 = (nav__4023_43 *)&a0->items; + t13 = (nav__4021_43 *)&a0->items; t22 = (*t13); t3 = t20.len; t21 = t22.len; @@ -8946,7 +8924,7 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr if (t6) { goto zig_block_5; } - debug_no_panic_memcpyLenMismatch__4117(); + debug_no_panic_memcpyLenMismatch__4115(); zig_unreachable(); zig_block_5:; @@ -8960,7 +8938,7 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr if (t26) { goto zig_block_6; } - debug_no_panic_memcpyAlias__4118(); + debug_no_panic_memcpyAlias__4116(); zig_unreachable(); zig_block_6:; @@ -8968,9 +8946,9 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr t7 = (*t1); t10 = (struct mem_Allocator__206 *)&t7->allocator; t11 = (*t10); - mem_Allocator_free__anon_2707__4278(t11, t9); + mem_Allocator_free__anon_2696__4276(t11, t9); t7 = (*t1); - t13 = (nav__4023_43 *)&t7->items; + t13 = (nav__4021_43 *)&t7->items; t14 = &t13->ptr; t15 = t12.ptr; (*t14) = t15; @@ -8984,16 +8962,16 @@ static uint16_t array_list_ArrayListAligned_28u8_2cnull_29_ensureTotalCapacityPr return 0; } -static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__206 const a0, nav__5429_39 const a1, uintptr_t const a2) { +static nav__5427_39 mem_Allocator_remap__anon_5544__5427(struct mem_Allocator__206 const a0, nav__5427_39 const a1, uintptr_t const a2) { struct mem_Allocator__206 const *t1; - nav__5429_39 const *t3; + nav__5427_39 const *t3; uint64_t t4; struct mem_Allocator__206 t6; struct mem_Allocator__206 t0; struct mem_Allocator__206 t15; - nav__5429_39 t7; - nav__5429_39 t11; - nav__5429_39 t2; + nav__5427_39 t7; + nav__5427_39 t11; + nav__5427_39 t2; uint8_t *t8; uint8_t *t20; uint8_t *t21; @@ -9001,23 +8979,23 @@ static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__2 void *t9; uintptr_t t10; uintptr_t t13; - nav__5429_50 t12; + nav__5427_50 t12; struct mem_Allocator_VTable__209 const *const *t16; struct mem_Allocator_VTable__209 const *t17; - uint8_t *(*const *t18)(void *, nav__5429_39, uint8_t, uintptr_t, uintptr_t); - uint8_t *(*t19)(void *, nav__5429_39, uint8_t, uintptr_t, uintptr_t); + uint8_t *(*const *t18)(void *, nav__5427_39, uint8_t, uintptr_t, uintptr_t); + uint8_t *(*t19)(void *, nav__5427_39, uint8_t, uintptr_t, uintptr_t); uint8_t *const *t23; bool t5; uint8_t t14; t0 = a0; t1 = (struct mem_Allocator__206 const *)&t0; t2 = a1; - t3 = (nav__5429_39 const *)&t2; + t3 = (nav__5427_39 const *)&t2; t4 = a2; t5 = t4 == UINT64_C(0); if (t5) { t6 = (*t1); - mem_Allocator_free__anon_2707__4278(t6, a1); + mem_Allocator_free__anon_2696__4276(t6, a1); t7 = (*t3); t8 = t7.ptr; t8 = (uint8_t *)(((uintptr_t)t8) + ((uintptr_t)0ul*sizeof(uint8_t))); @@ -9027,7 +9005,7 @@ static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__2 if (t5) { goto zig_block_1; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t10); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t10); zig_unreachable(); zig_block_1:; @@ -9043,20 +9021,20 @@ static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__2 t4 = t10; t5 = t4 == UINT64_C(0); if (t5) { - return (nav__5429_39){NULL,(uintptr_t)0xaaaaaaaaaaaaaaaaul}; + return (nav__5427_39){NULL,(uintptr_t)0xaaaaaaaaaaaaaaaaul}; } goto zig_block_2; zig_block_2:; - t11 = mem_sliceAsBytes__anon_3028__4571(a1); - t12 = math_mul__anon_4111__5222((uintptr_t)1ul, a2); + t11 = mem_sliceAsBytes__anon_2970__4569(a1); + t12 = math_mul__anon_4028__5220((uintptr_t)1ul, a2); t5 = t12.error == UINT16_C(0); if (t5) { t13 = t12.payload; t10 = t13; goto zig_block_3; } - return (nav__5429_39){NULL,(uintptr_t)0xaaaaaaaaaaaaaaaaul}; + return (nav__5427_39){NULL,(uintptr_t)0xaaaaaaaaaaaaaaaaul}; zig_block_3:; t6 = (*t1); @@ -9066,7 +9044,7 @@ static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__2 t1 = (struct mem_Allocator__206 const *)&t15; t16 = (struct mem_Allocator_VTable__209 const *const *)&t1->vtable; t17 = (*t16); - t18 = (uint8_t *(*const *)(void *, nav__5429_39, uint8_t, uintptr_t, uintptr_t))&t17->remap; + t18 = (uint8_t *(*const *)(void *, nav__5427_39, uint8_t, uintptr_t, uintptr_t))&t17->remap; t19 = (*t18); t9 = t6.ptr; t20 = t19(t9, t11, t14, t10, t13); @@ -9076,7 +9054,7 @@ static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__2 t8 = t21; goto zig_block_4; } - return (nav__5429_39){NULL,(uintptr_t)0xaaaaaaaaaaaaaaaaul}; + return (nav__5427_39){NULL,(uintptr_t)0xaaaaaaaaaaaaaaaaul}; zig_block_4:; t22 = t8; @@ -9087,7 +9065,7 @@ static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__2 if (t5) { goto zig_block_5; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t10); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t10); zig_unreachable(); zig_block_5:; @@ -9095,31 +9073,31 @@ static nav__5429_39 mem_Allocator_remap__anon_5627__5429(struct mem_Allocator__2 if (t5) { goto zig_block_6; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t10); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t10); zig_unreachable(); zig_block_6:; t11.ptr = t8; t11.len = t10; - memcpy(&t7, &t11, sizeof(nav__5429_39)); - t7 = mem_bytesAsSlice__anon_5647__5431(t7); + memcpy(&t7, &t11, sizeof(nav__5427_39)); + t7 = mem_bytesAsSlice__anon_5564__5429(t7); t11 = t7; return t11; } -static nav__5430_40 mem_Allocator_alignedAlloc__anon_5632__5430(struct mem_Allocator__206 const a0, uintptr_t const a1) { +static nav__5428_40 mem_Allocator_alignedAlloc__anon_5549__5428(struct mem_Allocator__206 const a0, uintptr_t const a1) { struct mem_Allocator__206 const *t1; struct mem_Allocator__206 t2; struct mem_Allocator__206 t0; struct mem_Allocator__206 t5; uintptr_t t3; - nav__5430_40 t4; - nav__5430_40 t8; - nav__5430_51 t6; + nav__5428_40 t4; + nav__5428_40 t8; + nav__5428_51 t6; uint8_t *t9; uint8_t *t10; uint8_t *const *t11; - nav__5430_39 t13; + nav__5428_39 t13; uint16_t t7; bool t12; t0 = a0; @@ -9129,10 +9107,10 @@ static nav__5430_40 mem_Allocator_alignedAlloc__anon_5632__5430(struct mem_Alloc t5 = t2; t1 = (struct mem_Allocator__206 const *)&t5; t2 = (*t1); - t6 = mem_Allocator_allocWithSizeAndAlignment__anon_2991__4570(t2, a1, t3); + t6 = mem_Allocator_allocWithSizeAndAlignment__anon_2933__4568(t2, a1, t3); if (t6.error) { t7 = t6.error; - t8.payload = (nav__5430_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; + t8.payload = (nav__5428_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; t8.error = t7; t4 = t8; goto zig_block_0; @@ -9146,7 +9124,7 @@ static nav__5430_40 mem_Allocator_alignedAlloc__anon_5632__5430(struct mem_Alloc if (t12) { goto zig_block_1; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, a1); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, a1); zig_unreachable(); zig_block_1:; @@ -9154,7 +9132,7 @@ static nav__5430_40 mem_Allocator_alignedAlloc__anon_5632__5430(struct mem_Alloc if (t12) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, a1); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, a1); zig_unreachable(); zig_block_2:; @@ -9169,20 +9147,20 @@ static nav__5430_40 mem_Allocator_alignedAlloc__anon_5632__5430(struct mem_Alloc return t4; } -static nav__5431_39 mem_bytesAsSlice__anon_5647__5431(nav__5431_39 const a0) { +static nav__5429_39 mem_bytesAsSlice__anon_5564__5429(nav__5429_39 const a0) { uintptr_t t0; uintptr_t t6; uint64_t t1; uint8_t *t3; uint8_t *t4; uint8_t *const *t5; - nav__5431_39 t7; + nav__5429_39 t7; bool t2; t0 = a0.len; t1 = t0; t2 = t1 == UINT64_C(0); if (t2) { - return (nav__5431_39){(uint8_t *)((void const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),(uintptr_t)0ul}; + return (nav__5429_39){(uint8_t *)((void const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),(uintptr_t)0ul}; } goto zig_block_0; @@ -9197,7 +9175,7 @@ static nav__5431_39 mem_bytesAsSlice__anon_5647__5431(nav__5431_39 const a0) { if (t2) { goto zig_block_1; } - debug_no_panic_exactDivisionRemainder__4111(); + debug_no_panic_exactDivisionRemainder__4109(); zig_unreachable(); zig_block_1:; @@ -9207,7 +9185,7 @@ static nav__5431_39 mem_bytesAsSlice__anon_5647__5431(nav__5431_39 const a0) { if (t2) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t6); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t6); zig_unreachable(); zig_block_2:; @@ -9215,7 +9193,7 @@ static nav__5431_39 mem_bytesAsSlice__anon_5647__5431(nav__5431_39 const a0) { if (t2) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t6); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t6); zig_unreachable(); zig_block_3:; @@ -9224,7 +9202,7 @@ static nav__5431_39 mem_bytesAsSlice__anon_5647__5431(nav__5431_39 const a0) { return t7; } -static zig_cold zig_noreturn void debug_no_panic_exactDivisionRemainder__4111(void) { +static zig_cold zig_noreturn void debug_no_panic_exactDivisionRemainder__4109(void) { zig_trap(); } @@ -9260,7 +9238,7 @@ void c_instrument_hooks_deinit__232(struct instruments_root_InstrumentHooks__188 if (t0) { goto zig_block_2; } - debug_no_panic_inactiveUnionField__anon_5659__5432(t7, UINT8_C(1)); + debug_no_panic_inactiveUnionField__anon_5576__5430(t7, UINT8_C(1)); zig_unreachable(); zig_block_2:; @@ -9272,13 +9250,13 @@ void c_instrument_hooks_deinit__232(struct instruments_root_InstrumentHooks__188 goto zig_block_1; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } zig_block_1:; - mem_Allocator_destroy__anon_5667__5433((struct mem_Allocator__206){((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)&heap_CAllocator_vtable__3476)}, t1); + mem_Allocator_destroy__anon_5584__5431((struct mem_Allocator__206){((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul),((struct mem_Allocator_VTable__209 const *)&heap_CAllocator_vtable__3476)}, t1); goto zig_block_0; } goto zig_block_0; @@ -9287,7 +9265,7 @@ void c_instrument_hooks_deinit__232(struct instruments_root_InstrumentHooks__188 return; } -static zig_cold zig_noreturn void debug_no_panic_inactiveUnionField__anon_5659__5432(uint8_t const a0, uint8_t const a1) { +static zig_cold zig_noreturn void debug_no_panic_inactiveUnionField__anon_5576__5430(uint8_t const a0, uint8_t const a1) { (void)a0; (void)a1; zig_trap(); @@ -9310,7 +9288,7 @@ static void instruments_perf_PerfInstrument_deinit__338(struct instruments_perf_ return; } -static void mem_Allocator_destroy__anon_5667__5433(struct mem_Allocator__206 const a0, struct instruments_root_InstrumentHooks__188 *const a1) { +static void mem_Allocator_destroy__anon_5584__5431(struct mem_Allocator__206 const a0, struct instruments_root_InstrumentHooks__188 *const a1) { struct mem_Allocator__206 const *t1; uint8_t *t2; uint8_t *t3; @@ -9319,12 +9297,12 @@ static void mem_Allocator_destroy__anon_5667__5433(struct mem_Allocator__206 con struct mem_Allocator__206 t0; struct mem_Allocator__206 t10; uint8_t (*t6)[72]; - nav__5433_52 t7; + nav__5431_52 t7; uintptr_t t9; struct mem_Allocator_VTable__209 const *const *t11; struct mem_Allocator_VTable__209 const *t12; - void (*const *t13)(void *, nav__5433_52, uint8_t, uintptr_t); - void (*t14)(void *, nav__5433_52, uint8_t, uintptr_t); + void (*const *t13)(void *, nav__5431_52, uint8_t, uintptr_t); + void (*t14)(void *, nav__5431_52, uint8_t, uintptr_t); void *t15; uint8_t t8; t0 = a0; @@ -9344,7 +9322,7 @@ static void mem_Allocator_destroy__anon_5667__5433(struct mem_Allocator__206 con t1 = (struct mem_Allocator__206 const *)&t10; t11 = (struct mem_Allocator_VTable__209 const *const *)&t1->vtable; t12 = (*t11); - t13 = (void (*const *)(void *, nav__5433_52, uint8_t, uintptr_t))&t12->free; + t13 = (void (*const *)(void *, nav__5431_52, uint8_t, uintptr_t))&t12->free; t14 = (*t13); t15 = t5.ptr; t14(t15, t7, t8, t9); @@ -9393,14 +9371,11 @@ bool c_instrument_hooks_is_instrumented__233(struct instruments_root_InstrumentH struct instruments_root_InstrumentHooks__188 *t2; struct instruments_root_InstrumentHooks__188 *const *t3; struct instruments_root_InstrumentHooks__188 t4; - uintptr_t t7; - uintptr_t t8; - uint64_t t12; - struct instruments_perf_PerfInstrument__200 t14; - struct instruments_perf_PerfInstrument__200 t15; + struct instruments_perf_PerfInstrument__200 t8; + struct instruments_perf_PerfInstrument__200 t9; bool t0; bool t6; - bool t13; + bool t7; uint8_t t5; t0 = a0 != NULL; if (t0) { @@ -9412,23 +9387,16 @@ bool c_instrument_hooks_is_instrumented__233(struct instruments_root_InstrumentH t5 = t4.tag; switch (t5) { case UINT8_C(0): { - t7 = helpers_valgrind_black_box__anon_914__3501((uintptr_t)0ul); - t8 = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t t9 __asm("rdx") = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t const (*const t10)[6] __asm("rax") = &__anon_906; - register uintptr_t const t11 __asm("rdx") = t7; - __asm volatile(" rolq $3, %%rdi ; rolq $13, %%rdi\n rolq $61, %%rdi ; rolq $51, %%rdi\n xchgq %%rbx, %%rbx": "=r"(t9): "r"(t10), "r"(t11): "cc", "memory"); - t8 = t9; - t12 = t8; - t13 = t12 > UINT64_C(0); - t6 = t13; + t5 = running_on_valgrind(); + t7 = t5 > UINT8_C(0); + t6 = t7; goto zig_block_2; } case UINT8_C(1): { - t14 = t4.payload.perf; - t15 = t14; - t13 = instruments_perf_PerfInstrument_is_instrumented__340(&t15); - t0 = t13; + t8 = t4.payload.perf; + t9 = t8; + t7 = instruments_perf_PerfInstrument_is_instrumented__340(&t9); + t0 = t7; goto zig_block_1; } case UINT8_C(2): { @@ -9436,7 +9404,7 @@ bool c_instrument_hooks_is_instrumented__233(struct instruments_root_InstrumentH goto zig_block_2; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -9465,7 +9433,7 @@ static zig_cold uint16_t instruments_perf_PerfInstrument_start_benchmark__341(st t1 = (struct instruments_perf_PerfInstrument__200 *const *)&t0; t2 = (*t1); t3 = (struct fifo_UnixPipe_Writer__538 *)&t2->writer; - t4 = fifo_UnixPipe_Writer_sendCmd__991(t3, (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(1)}); + t4 = fifo_UnixPipe_Writer_sendCmd__991(t3, (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(1)}); if (t4) { return t4; } @@ -9485,11 +9453,8 @@ void c_instrument_hooks_start_benchmark__234(struct instruments_root_InstrumentH struct instruments_root_InstrumentHooks__188 *const *t3; struct instruments_root_InstrumentHooks__188 t6; struct instruments_perf_PerfInstrument__200 *t8; - uintptr_t t11; - uintptr_t t12; - uintptr_t t16; - nav__234_63 t20; - nav__234_65 t21; + nav__234_61 t11; + nav__234_63 t12; uint16_t t4; uint16_t t9; uint16_t t10; @@ -9514,7 +9479,7 @@ void c_instrument_hooks_start_benchmark__234(struct instruments_root_InstrumentH if (t0) { goto zig_block_4; } - debug_no_panic_inactiveUnionField__anon_5659__5432(t7, UINT8_C(1)); + debug_no_panic_inactiveUnionField__anon_5576__5430(t7, UINT8_C(1)); zig_unreachable(); zig_block_4:; @@ -9528,20 +9493,8 @@ void c_instrument_hooks_start_benchmark__234(struct instruments_root_InstrumentH t7 = t6.tag; t0 = t7 == UINT8_C(0); if (t0) { - t11 = helpers_valgrind_black_box__anon_914__3501((uintptr_t)0ul); - t12 = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t t13 __asm("rdx") = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t const (*const t14)[6] __asm("rax") = &__anon_5743; - register uintptr_t const t15 __asm("rdx") = t11; - __asm volatile(" rolq $3, %%rdi ; rolq $13, %%rdi\n rolq $61, %%rdi ; rolq $51, %%rdi\n xchgq %%rbx, %%rbx": "=r"(t13): "r"(t14), "r"(t15): "cc", "memory"); - t12 = t13; - t11 = helpers_valgrind_black_box__anon_914__3501((uintptr_t)0ul); - t16 = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t t17 __asm("rdx") = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t const (*const t18)[6] __asm("rax") = &__anon_5748; - register uintptr_t const t19 __asm("rdx") = t11; - __asm volatile(" rolq $3, %%rdi ; rolq $13, %%rdi\n rolq $61, %%rdi ; rolq $51, %%rdi\n xchgq %%rbx, %%rbx": "=r"(t17): "r"(t18), "r"(t19): "cc", "memory"); - t16 = t17; + callgrind_zero_stats(); + callgrind_start_instrumentation(); t4 = 0; goto zig_block_2; } @@ -9560,9 +9513,9 @@ void c_instrument_hooks_start_benchmark__234(struct instruments_root_InstrumentH if (t0) { goto zig_block_1; } - t20 = zig_errorName[t10 - 1]; - t21.f0 = t20; - debug_print__anon_5759__5442(t21); + t11 = zig_errorName[t10 - 1]; + t12.f0 = t11; + debug_print__anon_5640__5434(t12); goto zig_block_1; zig_block_1:; @@ -9574,51 +9527,51 @@ void c_instrument_hooks_start_benchmark__234(struct instruments_root_InstrumentH return; } -static void debug_print__anon_5759__5442(nav__5442_40 const a0) { +static void debug_print__anon_5640__5434(nav__5434_40 const a0) { struct fs_File__546 const *t2; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t5; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t7; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *t8; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t5; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t7; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *t8; void const **t10; void const *t11; - nav__5442_54 (**t12)(void const *, nav__5442_39); - struct io_Writer__1905 t13; - struct io_Writer__1905 t9; - struct io_Writer__1905 t14; - struct io_Writer__1905 const *t15; + nav__5434_54 (**t12)(void const *, nav__5434_39); + struct io_Writer__1950 t13; + struct io_Writer__1950 t9; + struct io_Writer__1950 t14; + struct io_Writer__1950 const *t15; struct fs_File__546 t0; struct fs_File__546 t1; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t3; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t4; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t6; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t3; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t4; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t6; uint16_t t16; uint16_t t17; bool t18; debug_lockStdErr__161(); - t0 = io_getStdErr__3758(); + t0 = io_getStdErr__3756(); t1 = t0; t2 = (struct fs_File__546 const *)&t1; t0 = (*t2); t3 = fs_File_writer__1162(t0); t4 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t4; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t4; t3 = (*t5); t6 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t6; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t6; t7 = t5; - t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *)&t7; + t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *)&t7; t10 = (void const **)&t9.context; t5 = (*t8); t2 = (struct fs_File__546 const *)&t5->context; t11 = (void const *)t2; (*t10) = t11; - t12 = (nav__5442_54 (**)(void const *, nav__5442_39))&t9.writeFn; - (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3820; + t12 = (nav__5434_54 (**)(void const *, nav__5434_39))&t9.writeFn; + (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3818; t13 = t9; t14 = t13; - t15 = (struct io_Writer__1905 const *)&t14; + t15 = (struct io_Writer__1950 const *)&t14; t13 = (*t15); - t16 = io_Writer_print__anon_5760__5443(t13, a0); + t16 = io_Writer_print__anon_5641__5435(t13, a0); memcpy(&t17, &t16, sizeof(uint16_t)); t18 = t17 == UINT16_C(0); if (t18) { @@ -9632,34 +9585,34 @@ static void debug_print__anon_5759__5442(nav__5442_40 const a0) { return; } -static uint16_t io_Writer_print__anon_5760__5443(struct io_Writer__1905 const a0, nav__5443_41 const a1) { +static uint16_t io_Writer_print__anon_5641__5435(struct io_Writer__1950 const a0, nav__5435_41 const a1) { uint16_t t0; uint16_t t1; - t0 = fmt_format__anon_5761__5444(a0, a1); + t0 = fmt_format__anon_5642__5436(a0, a1); memcpy(&t1, &t0, sizeof(uint16_t)); return t1; } -static uint16_t fmt_format__anon_5761__5444(struct io_Writer__1905 const a0, nav__5444_41 const a1) { - struct io_Writer__1905 const *t1; - struct io_Writer__1905 t2; - struct io_Writer__1905 t0; - nav__5444_40 t4; +static uint16_t fmt_format__anon_5642__5436(struct io_Writer__1950 const a0, nav__5436_41 const a1) { + struct io_Writer__1950 const *t1; + struct io_Writer__1950 t2; + struct io_Writer__1950 t0; + nav__5436_40 t4; uint16_t t3; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5444_40){(uint8_t const *)&__anon_5798,(uintptr_t)27ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5436_40){(uint8_t const *)&__anon_5679,(uintptr_t)27ul}); if (t3) { return t3; } t4 = a1.f0; - t3 = fmt_formatType__anon_3903__5144(t4, (struct fmt_FormatOptions__3815){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); + t3 = fmt_formatType__anon_3846__5142(t4, (struct fmt_FormatOptions__3758){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); if (t3) { return t3; } t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5444_40){(uint8_t const *)&__anon_3909,(uintptr_t)1ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5436_40){(uint8_t const *)&__anon_3852,(uintptr_t)1ul}); if (t3) { return t3; } @@ -9677,7 +9630,7 @@ static zig_cold uint16_t instruments_perf_PerfInstrument_stop_benchmark__342(str t1 = (struct instruments_perf_PerfInstrument__200 *const *)&t0; t2 = (*t1); t3 = (struct fifo_UnixPipe_Writer__538 *)&t2->writer; - t4 = fifo_UnixPipe_Writer_sendCmd__991(t3, (struct shared_Command__1959){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(2)}); + t4 = fifo_UnixPipe_Writer_sendCmd__991(t3, (struct shared_Command__2004){{{{(uint8_t const *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},UINT32_C(0xaaaaaaaa)}},UINT8_C(2)}); if (t4) { return t4; } @@ -9696,14 +9649,12 @@ void c_instrument_hooks_stop_benchmark__235(struct instruments_root_InstrumentHo struct instruments_root_InstrumentHooks__188 *t5; struct instruments_root_InstrumentHooks__188 *const *t3; struct instruments_root_InstrumentHooks__188 t6; - uintptr_t t8; - uintptr_t t9; - struct instruments_perf_PerfInstrument__200 *t13; - nav__235_63 t16; - nav__235_65 t17; + struct instruments_perf_PerfInstrument__200 *t8; + nav__235_61 t11; + nav__235_63 t12; uint16_t t4; - uint16_t t14; - uint16_t t15; + uint16_t t9; + uint16_t t10; bool t0; uint8_t t7; t0 = a0 != NULL; @@ -9718,13 +9669,7 @@ void c_instrument_hooks_stop_benchmark__235(struct instruments_root_InstrumentHo t7 = t6.tag; t0 = t7 == UINT8_C(0); if (t0) { - t8 = helpers_valgrind_black_box__anon_914__3501((uintptr_t)0ul); - t9 = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t t10 __asm("rdx") = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t const (*const t11)[6] __asm("rax") = &__anon_5823; - register uintptr_t const t12 __asm("rdx") = t8; - __asm volatile(" rolq $3, %%rdi ; rolq $13, %%rdi\n rolq $61, %%rdi ; rolq $51, %%rdi\n xchgq %%rbx, %%rbx": "=r"(t10): "r"(t11), "r"(t12): "cc", "memory"); - t9 = t10; + callgrind_stop_instrumentation(); t4 = 0; goto zig_block_2; } @@ -9739,14 +9684,14 @@ void c_instrument_hooks_stop_benchmark__235(struct instruments_root_InstrumentHo if (t0) { goto zig_block_5; } - debug_no_panic_inactiveUnionField__anon_5659__5432(t7, UINT8_C(1)); + debug_no_panic_inactiveUnionField__anon_5576__5430(t7, UINT8_C(1)); zig_unreachable(); zig_block_5:; - t13 = (struct instruments_perf_PerfInstrument__200 *)&t1->payload.perf; - t14 = instruments_perf_PerfInstrument_stop_benchmark__342(t13); - memcpy(&t15, &t14, sizeof(uint16_t)); - t4 = t15; + t8 = (struct instruments_perf_PerfInstrument__200 *)&t1->payload.perf; + t9 = instruments_perf_PerfInstrument_stop_benchmark__342(t8); + memcpy(&t10, &t9, sizeof(uint16_t)); + t4 = t10; goto zig_block_2; } goto zig_block_4; @@ -9759,14 +9704,14 @@ void c_instrument_hooks_stop_benchmark__235(struct instruments_root_InstrumentHo goto zig_block_2; zig_block_2:; - memcpy(&t15, &t4, sizeof(uint16_t)); - t0 = t15 == UINT16_C(0); + memcpy(&t10, &t4, sizeof(uint16_t)); + t0 = t10 == UINT16_C(0); if (t0) { goto zig_block_1; } - t16 = zig_errorName[t15 - 1]; - t17.f0 = t16; - debug_print__anon_5838__5445(t17); + t11 = zig_errorName[t10 - 1]; + t12.f0 = t11; + debug_print__anon_5716__5438(t12); goto zig_block_1; zig_block_1:; @@ -9778,51 +9723,51 @@ void c_instrument_hooks_stop_benchmark__235(struct instruments_root_InstrumentHo return; } -static void debug_print__anon_5838__5445(nav__5445_40 const a0) { +static void debug_print__anon_5716__5438(nav__5438_40 const a0) { struct fs_File__546 const *t2; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t5; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t7; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *t8; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t5; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t7; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *t8; void const **t10; void const *t11; - nav__5445_54 (**t12)(void const *, nav__5445_39); - struct io_Writer__1905 t13; - struct io_Writer__1905 t9; - struct io_Writer__1905 t14; - struct io_Writer__1905 const *t15; + nav__5438_54 (**t12)(void const *, nav__5438_39); + struct io_Writer__1950 t13; + struct io_Writer__1950 t9; + struct io_Writer__1950 t14; + struct io_Writer__1950 const *t15; struct fs_File__546 t0; struct fs_File__546 t1; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t3; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t4; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t6; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t3; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t4; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t6; uint16_t t16; uint16_t t17; bool t18; debug_lockStdErr__161(); - t0 = io_getStdErr__3758(); + t0 = io_getStdErr__3756(); t1 = t0; t2 = (struct fs_File__546 const *)&t1; t0 = (*t2); t3 = fs_File_writer__1162(t0); t4 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t4; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t4; t3 = (*t5); t6 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t6; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t6; t7 = t5; - t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *)&t7; + t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *)&t7; t10 = (void const **)&t9.context; t5 = (*t8); t2 = (struct fs_File__546 const *)&t5->context; t11 = (void const *)t2; (*t10) = t11; - t12 = (nav__5445_54 (**)(void const *, nav__5445_39))&t9.writeFn; - (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3820; + t12 = (nav__5438_54 (**)(void const *, nav__5438_39))&t9.writeFn; + (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3818; t13 = t9; t14 = t13; - t15 = (struct io_Writer__1905 const *)&t14; + t15 = (struct io_Writer__1950 const *)&t14; t13 = (*t15); - t16 = io_Writer_print__anon_5839__5446(t13, a0); + t16 = io_Writer_print__anon_5717__5439(t13, a0); memcpy(&t17, &t16, sizeof(uint16_t)); t18 = t17 == UINT16_C(0); if (t18) { @@ -9836,34 +9781,34 @@ static void debug_print__anon_5838__5445(nav__5445_40 const a0) { return; } -static uint16_t io_Writer_print__anon_5839__5446(struct io_Writer__1905 const a0, nav__5446_41 const a1) { +static uint16_t io_Writer_print__anon_5717__5439(struct io_Writer__1950 const a0, nav__5439_41 const a1) { uint16_t t0; uint16_t t1; - t0 = fmt_format__anon_5840__5447(a0, a1); + t0 = fmt_format__anon_5718__5440(a0, a1); memcpy(&t1, &t0, sizeof(uint16_t)); return t1; } -static uint16_t fmt_format__anon_5840__5447(struct io_Writer__1905 const a0, nav__5447_41 const a1) { - struct io_Writer__1905 const *t1; - struct io_Writer__1905 t2; - struct io_Writer__1905 t0; - nav__5447_40 t4; +static uint16_t fmt_format__anon_5718__5440(struct io_Writer__1950 const a0, nav__5440_41 const a1) { + struct io_Writer__1950 const *t1; + struct io_Writer__1950 t2; + struct io_Writer__1950 t0; + nav__5440_40 t4; uint16_t t3; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5447_40){(uint8_t const *)&__anon_5876,(uintptr_t)26ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5440_40){(uint8_t const *)&__anon_5754,(uintptr_t)26ul}); if (t3) { return t3; } t4 = a1.f0; - t3 = fmt_formatType__anon_3903__5144(t4, (struct fmt_FormatOptions__3815){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); + t3 = fmt_formatType__anon_3846__5142(t4, (struct fmt_FormatOptions__3758){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); if (t3) { return t3; } t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5447_40){(uint8_t const *)&__anon_3909,(uintptr_t)1ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5440_40){(uint8_t const *)&__anon_3852,(uintptr_t)1ul}); if (t3) { return t3; } @@ -9877,15 +9822,15 @@ static uint16_t instruments_perf_PerfInstrument_current_benchmark__343(struct in struct fifo_UnixPipe_Writer__538 *t3; nav__343_56 t4; nav__343_56 t5; - struct shared_Command__struct_1962__1962 t6; - struct shared_Command__1959 t7; + struct shared_Command__struct_2007__2007 t6; + struct shared_Command__2004 t7; struct fifo_UnixPipe_Reader__540 *t9; uint16_t t8; t0 = a0; t1 = (struct instruments_perf_PerfInstrument__200 *const *)&t0; t2 = (*t1); t3 = (struct fifo_UnixPipe_Writer__538 *)&t2->writer; - t4 = mem_span__anon_5925__5448(a2); + t4 = mem_span__anon_5801__5442(a2); memcpy(&t5, &t4, sizeof(nav__343_56)); t6.uri = t5; t6.pid = a1; @@ -9911,16 +9856,12 @@ void c_instrument_hooks_current_benchmark__236(struct instruments_root_Instrumen struct instruments_root_InstrumentHooks__188 *const *t3; struct instruments_root_InstrumentHooks__188 t6; uintptr_t t8; - uintptr_t t13; uint8_t const *t9; - uintptr_t *t11; - uintptr_t const (*t12)[6]; - struct instruments_perf_PerfInstrument__200 *t17; - nav__236_64 t19; - nav__236_66 t20; - uintptr_t t10[6]; + struct instruments_perf_PerfInstrument__200 *t10; + nav__236_61 t12; + nav__236_63 t13; uint16_t t4; - uint16_t t18; + uint16_t t11; bool t0; uint8_t t7; t0 = a0 != NULL; @@ -9940,32 +9881,12 @@ void c_instrument_hooks_current_benchmark__236(struct instruments_root_Instrumen if (t0) { goto zig_block_4; } - debug_no_panic_castToNull__4102(); + debug_no_panic_castToNull__4100(); zig_unreachable(); zig_block_4:; t9 = (uint8_t const *)a2; - t8 = (uintptr_t)t9; - t11 = (uintptr_t *)&t10[(uintptr_t)0ul]; - (*t11) = (uintptr_t)1129578499ul; - t11 = (uintptr_t *)&t10[(uintptr_t)1ul]; - (*t11) = t8; - t11 = (uintptr_t *)&t10[(uintptr_t)2ul]; - (*t11) = (uintptr_t)0ul; - t11 = (uintptr_t *)&t10[(uintptr_t)3ul]; - (*t11) = (uintptr_t)0ul; - t11 = (uintptr_t *)&t10[(uintptr_t)4ul]; - (*t11) = (uintptr_t)0ul; - t11 = (uintptr_t *)&t10[(uintptr_t)5ul]; - (*t11) = (uintptr_t)0ul; - t12 = (uintptr_t const (*)[6])&t10; - t8 = helpers_valgrind_black_box__anon_914__3501((uintptr_t)0ul); - t13 = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t t14 __asm("rdx") = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t const (*const t15)[6] __asm("rax") = t12; - register uintptr_t const t16 __asm("rdx") = t8; - __asm volatile(" rolq $3, %%rdi ; rolq $13, %%rdi\n rolq $61, %%rdi ; rolq $51, %%rdi\n xchgq %%rbx, %%rbx": "=r"(t14): "r"(t15), "r"(t16): "cc", "memory"); - t13 = t14; + callgrind_dump_stats_at(t9); goto zig_block_3; } case UINT8_C(1): { @@ -9976,14 +9897,14 @@ void c_instrument_hooks_current_benchmark__236(struct instruments_root_Instrumen if (t0) { goto zig_block_5; } - debug_no_panic_inactiveUnionField__anon_5659__5432(t7, UINT8_C(1)); + debug_no_panic_inactiveUnionField__anon_5576__5430(t7, UINT8_C(1)); zig_unreachable(); zig_block_5:; - t17 = (struct instruments_perf_PerfInstrument__200 *)&t1->payload.perf; - t18 = instruments_perf_PerfInstrument_current_benchmark__343(t17, a1, a2); - if (t18) { - t4 = t18; + t10 = (struct instruments_perf_PerfInstrument__200 *)&t1->payload.perf; + t11 = instruments_perf_PerfInstrument_current_benchmark__343(t10, a1, a2); + if (t11) { + t4 = t11; goto zig_block_2; } goto zig_block_3; @@ -9992,7 +9913,7 @@ void c_instrument_hooks_current_benchmark__236(struct instruments_root_Instrumen goto zig_block_3; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -10002,14 +9923,14 @@ void c_instrument_hooks_current_benchmark__236(struct instruments_root_Instrumen goto zig_block_2; zig_block_2:; - memcpy(&t18, &t4, sizeof(uint16_t)); - t0 = t18 == UINT16_C(0); + memcpy(&t11, &t4, sizeof(uint16_t)); + t0 = t11 == UINT16_C(0); if (t0) { goto zig_block_1; } - t19 = zig_errorName[t18 - 1]; - t20.f0 = t19; - debug_print__anon_5933__5449(t20); + t12 = zig_errorName[t11 - 1]; + t13.f0 = t12; + debug_print__anon_5809__5443(t13); goto zig_block_1; zig_block_1:; @@ -10021,29 +9942,29 @@ void c_instrument_hooks_current_benchmark__236(struct instruments_root_Instrumen return; } -static zig_cold zig_noreturn void debug_no_panic_castToNull__4102(void) { +static zig_cold zig_noreturn void debug_no_panic_castToNull__4100(void) { zig_trap(); } -static nav__5448_39 mem_span__anon_5925__5448(uint8_t const *const a0) { +static nav__5442_39 mem_span__anon_5801__5442(uint8_t const *const a0) { uint8_t const *const *t1; uintptr_t t2; uint8_t const *t3; uint8_t const *t4; uint8_t const *t0; - nav__5448_39 t6; + nav__5442_39 t6; bool t5; uint8_t t7; t0 = a0; t1 = (uint8_t const *const *)&t0; - t2 = mem_len__anon_5941__5450(a0); + t2 = mem_len__anon_5817__5444(a0); t3 = (*t1); t4 = (uint8_t const *)(((uintptr_t)t3) + ((uintptr_t)0ul*sizeof(uint8_t))); t5 = (uintptr_t)0ul <= t2; if (t5) { goto zig_block_0; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t2); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t2); zig_unreachable(); zig_block_0:; @@ -10051,7 +9972,7 @@ static nav__5448_39 mem_span__anon_5925__5448(uint8_t const *const a0) { if (t5) { goto zig_block_1; } - debug_no_panic_unwrapNull__4101(); + debug_no_panic_unwrapNull__4099(); zig_unreachable(); zig_block_1:; @@ -10059,7 +9980,7 @@ static nav__5448_39 mem_span__anon_5925__5448(uint8_t const *const a0) { if (t5) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t2); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t2); zig_unreachable(); zig_block_2:; @@ -10070,58 +9991,58 @@ static nav__5448_39 mem_span__anon_5925__5448(uint8_t const *const a0) { if (t5) { goto zig_block_3; } - debug_no_panic_sentinelMismatch__anon_5944__5451(UINT8_C(0), t7); + debug_no_panic_sentinelMismatch__anon_5820__5445(UINT8_C(0), t7); zig_unreachable(); zig_block_3:; return t6; } -static void debug_print__anon_5933__5449(nav__5449_40 const a0) { +static void debug_print__anon_5809__5443(nav__5443_40 const a0) { struct fs_File__546 const *t2; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t5; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t7; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *t8; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t5; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t7; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *t8; void const **t10; void const *t11; - nav__5449_54 (**t12)(void const *, nav__5449_39); - struct io_Writer__1905 t13; - struct io_Writer__1905 t9; - struct io_Writer__1905 t14; - struct io_Writer__1905 const *t15; + nav__5443_54 (**t12)(void const *, nav__5443_39); + struct io_Writer__1950 t13; + struct io_Writer__1950 t9; + struct io_Writer__1950 t14; + struct io_Writer__1950 const *t15; struct fs_File__546 t0; struct fs_File__546 t1; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t3; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t4; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t6; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t3; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t4; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t6; uint16_t t16; uint16_t t17; bool t18; debug_lockStdErr__161(); - t0 = io_getStdErr__3758(); + t0 = io_getStdErr__3756(); t1 = t0; t2 = (struct fs_File__546 const *)&t1; t0 = (*t2); t3 = fs_File_writer__1162(t0); t4 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t4; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t4; t3 = (*t5); t6 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t6; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t6; t7 = t5; - t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *)&t7; + t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *)&t7; t10 = (void const **)&t9.context; t5 = (*t8); t2 = (struct fs_File__546 const *)&t5->context; t11 = (void const *)t2; (*t10) = t11; - t12 = (nav__5449_54 (**)(void const *, nav__5449_39))&t9.writeFn; - (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3820; + t12 = (nav__5443_54 (**)(void const *, nav__5443_39))&t9.writeFn; + (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3818; t13 = t9; t14 = t13; - t15 = (struct io_Writer__1905 const *)&t14; + t15 = (struct io_Writer__1950 const *)&t14; t13 = (*t15); - t16 = io_Writer_print__anon_5945__5452(t13, a0); + t16 = io_Writer_print__anon_5821__5446(t13, a0); memcpy(&t17, &t16, sizeof(uint16_t)); t18 = t17 == UINT16_C(0); if (t18) { @@ -10135,7 +10056,7 @@ static void debug_print__anon_5933__5449(nav__5449_40 const a0) { return; } -static uintptr_t mem_len__anon_5941__5450(uint8_t const *const a0) { +static uintptr_t mem_len__anon_5817__5444(uint8_t const *const a0) { uintptr_t t1; uint8_t const *t2; bool t0; @@ -10146,30 +10067,30 @@ static uintptr_t mem_len__anon_5941__5450(uint8_t const *const a0) { if (t0) { goto zig_block_0; } - debug_no_panic_castToNull__4102(); + debug_no_panic_castToNull__4100(); zig_unreachable(); zig_block_0:; t2 = (uint8_t const *)a0; - t1 = mem_indexOfSentinel__anon_5951__5453(t2); + t1 = mem_indexOfSentinel__anon_5827__5447(t2); return t1; } -static zig_cold zig_noreturn void debug_no_panic_sentinelMismatch__anon_5944__5451(uint8_t const a0, uint8_t const a1) { +static zig_cold zig_noreturn void debug_no_panic_sentinelMismatch__anon_5820__5445(uint8_t const a0, uint8_t const a1) { (void)a0; (void)a1; zig_trap(); } -static uint16_t io_Writer_print__anon_5945__5452(struct io_Writer__1905 const a0, nav__5452_41 const a1) { +static uint16_t io_Writer_print__anon_5821__5446(struct io_Writer__1950 const a0, nav__5446_41 const a1) { uint16_t t0; uint16_t t1; - t0 = fmt_format__anon_5952__5454(a0, a1); + t0 = fmt_format__anon_5828__5448(a0, a1); memcpy(&t1, &t0, sizeof(uint16_t)); return t1; } -static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { +static uintptr_t mem_indexOfSentinel__anon_5827__5447(uint8_t const *const a0) { static uint8_t const t11[32] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"; static uint8_t const t19[32] = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"; uint8_t const *const *t1; @@ -10181,19 +10102,19 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { uint8_t const *t0; uint64_t t7; uint8_t const (*t8)[32]; - nav__5453_49 t16; + nav__5447_49 t16; uint8_t const (*t18)[32]; bool t3; uint8_t t9[32]; uint8_t t10[32]; bool t12[32]; - nav__5453_45 t13; - nav__5453_47 t14; + nav__5447_45 t13; + nav__5447_47 t14; uint8_t t15; t0 = a0; t1 = (uint8_t const *const *)&t0; t2 = (uintptr_t)0ul; - t3 = math_isPowerOfTwo__anon_5177__5258(); + t3 = math_isPowerOfTwo__anon_5094__5256(); if (t3) { debug_assert__179(true); t4 = t2; @@ -10219,13 +10140,13 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { } if (t3) { t4 = t2; - memcpy(t13.array, t12, sizeof(nav__5453_45)); - t14 = simd_firstTrue__anon_5206__5265(t13); + memcpy(t13.array, t12, sizeof(nav__5447_45)); + t14 = simd_firstTrue__anon_5123__5263(t13); t3 = t14.is_null != true; if (t3) { goto zig_block_3; } - debug_no_panic_unwrapNull__4101(); + debug_no_panic_unwrapNull__4099(); zig_unreachable(); zig_block_3:; @@ -10237,7 +10158,7 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { if (t3) { goto zig_block_4; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_4:; @@ -10248,14 +10169,14 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { zig_block_2:; t6 = t2; - t17 = mem_alignForward__anon_5965__5455(t4, (uintptr_t)32ul); + t17 = mem_alignForward__anon_5841__5449(t4, (uintptr_t)32ul); t16.f1 = zig_subo_u64(&t16.f0, t17, t4, UINT8_C(64)); t15 = t16.f1; t3 = t15 == UINT8_C(0); if (t3) { goto zig_block_5; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_5:; @@ -10266,7 +10187,7 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { if (t3) { goto zig_block_6; } - debug_no_panic_exactDivisionRemainder__4111(); + debug_no_panic_exactDivisionRemainder__4109(); zig_unreachable(); zig_block_6:; @@ -10276,7 +10197,7 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { if (t3) { goto zig_block_7; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_7:; @@ -10310,7 +10231,7 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { if (t3) { goto zig_block_11; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_11:; @@ -10349,13 +10270,13 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { } if (t3) { t6 = t2; - memcpy(t13.array, t12, sizeof(nav__5453_45)); - t14 = simd_firstTrue__anon_5206__5265(t13); + memcpy(t13.array, t12, sizeof(nav__5447_45)); + t14 = simd_firstTrue__anon_5123__5263(t13); t3 = t14.is_null != true; if (t3) { goto zig_block_13; } - debug_no_panic_unwrapNull__4101(); + debug_no_panic_unwrapNull__4099(); zig_unreachable(); zig_block_13:; @@ -10367,7 +10288,7 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { if (t3) { goto zig_block_14; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_14:; @@ -10384,7 +10305,7 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { if (t3) { goto zig_block_15; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_15:; @@ -10407,7 +10328,7 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { if (t3) { goto zig_block_18; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_18:; @@ -10425,38 +10346,38 @@ static uintptr_t mem_indexOfSentinel__anon_5951__5453(uint8_t const *const a0) { return t17; } -static uint16_t fmt_format__anon_5952__5454(struct io_Writer__1905 const a0, nav__5454_41 const a1) { - struct io_Writer__1905 const *t1; - struct io_Writer__1905 t2; - struct io_Writer__1905 t0; - nav__5454_40 t4; +static uint16_t fmt_format__anon_5828__5448(struct io_Writer__1950 const a0, nav__5448_41 const a1) { + struct io_Writer__1950 const *t1; + struct io_Writer__1950 t2; + struct io_Writer__1950 t0; + nav__5448_40 t4; uint16_t t3; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5454_40){(uint8_t const *)&__anon_6011,(uintptr_t)33ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5448_40){(uint8_t const *)&__anon_5887,(uintptr_t)33ul}); if (t3) { return t3; } t4 = a1.f0; - t3 = fmt_formatType__anon_3903__5144(t4, (struct fmt_FormatOptions__3815){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); + t3 = fmt_formatType__anon_3846__5142(t4, (struct fmt_FormatOptions__3758){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); if (t3) { return t3; } t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5454_40){(uint8_t const *)&__anon_3909,(uintptr_t)1ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5448_40){(uint8_t const *)&__anon_3852,(uintptr_t)1ul}); if (t3) { return t3; } return 0; } -static uintptr_t mem_alignForward__anon_5965__5455(uintptr_t const a0, uintptr_t const a1) { - nav__5455_39 t1; +static uintptr_t mem_alignForward__anon_5841__5449(uintptr_t const a0, uintptr_t const a1) { + nav__5449_39 t1; uintptr_t t3; bool t0; uint8_t t2; - t0 = mem_isValidAlignGeneric__anon_6022__5456(a1); + t0 = mem_isValidAlignGeneric__anon_5898__5450(a1); debug_assert__179(t0); t1.f1 = zig_subo_u64(&t1.f0, a1, (uintptr_t)1ul, UINT8_C(64)); t2 = t1.f1; @@ -10464,7 +10385,7 @@ static uintptr_t mem_alignForward__anon_5965__5455(uintptr_t const a0, uintptr_t if (t0) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -10475,12 +10396,12 @@ static uintptr_t mem_alignForward__anon_5965__5455(uintptr_t const a0, uintptr_t if (t0) { goto zig_block_1; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_1:; t3 = t1.f0; - t3 = mem_alignBackward__anon_6023__5457(t3, a1); + t3 = mem_alignBackward__anon_5899__5451(t3, a1); return t3; } @@ -10490,18 +10411,18 @@ static bool mem_isAligned__499(uintptr_t const a0, uintptr_t const a1) { bool t2; t0 = a0; t1 = a1; - t2 = mem_isAlignedGeneric__anon_6027__5458(t0, t1); + t2 = mem_isAlignedGeneric__anon_5903__5452(t0, t1); return t2; } -static bool mem_isValidAlignGeneric__anon_6022__5456(uintptr_t const a0) { +static bool mem_isValidAlignGeneric__anon_5898__5450(uintptr_t const a0) { uint64_t t0; bool t1; bool t2; t0 = a0; t1 = t0 > UINT64_C(0); if (t1) { - t1 = math_isPowerOfTwo__anon_3247__4638(a0); + t1 = math_isPowerOfTwo__anon_3191__4636(a0); t2 = t1; goto zig_block_0; } @@ -10512,12 +10433,12 @@ static bool mem_isValidAlignGeneric__anon_6022__5456(uintptr_t const a0) { return t2; } -static uintptr_t mem_alignBackward__anon_6023__5457(uintptr_t const a0, uintptr_t const a1) { - nav__5457_39 t1; +static uintptr_t mem_alignBackward__anon_5899__5451(uintptr_t const a0, uintptr_t const a1) { + nav__5451_39 t1; uintptr_t t3; bool t0; uint8_t t2; - t0 = mem_isValidAlignGeneric__anon_6022__5456(a1); + t0 = mem_isValidAlignGeneric__anon_5898__5450(a1); debug_assert__179(t0); t1.f1 = zig_subo_u64(&t1.f0, a1, (uintptr_t)1ul, UINT8_C(64)); t2 = t1.f1; @@ -10525,7 +10446,7 @@ static uintptr_t mem_alignBackward__anon_6023__5457(uintptr_t const a0, uintptr_ if (t0) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -10535,20 +10456,20 @@ static uintptr_t mem_alignBackward__anon_6023__5457(uintptr_t const a0, uintptr_ return t3; } -static bool mem_isAlignedGeneric__anon_6027__5458(uint64_t const a0, uint64_t const a1) { +static bool mem_isAlignedGeneric__anon_5903__5452(uint64_t const a0, uint64_t const a1) { uint64_t t0; bool t1; - t0 = mem_alignBackward__anon_6029__5459(a0, a1); + t0 = mem_alignBackward__anon_5905__5453(a0, a1); t1 = t0 == a0; return t1; } -static uint64_t mem_alignBackward__anon_6029__5459(uint64_t const a0, uint64_t const a1) { - nav__5459_39 t1; +static uint64_t mem_alignBackward__anon_5905__5453(uint64_t const a0, uint64_t const a1) { + nav__5453_39 t1; uint64_t t3; bool t0; uint8_t t2; - t0 = mem_isValidAlignGeneric__anon_6031__5460(a1); + t0 = mem_isValidAlignGeneric__anon_5907__5454(a1); debug_assert__179(t0); t1.f1 = zig_subo_u64(&t1.f0, a1, UINT64_C(1), UINT8_C(64)); t2 = t1.f1; @@ -10556,7 +10477,7 @@ static uint64_t mem_alignBackward__anon_6029__5459(uint64_t const a0, uint64_t c if (t0) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -10566,12 +10487,12 @@ static uint64_t mem_alignBackward__anon_6029__5459(uint64_t const a0, uint64_t c return t3; } -static bool mem_isValidAlignGeneric__anon_6031__5460(uint64_t const a0) { +static bool mem_isValidAlignGeneric__anon_5907__5454(uint64_t const a0) { bool t0; bool t1; t0 = a0 > UINT64_C(0); if (t0) { - t0 = math_isPowerOfTwo__anon_6033__5461(a0); + t0 = math_isPowerOfTwo__anon_5909__5455(a0); t1 = t0; goto zig_block_0; } @@ -10582,8 +10503,8 @@ static bool mem_isValidAlignGeneric__anon_6031__5460(uint64_t const a0) { return t1; } -static bool math_isPowerOfTwo__anon_6033__5461(uint64_t const a0) { - nav__5461_39 t1; +static bool math_isPowerOfTwo__anon_5909__5455(uint64_t const a0) { + nav__5455_39 t1; uint64_t t3; bool t0; uint8_t t2; @@ -10595,7 +10516,7 @@ static bool math_isPowerOfTwo__anon_6033__5461(uint64_t const a0) { if (t0) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -10613,16 +10534,16 @@ static uint16_t instruments_perf_PerfInstrument_set_integration__344(struct inst nav__344_56 t4; nav__344_56 t5; nav__344_56 t6; - struct shared_Command__struct_1963__1963 t7; - struct shared_Command__1959 t8; + struct shared_Command__struct_2008__2008 t7; + struct shared_Command__2004 t8; struct fifo_UnixPipe_Reader__540 *t10; uint16_t t9; t0 = a0; t1 = (struct instruments_perf_PerfInstrument__200 *const *)&t0; t2 = (*t1); t3 = (struct fifo_UnixPipe_Writer__538 *)&t2->writer; - t4 = mem_span__anon_5925__5448(a1); - t5 = mem_span__anon_5925__5448(a2); + t4 = mem_span__anon_5801__5442(a1); + t5 = mem_span__anon_5801__5442(a2); memcpy(&t6, &t4, sizeof(nav__344_56)); memcpy(&t4, &t5, sizeof(nav__344_56)); t7.name = t6; @@ -10658,15 +10579,10 @@ void c_instrument_hooks_set_integration__237(struct instruments_root_InstrumentH nav__237_65 t17; uint8_t *t18; uint8_t const *t19; - uintptr_t t20; - uintptr_t t24; - uintptr_t *t22; - uintptr_t const (*t23)[6]; - struct mem_Allocator__206 const *t28; - struct instruments_perf_PerfInstrument__200 *t29; - nav__237_74 t30; - nav__237_76 t31; - uintptr_t t21[6]; + struct mem_Allocator__206 const *t20; + struct instruments_perf_PerfInstrument__200 *t21; + nav__237_71 t22; + nav__237_73 t23; uint16_t t4; uint16_t t10; uint16_t t16; @@ -10691,7 +10607,7 @@ void c_instrument_hooks_set_integration__237(struct instruments_root_InstrumentH if (t0) { goto zig_block_4; } - debug_no_panic_inactiveUnionField__anon_5659__5432(t7, UINT8_C(0)); + debug_no_panic_inactiveUnionField__anon_5576__5430(t7, UINT8_C(0)); zig_unreachable(); zig_block_4:; @@ -10702,7 +10618,7 @@ void c_instrument_hooks_set_integration__237(struct instruments_root_InstrumentH t13 = t9.allocator; t14.f0 = a1; t14.f1 = a2; - t15 = fmt_allocPrintZ__anon_6065__5462(t13, t14); + t15 = fmt_allocPrintZ__anon_5941__5456(t13, t14); if (t15.error) { t16 = t15.error; t10 = t16; @@ -10711,30 +10627,10 @@ void c_instrument_hooks_set_integration__237(struct instruments_root_InstrumentH t17 = t15.payload; t18 = t17.ptr; t19 = (uint8_t const *)t18; - t20 = (uintptr_t)t19; - t22 = (uintptr_t *)&t21[(uintptr_t)0ul]; - (*t22) = (uintptr_t)1129578499ul; - t22 = (uintptr_t *)&t21[(uintptr_t)1ul]; - (*t22) = t20; - t22 = (uintptr_t *)&t21[(uintptr_t)2ul]; - (*t22) = (uintptr_t)0ul; - t22 = (uintptr_t *)&t21[(uintptr_t)3ul]; - (*t22) = (uintptr_t)0ul; - t22 = (uintptr_t *)&t21[(uintptr_t)4ul]; - (*t22) = (uintptr_t)0ul; - t22 = (uintptr_t *)&t21[(uintptr_t)5ul]; - (*t22) = (uintptr_t)0ul; - t23 = (uintptr_t const (*)[6])&t21; - t20 = helpers_valgrind_black_box__anon_914__3501((uintptr_t)0ul); - t24 = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t t25 __asm("rdx") = (uintptr_t)0xaaaaaaaaaaaaaaaaul; - register uintptr_t const (*const t26)[6] __asm("rax") = t23; - register uintptr_t const t27 __asm("rdx") = t20; - __asm volatile(" rolq $3, %%rdi ; rolq $13, %%rdi\n rolq $61, %%rdi ; rolq $51, %%rdi\n xchgq %%rbx, %%rbx": "=r"(t25): "r"(t26), "r"(t27): "cc", "memory"); - t24 = t25; - t28 = (struct mem_Allocator__206 const *)&t12->allocator; - t13 = (*t28); - mem_Allocator_free__anon_6067__5463(t13, t17); + callgrind_dump_stats_at(t19); + t20 = (struct mem_Allocator__206 const *)&t12->allocator; + t13 = (*t20); + mem_Allocator_free__anon_5943__5457(t13, t17); t10 = 0; goto zig_block_5; @@ -10754,12 +10650,12 @@ void c_instrument_hooks_set_integration__237(struct instruments_root_InstrumentH if (t0) { goto zig_block_6; } - debug_no_panic_inactiveUnionField__anon_5659__5432(t7, UINT8_C(1)); + debug_no_panic_inactiveUnionField__anon_5576__5430(t7, UINT8_C(1)); zig_unreachable(); zig_block_6:; - t29 = (struct instruments_perf_PerfInstrument__200 *)&t1->payload.perf; - t16 = instruments_perf_PerfInstrument_set_integration__344(t29, a1, a2); + t21 = (struct instruments_perf_PerfInstrument__200 *)&t1->payload.perf; + t16 = instruments_perf_PerfInstrument_set_integration__344(t21, a1, a2); if (t16) { t4 = t16; goto zig_block_2; @@ -10770,7 +10666,7 @@ void c_instrument_hooks_set_integration__237(struct instruments_root_InstrumentH goto zig_block_3; } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -10785,9 +10681,9 @@ void c_instrument_hooks_set_integration__237(struct instruments_root_InstrumentH if (t0) { goto zig_block_1; } - t30 = zig_errorName[t16 - 1]; - t31.f0 = t30; - debug_print__anon_6079__5464(t31); + t22 = zig_errorName[t16 - 1]; + t23.f0 = t22; + debug_print__anon_5955__5458(t23); goto zig_block_1; zig_block_1:; @@ -10799,29 +10695,29 @@ void c_instrument_hooks_set_integration__237(struct instruments_root_InstrumentH return; } -static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206 const a0, nav__5462_43 const a1) { - nav__5462_40 t0; - nav__5462_39 t2; - nav__5462_39 t3; - nav__5462_39 const *t4; +static nav__5456_40 fmt_allocPrintZ__anon_5941__5456(struct mem_Allocator__206 const a0, nav__5456_43 const a1) { + nav__5456_40 t0; + nav__5456_39 t2; + nav__5456_39 t3; + nav__5456_39 const *t4; uintptr_t t5; uintptr_t t10; uintptr_t t11; - nav__5462_54 t6; + nav__5456_54 t6; uint8_t *t9; uint16_t t1; uint8_t t7; bool t8; - t0 = fmt_allocPrint__anon_6097__5465(a0, a1); + t0 = fmt_allocPrint__anon_5973__5459(a0, a1); if (t0.error) { t1 = t0.error; - t0.payload = (nav__5462_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; + t0.payload = (nav__5456_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; t0.error = t1; return t0; } t2 = t0.payload; t3 = t2; - t4 = (nav__5462_39 const *)&t3; + t4 = (nav__5456_39 const *)&t3; t5 = t2.len; t6.f1 = zig_subo_u64(&t6.f0, t5, (uintptr_t)1ul, UINT8_C(64)); t7 = t6.f1; @@ -10829,7 +10725,7 @@ static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206 c if (t8) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -10841,7 +10737,7 @@ static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206 c if (t8) { goto zig_block_1; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t5); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t5); zig_unreachable(); zig_block_1:; @@ -10852,7 +10748,7 @@ static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206 c if (t8) { goto zig_block_2; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_2:; @@ -10861,7 +10757,7 @@ static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206 c if (t8) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096(t11, t10); + debug_no_panic_outOfBounds__4094(t11, t10); zig_unreachable(); zig_block_3:; @@ -10869,7 +10765,7 @@ static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206 c if (t8) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t5); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t5); zig_unreachable(); zig_block_4:; @@ -10880,7 +10776,7 @@ static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206 c if (t8) { goto zig_block_5; } - debug_no_panic_sentinelMismatch__anon_5944__5451(UINT8_C(0), t7); + debug_no_panic_sentinelMismatch__anon_5820__5445(UINT8_C(0), t7); zig_unreachable(); zig_block_5:; @@ -10889,11 +10785,11 @@ static nav__5462_40 fmt_allocPrintZ__anon_6065__5462(struct mem_Allocator__206 c return t0; } -static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206 const a0, nav__5463_40 const a1) { +static void mem_Allocator_free__anon_5943__5457(struct mem_Allocator__206 const a0, nav__5457_40 const a1) { struct mem_Allocator__206 const *t1; - nav__5463_40 t2; + nav__5457_40 t2; uintptr_t t3; - nav__5463_49 t4; + nav__5457_49 t4; uint64_t t7; uint8_t *t8; uint8_t *t9; @@ -10904,14 +10800,14 @@ static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206 const struct mem_Allocator__206 t13; struct mem_Allocator_VTable__209 const *const *t14; struct mem_Allocator_VTable__209 const *t15; - void (*const *t16)(void *, nav__5463_40, uint8_t, uintptr_t); - void (*t17)(void *, nav__5463_40, uint8_t, uintptr_t); + void (*const *t16)(void *, nav__5457_40, uint8_t, uintptr_t); + void (*t17)(void *, nav__5457_40, uint8_t, uintptr_t); void *t18; uint8_t t5; bool t6; t0 = a0; t1 = (struct mem_Allocator__206 const *)&t0; - t2 = mem_sliceAsBytes__anon_6104__5466(a1); + t2 = mem_sliceAsBytes__anon_5980__5460(a1); t3 = t2.len; t4.f1 = zig_addo_u64(&t4.f0, t3, (uintptr_t)1ul, UINT8_C(64)); t5 = t4.f1; @@ -10919,7 +10815,7 @@ static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206 const if (t6) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -10942,7 +10838,7 @@ static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206 const if (t6) { goto zig_block_2; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_2:; @@ -10950,7 +10846,7 @@ static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206 const if (t6) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_3:; @@ -10964,7 +10860,7 @@ static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206 const if (t6) { goto zig_block_4; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_4:; @@ -10972,7 +10868,7 @@ static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206 const if (t6) { goto zig_block_5; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_5:; @@ -10984,58 +10880,58 @@ static void mem_Allocator_free__anon_6067__5463(struct mem_Allocator__206 const t1 = (struct mem_Allocator__206 const *)&t13; t14 = (struct mem_Allocator_VTable__209 const *const *)&t1->vtable; t15 = (*t14); - t16 = (void (*const *)(void *, nav__5463_40, uint8_t, uintptr_t))&t15->free; + t16 = (void (*const *)(void *, nav__5457_40, uint8_t, uintptr_t))&t15->free; t17 = (*t16); t18 = t12.ptr; t17(t18, t2, t5, t3); return; } -static void debug_print__anon_6079__5464(nav__5464_40 const a0) { +static void debug_print__anon_5955__5458(nav__5458_40 const a0) { struct fs_File__546 const *t2; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t5; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *t7; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *t8; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t5; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *t7; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *t8; void const **t10; void const *t11; - nav__5464_54 (**t12)(void const *, nav__5464_39); - struct io_Writer__1905 t13; - struct io_Writer__1905 t9; - struct io_Writer__1905 t14; - struct io_Writer__1905 const *t15; + nav__5458_54 (**t12)(void const *, nav__5458_39); + struct io_Writer__1950 t13; + struct io_Writer__1950 t9; + struct io_Writer__1950 t14; + struct io_Writer__1950 const *t15; struct fs_File__546 t0; struct fs_File__546 t1; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t3; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t4; - struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 t6; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t3; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t4; + struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 t6; uint16_t t16; uint16_t t17; bool t18; debug_lockStdErr__161(); - t0 = io_getStdErr__3758(); + t0 = io_getStdErr__3756(); t1 = t0; t2 = (struct fs_File__546 const *)&t1; t0 = (*t2); t3 = fs_File_writer__1162(t0); t4 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t4; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t4; t3 = (*t5); t6 = t3; - t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *)&t6; + t5 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *)&t6; t7 = t5; - t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1889 const *const *)&t7; + t8 = (struct io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooBig_2cNoSpaceLeft_2cDeviceBusy_2cWouldBlock_2cDiskQuota_2cInvalidArgument_2cBrokenPipe_2cOperationAborted_2cNotOpenForWriting_2cLockViolation_2cConnectionResetByPeer_2cProcessNotFound_7d_2c_28function_20_27write_27_29_29__1934 const *const *)&t7; t10 = (void const **)&t9.context; t5 = (*t8); t2 = (struct fs_File__546 const *)&t5->context; t11 = (void const *)t2; (*t10) = t11; - t12 = (nav__5464_54 (**)(void const *, nav__5464_39))&t9.writeFn; - (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3820; + t12 = (nav__5458_54 (**)(void const *, nav__5458_39))&t9.writeFn; + (*t12) = &io_GenericWriter_28fs_File_2cerror_7bInputOutput_2cSystemResources_2cUnexpected_2cAccessDenied_2cNoDevice_2cFileTooB__3818; t13 = t9; t14 = t13; - t15 = (struct io_Writer__1905 const *)&t14; + t15 = (struct io_Writer__1950 const *)&t14; t13 = (*t15); - t16 = io_Writer_print__anon_6105__5467(t13, a0); + t16 = io_Writer_print__anon_5981__5461(t13, a0); memcpy(&t17, &t16, sizeof(uint16_t)); t18 = t17 == UINT16_C(0); if (t18) { @@ -11049,42 +10945,42 @@ static void debug_print__anon_6079__5464(nav__5464_40 const a0) { return; } -static nav__5465_40 fmt_allocPrint__anon_6097__5465(struct mem_Allocator__206 const a0, nav__5465_43 const a1) { +static nav__5459_40 fmt_allocPrint__anon_5973__5459(struct mem_Allocator__206 const a0, nav__5459_43 const a1) { struct mem_Allocator__206 const *t1; uintptr_t t2; uintptr_t t6; uint64_t t3; - nav__5465_54 t4; + nav__5459_54 t4; struct mem_Allocator__206 t7; struct mem_Allocator__206 t0; - nav__5465_40 t8; - nav__5465_40 t11; - nav__5465_39 t10; + nav__5459_40 t8; + nav__5459_40 t11; + nav__5459_39 t10; uint16_t t9; bool t5; t0 = a0; t1 = (struct mem_Allocator__206 const *)&t0; - t3 = fmt_count__anon_6112__5468(a1); - t4 = math_cast__anon_6114__5469(t3); + t3 = fmt_count__anon_5988__5462(a1); + t4 = math_cast__anon_5990__5463(t3); t5 = t4.is_null != true; if (t5) { t6 = t4.payload; t2 = t6; goto zig_block_0; } - return (nav__5465_40){{(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},zig_error_OutOfMemory}; + return (nav__5459_40){{(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},zig_error_OutOfMemory}; zig_block_0:; t7 = (*t1); - t8 = mem_Allocator_alloc__anon_2284__4161(t7, t2); + t8 = mem_Allocator_alloc__anon_2273__4159(t7, t2); if (t8.error) { t9 = t8.error; - t8.payload = (nav__5465_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; + t8.payload = (nav__5459_39){(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul}; t8.error = t9; return t8; } t10 = t8.payload; - t8 = fmt_bufPrint__anon_6123__5470(t10, a1); + t8 = fmt_bufPrint__anon_5999__5464(t10, a1); t5 = t8.error == UINT16_C(0); if (t5) { t10 = t8.payload; @@ -11096,11 +10992,11 @@ static nav__5465_40 fmt_allocPrint__anon_6097__5465(struct mem_Allocator__206 co t9 = t8.error; switch (t9) { case zig_error_NoSpaceLeft: { - debug_no_panic_unwrapError__4095(t9); + debug_no_panic_unwrapError__4093(t9); zig_unreachable(); } default: { - debug_no_panic_corruptSwitch__4113(); + debug_no_panic_corruptSwitch__4111(); zig_unreachable(); } } @@ -11109,14 +11005,14 @@ static nav__5465_40 fmt_allocPrint__anon_6097__5465(struct mem_Allocator__206 co return t11; } -static nav__5466_39 mem_sliceAsBytes__anon_6104__5466(nav__5466_39 const a0) { +static nav__5460_39 mem_sliceAsBytes__anon_5980__5460(nav__5460_39 const a0) { uintptr_t t0; uint64_t t1; uint8_t *t3; uint8_t *t4; uint8_t *t5; uint8_t *const *t6; - nav__5466_39 t7; + nav__5460_39 t7; bool t2; t0 = a0.len; t1 = t0; @@ -11138,7 +11034,7 @@ static nav__5466_39 mem_sliceAsBytes__anon_6104__5466(nav__5466_39 const a0) { if (t2) { goto zig_block_1; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t0); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t0); zig_unreachable(); zig_block_1:; @@ -11146,7 +11042,7 @@ static nav__5466_39 mem_sliceAsBytes__anon_6104__5466(nav__5466_39 const a0) { if (t2) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t0); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t0); zig_unreachable(); zig_block_2:; @@ -11155,88 +11051,88 @@ static nav__5466_39 mem_sliceAsBytes__anon_6104__5466(nav__5466_39 const a0) { return t7; } -static uint16_t io_Writer_print__anon_6105__5467(struct io_Writer__1905 const a0, nav__5467_41 const a1) { +static uint16_t io_Writer_print__anon_5981__5461(struct io_Writer__1950 const a0, nav__5461_41 const a1) { uint16_t t0; uint16_t t1; - t0 = fmt_format__anon_6126__5471(a0, a1); + t0 = fmt_format__anon_6002__5465(a0, a1); memcpy(&t1, &t0, sizeof(uint16_t)); return t1; } -static uint16_t fmt_format__anon_6178__5510(struct io_Writer__1905 const a0, nav__5510_40 const a1) { - struct io_Writer__1905 const *t1; - struct io_Writer__1905 t2; - struct io_Writer__1905 t0; +static uint16_t fmt_format__anon_6054__5504(struct io_Writer__1950 const a0, nav__5504_40 const a1) { + struct io_Writer__1950 const *t1; + struct io_Writer__1950 t2; + struct io_Writer__1950 t0; uint8_t const *t4; uint16_t t3; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5510_44){(uint8_t const *)&__anon_6209,(uintptr_t)10ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5504_44){(uint8_t const *)&__anon_6085,(uintptr_t)10ul}); if (t3) { return t3; } t4 = a1.f0; - t3 = fmt_formatType__anon_6218__5511(t4, (struct fmt_FormatOptions__3815){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); + t3 = fmt_formatType__anon_6094__5505(t4, (struct fmt_FormatOptions__3758){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); if (t3) { return t3; } t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5510_44){(uint8_t const *)&__anon_6224,(uintptr_t)1ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5504_44){(uint8_t const *)&__anon_6100,(uintptr_t)1ul}); if (t3) { return t3; } t4 = a1.f1; - t3 = fmt_formatType__anon_6218__5511(t4, (struct fmt_FormatOptions__3815){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); + t3 = fmt_formatType__anon_6094__5505(t4, (struct fmt_FormatOptions__3758){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); if (t3) { return t3; } t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5510_44){(uint8_t const *)&__anon_6243,(uintptr_t)1ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5504_44){(uint8_t const *)&__anon_6119,(uintptr_t)1ul}); if (t3) { return t3; } return 0; } -static uint64_t fmt_count__anon_6112__5468(nav__5468_39 const a0) { - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 t1; - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 t0; - struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 t2; - struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 t3; - struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 const *t4; - struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 const *t5; - struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 const *const *t6; +static uint64_t fmt_count__anon_5988__5462(nav__5462_39 const a0) { + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 t1; + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 t0; + struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 t2; + struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 t3; + struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 const *t4; + struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 const *t5; + struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 const *const *t6; void const **t8; - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *const *t9; + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *const *t9; void const *t10; - nav__5468_53 (**t11)(void const *, nav__5468_54); - struct io_Writer__1905 t12; - struct io_Writer__1905 t7; + nav__5462_53 (**t11)(void const *, nav__5462_54); + struct io_Writer__1950 t12; + struct io_Writer__1950 t7; uint64_t t15; uint16_t t13; bool t14; - t1 = io_counting_writer_countingWriter__anon_6148__5496(); + t1 = io_counting_writer_countingWriter__anon_6024__5490(); t0 = t1; - t2 = io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_writer__5495(&t0); + t2 = io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_writer__5489(&t0); t3 = t2; - t4 = (struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 const *)&t3; + t4 = (struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 const *)&t3; t5 = t4; - t6 = (struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 const *const *)&t5; + t6 = (struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 const *const *)&t5; t8 = (void const **)&t7.context; t4 = (*t6); - t9 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *const *)&t4->context; + t9 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *const *)&t4->context; t10 = (void const *)t9; (*t8) = t10; - t11 = (nav__5468_53 (**)(void const *, nav__5468_54))&t7.writeFn; - (*t11) = &io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWr__5509; + t11 = (nav__5462_53 (**)(void const *, nav__5462_54))&t7.writeFn; + (*t11) = &io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWr__5503; t12 = t7; - t13 = fmt_format__anon_6178__5510(t12, a0); + t13 = fmt_format__anon_6054__5504(t12, a0); t14 = t13 == UINT16_C(0); if (t14) { goto zig_block_0; } - debug_no_panic_unwrapError__4095(t13); + debug_no_panic_unwrapError__4093(t13); zig_unreachable(); zig_block_0:; @@ -11245,117 +11141,117 @@ static uint64_t fmt_count__anon_6112__5468(nav__5468_39 const a0) { return t15; } -static nav__5469_38 math_cast__anon_6114__5469(uint64_t const a0) { +static nav__5463_38 math_cast__anon_5990__5463(uint64_t const a0) { uintptr_t t0; - nav__5469_38 t1; + nav__5463_38 t1; t0 = a0; t1.is_null = false; t1.payload = t0; return t1; } -static nav__5470_40 fmt_bufPrint__anon_6123__5470(nav__5470_39 const a0, nav__5470_42 const a1) { - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 t1; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 t0; - struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 t2; - struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 t3; - struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 const *t4; - struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 const *t5; - struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 const *const *t6; +static nav__5464_40 fmt_bufPrint__anon_5999__5464(nav__5464_39 const a0, nav__5464_42 const a1) { + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 t1; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 t0; + struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 t2; + struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 t3; + struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 const *t4; + struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 const *t5; + struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 const *const *t6; void const **t8; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *t9; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *t9; void const *t10; - nav__5470_57 (**t11)(void const *, nav__5470_58); - struct io_Writer__1905 t12; - struct io_Writer__1905 t7; - nav__5470_39 t15; - nav__5470_40 t16; + nav__5464_57 (**t11)(void const *, nav__5464_58); + struct io_Writer__1950 t12; + struct io_Writer__1950 t7; + nav__5464_39 t15; + nav__5464_40 t16; uint16_t t13; bool t14; - t1 = io_fixed_buffer_stream_fixedBufferStream__anon_2306__4193(a0); + t1 = io_fixed_buffer_stream_fixedBufferStream__anon_2295__4191(a0); t0 = t1; - t2 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_writer__4183(&t0); + t2 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_writer__4181(&t0); t3 = t2; - t4 = (struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 const *)&t3; + t4 = (struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 const *)&t3; t5 = t4; - t6 = (struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 const *const *)&t5; + t6 = (struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 const *const *)&t5; t8 = (void const **)&t7.context; t4 = (*t6); - t9 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *)&t4->context; + t9 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *)&t4->context; t10 = (void const *)t9; (*t8) = t10; - t11 = (nav__5470_57 (**)(void const *, nav__5470_58))&t7.writeFn; - (*t11) = &io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write__5524; + t11 = (nav__5464_57 (**)(void const *, nav__5464_58))&t7.writeFn; + (*t11) = &io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write__5518; t12 = t7; - t13 = fmt_format__anon_6178__5510(t12, a1); + t13 = fmt_format__anon_6054__5504(t12, a1); t14 = t13 == UINT16_C(0); if (t14) { goto zig_block_0; } switch (t13) { case zig_error_NoSpaceLeft: { - return (nav__5470_40){{(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},zig_error_NoSpaceLeft}; + return (nav__5464_40){{(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},zig_error_NoSpaceLeft}; } default: { - debug_no_panic_unwrapError__4095(t13); + debug_no_panic_unwrapError__4093(t13); zig_unreachable(); } } zig_block_0:; t1 = t0; - t15 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWritten__4191(t1); + t15 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWritten__4189(t1); t16.payload = t15; t16.error = UINT16_C(0); return t16; } -static uint16_t fmt_format__anon_6126__5471(struct io_Writer__1905 const a0, nav__5471_41 const a1) { - struct io_Writer__1905 const *t1; - struct io_Writer__1905 t2; - struct io_Writer__1905 t0; - nav__5471_40 t4; +static uint16_t fmt_format__anon_6002__5465(struct io_Writer__1950 const a0, nav__5465_41 const a1) { + struct io_Writer__1950 const *t1; + struct io_Writer__1950 t2; + struct io_Writer__1950 t0; + nav__5465_40 t4; uint16_t t3; t0 = a0; - t1 = (struct io_Writer__1905 const *)&t0; + t1 = (struct io_Writer__1950 const *)&t0; t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5471_40){(uint8_t const *)&__anon_6310,(uintptr_t)27ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5465_40){(uint8_t const *)&__anon_6186,(uintptr_t)27ul}); if (t3) { return t3; } t4 = a1.f0; - t3 = fmt_formatType__anon_3903__5144(t4, (struct fmt_FormatOptions__3815){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); + t3 = fmt_formatType__anon_3846__5142(t4, (struct fmt_FormatOptions__3758){{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},{(uintptr_t)0xaaaaaaaaaaaaaaaaul,true},UINT32_C(32),UINT8_C(2)}, a0, (uintptr_t)3ul); if (t3) { return t3; } t2 = (*t1); - t3 = io_Writer_writeAll__3828(t2, (nav__5471_40){(uint8_t const *)&__anon_3909,(uintptr_t)1ul}); + t3 = io_Writer_writeAll__3826(t2, (nav__5465_40){(uint8_t const *)&__anon_3852,(uintptr_t)1ul}); if (t3) { return t3; } return 0; } -static struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 io_counting_writer_countingWriter__anon_6148__5496(void) { - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 t0; - t0 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145){UINT64_C(0)}; +static struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 io_counting_writer_countingWriter__anon_6024__5490(void) { + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 t0; + t0 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021){UINT64_C(0)}; return t0; } -static struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_writer__5495(struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *const a0) { - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 **t1; - struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6159 t0; - t1 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 **)&t0.context; +static struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_writer__5489(struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *const a0) { + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 **t1; + struct io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_2cerror_7b_7d_2c_28function_20_27write_27_29_29__6035 t0; + t1 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 **)&t0.context; (*t1) = a0; return t0; } -static nav__5509_38 io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWr__5509(void const *const a0, nav__5509_41 const a1) { +static nav__5503_38 io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWr__5503(void const *const a0, nav__5503_41 const a1) { uintptr_t t0; - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *const *t2; - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *t3; - nav__5509_38 t4; - nav__5509_38 t5; + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *const *t2; + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *t3; + nav__5503_38 t4; + nav__5503_38 t5; bool t1; t0 = (uintptr_t)a0; t0 = t0 & (uintptr_t)7ul; @@ -11363,48 +11259,48 @@ static nav__5509_38 io_GenericWriter_28_2aio_counting_writer_CountingWriter_28io if (t1) { goto zig_block_0; } - debug_no_panic_incorrectAlignment__4103(); + debug_no_panic_incorrectAlignment__4101(); zig_unreachable(); zig_block_0:; - t2 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *const *)a0; + t2 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *const *)a0; t3 = (*t2); - t4 = io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_write__5494(t3, a1); - memcpy(&t5, &t4, sizeof(nav__5509_38)); + t4 = io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_write__5488(t3, a1); + memcpy(&t5, &t4, sizeof(nav__5503_38)); return t5; } -static uint16_t fmt_formatType__anon_6218__5511(uint8_t const *const a0, struct fmt_FormatOptions__3815 const a1, struct io_Writer__1905 const a2, uintptr_t const a3) { - nav__5511_47 t2; - nav__5511_47 t3; +static uint16_t fmt_formatType__anon_6094__5505(uint8_t const *const a0, struct fmt_FormatOptions__3758 const a1, struct io_Writer__1950 const a2, uintptr_t const a3) { + nav__5505_47 t2; + nav__5505_47 t3; uint8_t const *t0; - struct io_Writer__1905 t1; + struct io_Writer__1950 t1; uint16_t t4; uint16_t t5; (void)a3; t0 = a0; t1 = a2; - t2 = mem_span__anon_5925__5448(a0); - memcpy(&t3, &t2, sizeof(nav__5511_47)); - t4 = fmt_formatBuf__anon_4820__5248(t3, a1, a2); + t2 = mem_span__anon_5801__5442(a0); + memcpy(&t3, &t2, sizeof(nav__5505_47)); + t4 = fmt_formatBuf__anon_4737__5246(t3, a1, a2); memcpy(&t5, &t4, sizeof(uint16_t)); return t5; } -static struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_writer__4183(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const a0) { - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 **t1; - struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6255 t0; - t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 **)&t0.context; +static struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_writer__4181(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const a0) { + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 **t1; + struct io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write_27_29_29__6131 t0; + t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 **)&t0.context; (*t1) = a0; return t0; } -static nav__5524_38 io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write__5524(void const *const a0, nav__5524_41 const a1) { +static nav__5518_38 io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_2cerror_7bNoSpaceLeft_7d_2c_28function_20_27write__5518(void const *const a0, nav__5518_41 const a1) { uintptr_t t0; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *t2; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *t3; - nav__5524_38 t4; - nav__5524_38 t5; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *t2; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *t3; + nav__5518_38 t4; + nav__5518_38 t5; bool t1; t0 = (uintptr_t)a0; t0 = t0 & (uintptr_t)7ul; @@ -11412,29 +11308,29 @@ static nav__5524_38 io_GenericWriter_28_2aio_fixed_buffer_stream_FixedBufferStre if (t1) { goto zig_block_0; } - debug_no_panic_incorrectAlignment__4103(); + debug_no_panic_incorrectAlignment__4101(); zig_unreachable(); zig_block_0:; - t2 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *)a0; + t2 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *)a0; t3 = (*t2); - t4 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write__4186(t3, a1); - memcpy(&t5, &t4, sizeof(nav__5524_38)); + t4 = io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write__4184(t3, a1); + memcpy(&t5, &t4, sizeof(nav__5518_38)); return t5; } -static nav__4191_39 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWritten__4191(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 const a0) { - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 const *t1; - nav__4191_39 const *t2; +static nav__4189_39 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWritten__4189(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 const a0) { + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 const *t1; + nav__4189_39 const *t2; uintptr_t t3; uintptr_t t7; - nav__4191_39 t4; + nav__4189_39 t4; uint8_t *t5; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 t0; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 t0; bool t6; t0 = a0; - t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 const *)&t0; - t2 = (nav__4191_39 const *)&t1->buffer; + t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 const *)&t0; + t2 = (nav__4189_39 const *)&t1->buffer; t3 = a0.pos; t4 = (*t2); t5 = t4.ptr; @@ -11443,7 +11339,7 @@ static nav__4191_39 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWr if (t6) { goto zig_block_0; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t3); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t3); zig_unreachable(); zig_block_0:; @@ -11452,7 +11348,7 @@ static nav__4191_39 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWr if (t6) { goto zig_block_1; } - debug_no_panic_outOfBounds__4096(t3, t7); + debug_no_panic_outOfBounds__4094(t3, t7); zig_unreachable(); zig_block_1:; @@ -11460,7 +11356,7 @@ static nav__4191_39 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWr if (t6) { goto zig_block_2; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t3); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t3); zig_unreachable(); zig_block_2:; @@ -11469,21 +11365,21 @@ static nav__4191_39 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_getWr return t4; } -static nav__5494_38 io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_write__5494(struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *const a0, nav__5494_42 const a1) { - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *const *t1; - nav__5494_38 t2; +static nav__5488_38 io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29_write__5488(struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *const a0, nav__5488_42 const a1) { + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *const *t1; + nav__5488_38 t2; uintptr_t t3; - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *t4; - struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *t0; + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *t4; + struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *t0; uint64_t *t5; uint64_t t6; uint64_t t7; - nav__5494_51 t8; + nav__5488_51 t8; uint8_t t9; bool t10; t0 = a0; - t1 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6145 *const *)&t0; - t2 = io_dummyWrite__3798(a1); + t1 = (struct io_counting_writer_CountingWriter_28io_GenericWriter_28void_2cerror_7b_7d_2c_28function_20_27dummyWrite_27_29_29_29__6021 *const *)&t0; + t2 = io_dummyWrite__3796(a1); t3 = t2.payload; t4 = (*t1); t5 = (uint64_t *)&t4->bytes_written; @@ -11495,7 +11391,7 @@ static nav__5494_38 io_counting_writer_CountingWriter_28io_GenericWriter_28void_ if (t10) { goto zig_block_0; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_0:; @@ -11506,9 +11402,9 @@ static nav__5494_38 io_counting_writer_CountingWriter_28io_GenericWriter_28void_ return t2; } -static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write__4186(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const a0, nav__4186_42 const a1) { - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *t1; - nav__4186_42 const *t3; +static nav__4184_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write__4184(struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const a0, nav__4184_42 const a1) { + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *t1; + nav__4184_42 const *t3; uintptr_t t4; uintptr_t t10; uintptr_t t16; @@ -11516,49 +11412,49 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write uint64_t t5; uint64_t t11; uintptr_t *t7; - nav__4186_50 *t8; - nav__4186_50 t9; - nav__4186_55 t12; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *t14; - struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *t0; + nav__4184_50 *t8; + nav__4184_50 t9; + nav__4184_55 t12; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *t14; + struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *t0; uint8_t *t15; uint8_t *t21; - nav__4186_42 t18; - nav__4186_42 t2; + nav__4184_42 t18; + nav__4184_42 t2; uint8_t const *t19; uint8_t const *t20; - nav__4186_38 t23; + nav__4184_38 t23; bool t6; bool t22; uint8_t t13; t0 = a0; - t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2303 *const *)&t0; + t1 = (struct io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29__2292 *const *)&t0; t2 = a1; - t3 = (nav__4186_42 const *)&t2; + t3 = (nav__4184_42 const *)&t2; t4 = a1.len; t5 = t4; t6 = t5 == UINT64_C(0); if (t6) { - return (nav__4186_38){(uintptr_t)0ul,0}; + return (nav__4184_38){(uintptr_t)0ul,0}; } goto zig_block_0; zig_block_0:; t7 = (uintptr_t *)&a0->pos; t4 = (*t7); - t8 = (nav__4186_50 *)&a0->buffer; + t8 = (nav__4184_50 *)&a0->buffer; t9 = (*t8); t10 = t9.len; t5 = t4; t11 = t10; t6 = t5 >= t11; if (t6) { - return (nav__4186_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_NoSpaceLeft}; + return (nav__4184_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_NoSpaceLeft}; } goto zig_block_1; zig_block_1:; - t8 = (nav__4186_50 *)&a0->buffer; + t8 = (nav__4184_50 *)&a0->buffer; t9 = (*t8); t10 = t9.len; t7 = (uintptr_t *)&a0->pos; @@ -11569,7 +11465,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t6) { goto zig_block_2; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_2:; @@ -11578,7 +11474,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write t10 = (t4 < t10) ? t4 : t10; t11 = t10; t14 = (*t1); - t8 = (nav__4186_50 *)&t14->buffer; + t8 = (nav__4184_50 *)&t14->buffer; t7 = (uintptr_t *)&a0->pos; t10 = (*t7); t9 = (*t8); @@ -11592,7 +11488,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t6) { goto zig_block_3; } - debug_no_panic_outOfBounds__4096(t4, t17); + debug_no_panic_outOfBounds__4094(t4, t17); zig_unreachable(); zig_block_3:; @@ -11600,7 +11496,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t6) { goto zig_block_4; } - debug_no_panic_outOfBounds__4096(t10, t4); + debug_no_panic_outOfBounds__4094(t10, t4); zig_unreachable(); zig_block_4:; @@ -11614,7 +11510,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t6) { goto zig_block_5; } - debug_no_panic_startGreaterThanEnd__4097((uintptr_t)0ul, t16); + debug_no_panic_startGreaterThanEnd__4095((uintptr_t)0ul, t16); zig_unreachable(); zig_block_5:; @@ -11623,7 +11519,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t6) { goto zig_block_6; } - debug_no_panic_outOfBounds__4096(t16, t4); + debug_no_panic_outOfBounds__4094(t16, t4); zig_unreachable(); zig_block_6:; @@ -11631,7 +11527,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t6) { goto zig_block_7; } - debug_no_panic_outOfBounds__4096((uintptr_t)0ul, t16); + debug_no_panic_outOfBounds__4094((uintptr_t)0ul, t16); zig_unreachable(); zig_block_7:; @@ -11643,7 +11539,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t6) { goto zig_block_8; } - debug_no_panic_memcpyLenMismatch__4117(); + debug_no_panic_memcpyLenMismatch__4115(); zig_unreachable(); zig_block_8:; @@ -11657,7 +11553,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t22) { goto zig_block_9; } - debug_no_panic_memcpyAlias__4118(); + debug_no_panic_memcpyAlias__4116(); zig_unreachable(); zig_block_9:; @@ -11672,7 +11568,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write if (t22) { goto zig_block_10; } - debug_no_panic_integerOverflow__4107(); + debug_no_panic_integerOverflow__4105(); zig_unreachable(); zig_block_10:; @@ -11680,7 +11576,7 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write (*t7) = t4; t22 = t11 == UINT64_C(0); if (t22) { - return (nav__4186_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_NoSpaceLeft}; + return (nav__4184_38){(uintptr_t)0xaaaaaaaaaaaaaaaaul,zig_error_NoSpaceLeft}; } goto zig_block_11; @@ -11691,9 +11587,9 @@ static nav__4186_38 io_fixed_buffer_stream_FixedBufferStream_28_5b_5du8_29_write return t23; } -static nav__3798_38 io_dummyWrite__3798(nav__3798_40 const a0) { +static nav__3796_38 io_dummyWrite__3796(nav__3796_40 const a0) { uintptr_t t0; - nav__3798_38 t1; + nav__3796_38 t1; t0 = a0.len; t1.payload = t0; t1.error = UINT16_C(0); @@ -11862,51 +11758,53 @@ static struct mem_Allocator__206 const c_allocator__230 = {((void *)(uintptr_t)0 static struct Target_Cpu_Feature_Set__755 const Target_Cpu_Feature_Set_empty__3405 = {{0ul,0ul,0ul,0ul,0ul}}; -static struct Target_Cpu__723 const builtin_cpu__249 = {((struct Target_Cpu_Model__750 const *)&Target_x86_cpu_alderlake__3512),{{9528139926881771760ul,4854352097251152009ul,15835263048482096792ul,3ul,0ul}},UINT8_C(42)}; +static struct Target_Cpu__723 const builtin_cpu__249 = {((struct Target_Cpu_Model__750 const *)&Target_x86_cpu_alderlake__3509),{{9528139926881771760ul,4854352097251152009ul,15835263048482096792ul,3ul,0ul}},UINT8_C(42)}; -static uint8_t const (*const shared_RUNNER_CTL_FIFO__3615)[21] = &__anon_1768; +static uint8_t const builtin_abi__248 = UINT8_C(1); -static uint8_t const (*const shared_RUNNER_ACK_FIFO__3616)[21] = &__anon_1828; +static uint8_t const builtin_object_format__252 = UINT8_C(0); -static uint8_t const mem_native_endian__353 = UINT8_C(1); +static struct Target__561 const builtin_target__251 = {{((struct Target_Cpu_Model__750 const *)&Target_x86_cpu_alderlake__3509),{{9528139926881771760ul,4854352097251152009ul,15835263048482096792ul,3ul,0ul}},UINT8_C(42)},{{{ .linux = {{{6ul,14ul,5ul,{NULL,0xaaaaaaaaaaaaaaaaul},{NULL,0xaaaaaaaaaaaaaaaaul}},{6ul,14ul,5ul,{NULL,0xaaaaaaaaaaaaaaaaul},{NULL,0xaaaaaaaaaaaaaaaaul}}},{2ul,39ul,0ul,{NULL,0xaaaaaaaaaaaaaaaaul},{NULL,0xaaaaaaaaaaaaaaaaul}},UINT32_C(14)} },UINT8_C(3)},UINT8_C(9)},UINT8_C(1),UINT8_C(0),{"/nix/store/vbrdc5wgzn0w1zdp10xd2favkjn5fk7y-glibc-2.40-66/lib/ld-linux-x86-64.so.2\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252",UINT8_C(82)}}; -static uint8_t const builtin_abi__248 = UINT8_C(1); +static struct builtin_CallingConvention__261 const builtin_CallingConvention_c__830 = {{ .x86_64_sysv = {{UINT64_C(0xaaaaaaaaaaaaaaaa),true}} },UINT8_C(4)}; -static uint8_t const builtin_object_format__252 = UINT8_C(0); +static uint8_t const (*const shared_RUNNER_CTL_FIFO__3613)[21] = &__anon_1813; -static struct Target__561 const builtin_target__251 = {{((struct Target_Cpu_Model__750 const *)&Target_x86_cpu_alderlake__3512),{{9528139926881771760ul,4854352097251152009ul,15835263048482096792ul,3ul,0ul}},UINT8_C(42)},{{{ .linux = {{{6ul,14ul,5ul,{NULL,0xaaaaaaaaaaaaaaaaul},{NULL,0xaaaaaaaaaaaaaaaaul}},{6ul,14ul,5ul,{NULL,0xaaaaaaaaaaaaaaaaul},{NULL,0xaaaaaaaaaaaaaaaaul}}},{2ul,39ul,0ul,{NULL,0xaaaaaaaaaaaaaaaaul},{NULL,0xaaaaaaaaaaaaaaaaul}},UINT32_C(14)} },UINT8_C(3)},UINT8_C(9)},UINT8_C(1),UINT8_C(0),{"/nix/store/vbrdc5wgzn0w1zdp10xd2favkjn5fk7y-glibc-2.40-66/lib/ld-linux-x86-64.so.2\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252",UINT8_C(82)}}; +static uint8_t const (*const shared_RUNNER_ACK_FIFO__3614)[21] = &__anon_1873; -static uint8_t const fs_path_native_os__3851 = UINT8_C(9); +static uint8_t const mem_native_endian__353 = UINT8_C(1); + +static uint8_t const fs_path_native_os__3849 = UINT8_C(9); static uint8_t const fs_native_os__1008 = UINT8_C(9); -static uint8_t const fs_Dir_native_os__3738 = UINT8_C(9); +static uint8_t const fs_Dir_native_os__3736 = UINT8_C(9); static uint8_t const os_linux_native_arch__2544 = UINT8_C(42); -static uint8_t const Thread_native_os__4284 = UINT8_C(9); +static uint8_t const Thread_native_os__4282 = UINT8_C(9); -static bool const Thread_use_pthreads__4295 = true; +static bool const Thread_use_pthreads__4293 = true; -static bool const Progress_is_windows__4339 = false; +static bool const Progress_is_windows__4337 = false; static bool const builtin_single_threaded__247 = false; static uint8_t const builtin_mode__253 = UINT8_C(0); -static uint32_t const Thread_Mutex_FutexImpl_unlocked__4771 = UINT32_C(0); +static uint32_t const Thread_Mutex_FutexImpl_unlocked__4769 = UINT32_C(0); -static uint32_t const Thread_Mutex_Recursive_invalid_thread_id__4767 = UINT32_MAX; +static uint32_t const Thread_Mutex_Recursive_invalid_thread_id__4765 = UINT32_MAX; -static struct Thread_Mutex_Recursive__3310 const Thread_Mutex_Recursive_init__4763 = {0ul,{{{UINT32_C(0)},{{UINT32_C(0)}}}},UINT32_MAX}; +static struct Thread_Mutex_Recursive__3253 const Thread_Mutex_Recursive_init__4761 = {0ul,{{{UINT32_C(0)},{{UINT32_C(0)}}}},UINT32_MAX}; -static struct Thread_Mutex_Recursive__3310 Progress_stderr_mutex__4394 = {0ul,{{{UINT32_C(0)},{{UINT32_C(0)}}}},UINT32_MAX}; +static struct Thread_Mutex_Recursive__3253 Progress_stderr_mutex__4392 = {0ul,{{{UINT32_C(0)},{{UINT32_C(0)}}}},UINT32_MAX}; -static bool const io_is_windows__3745 = false; +static bool const io_is_windows__3743 = false; static bool const fs_File_is_windows__1184 = false; -static uint16_t const fmt_max_format_args__4419 = UINT16_C(32); +static uint16_t const fmt_max_format_args__4417 = UINT16_C(32); static bool const debug_runtime_safety__159 = true; @@ -11916,21 +11814,19 @@ static bool const debug_have_segfault_handling_support__202 = true; static bool const debug_default_enable_segfault_handler__204 = true; -static uint8_t const log_default_level__5078 = UINT8_C(3); - -static struct std_Options__3827 const std_options__97 = {{0xaaaaaaaaaaaaaaaaul,true},{0xaaaaaaaaaaaaaaaaul,true},3ul,true,UINT8_C(3),false,true,false,false,true,UINT8_C(2)}; +static uint8_t const log_default_level__5076 = UINT8_C(3); -static struct builtin_CallingConvention__261 const builtin_CallingConvention_c__830 = {{ .x86_64_sysv = {{UINT64_C(0xaaaaaaaaaaaaaaaa),true}} },UINT8_C(4)}; +static struct std_Options__3770 const std_options__97 = {{0xaaaaaaaaaaaaaaaaul,true},{0xaaaaaaaaaaaaaaaaul,true},3ul,true,UINT8_C(3),false,true,false,false,true,UINT8_C(2)}; -static bool const fs_Dir_have_flock__3739 = true; +static bool const fs_Dir_have_flock__3737 = true; static uint8_t const posix_native_os__1194 = UINT8_C(9); -static struct Progress__2779 Progress_global_progress__4343 = {{{{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)}},true},UINT64_C(0xaaaaaaaaaaaaaaaa),UINT64_C(0xaaaaaaaaaaaaaaaa),{(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},{(uint8_t *)&Progress_node_parents_buffer__4345,83ul},{(struct Progress_Node_Storage__3269 *)&Progress_node_storage_buffer__4346,83ul},{(uint8_t *)&Progress_node_freelist_buffer__4347,83ul},{-INT32_C(0x55555556)},{{{UINT32_C(0)}}},UINT32_C(0),UINT16_C(0),UINT16_C(0),{UINT8_C(0)},false,false,UINT8_MAX}; +static struct Progress__2767 Progress_global_progress__4341 = {{{{((void *)(uintptr_t)0xaaaaaaaaaaaaaaaaul)}},true},UINT64_C(0xaaaaaaaaaaaaaaaa),UINT64_C(0xaaaaaaaaaaaaaaaa),{(uint8_t *)(uintptr_t)0xaaaaaaaaaaaaaaaaul, (uintptr_t)0xaaaaaaaaaaaaaaaaul},{(uint8_t *)&Progress_node_parents_buffer__4343,83ul},{(struct Progress_Node_Storage__3212 *)&Progress_node_storage_buffer__4344,83ul},{(uint8_t *)&Progress_node_freelist_buffer__4345,83ul},{-INT32_C(0x55555556)},{{{UINT32_C(0)}}},UINT32_C(0),UINT16_C(0),UINT16_C(0),{UINT8_C(0)},false,false,UINT8_MAX}; -static uint8_t const (*const Progress_clear__4362)[4] = &__anon_4676; +static uint8_t const (*const Progress_clear__4360)[4] = &__anon_4593; -static uint8_t const (*const fmt_ANY__4422)[4] = &__anon_4770; +static uint8_t const (*const fmt_ANY__4420)[4] = &__anon_4687; static bool const posix_lfs64_abi__1624 = true; @@ -11938,23 +11834,23 @@ static uint8_t const c_native_abi__1636 = UINT8_C(1); static bool const posix_unexpected_error_tracing__1625 = false; -static uint8_t const unicode_native_endian__4786 = UINT8_C(1); +static uint8_t const unicode_native_endian__4784 = UINT8_C(1); -static uint32_t const unicode_replacement_character__4787 = UINT32_C(65533); +static uint32_t const unicode_replacement_character__4785 = UINT32_C(65533); static bool const mem_backend_supports_vectors__381 = true; static bool const builtin_valgrind_support__257 = false; -static uint32_t const Thread_Mutex_FutexImpl_contended__4773 = UINT32_C(3); +static uint32_t const Thread_Mutex_FutexImpl_contended__4771 = UINT32_C(3); static nav__3465_38 const heap_page_size_min_default__3465 = {4096ul,false}; static uintptr_t const heap_page_size_min__3444 = 4096ul; -static zig_threadlocal nav__5270_38 Thread_LinuxThreadImpl_tls_thread_id__5270 = {UINT32_C(0xaaaaaaaa),true}; +static zig_threadlocal nav__5268_38 Thread_LinuxThreadImpl_tls_thread_id__5268 = {UINT32_C(0xaaaaaaaa),true}; -static uint32_t const Thread_Mutex_FutexImpl_locked__4772 = UINT32_C(1); +static uint32_t const Thread_Mutex_FutexImpl_locked__4770 = UINT32_C(1); static bool const os_linux_extern_getauxval__2608 = false; @@ -11964,10 +11860,42 @@ static bool const heap_CAllocator_supports_malloc_size__3477 = true; static bool const heap_CAllocator_supports_posix_memalign__3479 = true; -static struct Target_Cpu_Model__750 const Target_x86_cpu_alderlake__3512 = {{(uint8_t const *)&__anon_6383,9ul},{(uint8_t const *)&__anon_6383,9ul},{{9516916112185360560ul,4872366487170699401ul,11223533324467504792ul,3ul,0ul}}}; +static struct Target_Cpu_Model__750 const Target_x86_cpu_alderlake__3509 = {{(uint8_t const *)&__anon_6259,9ul},{(uint8_t const *)&__anon_6259,9ul},{{9516916112185360560ul,4872366487170699401ul,11223533324467504792ul,3ul,0ul}}}; -static uint8_t Progress_node_parents_buffer__4345[83] = {UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa)}; +static uint8_t Progress_node_parents_buffer__4343[83] = {UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa)}; -static struct Progress_Node_Storage__3269 Progress_node_storage_buffer__4346[83] = {{UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}}; +static struct Progress_Node_Storage__3212 Progress_node_storage_buffer__4344[83] = {{UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}, {UINT32_C(0xaaaaaaaa),UINT32_C(0xaaaaaaaa),"\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252"}}; + +static uint8_t Progress_node_freelist_buffer__4345[83] = {UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa)}; +#ifndef WRAPPER_H +#define WRAPPER_H + +#include "valgrind.h" +#include "callgrind.h" +#include + +uint8_t running_on_valgrind() { + return RUNNING_ON_VALGRIND > 0; +} + +void callgrind_dump_stats() { + CALLGRIND_DUMP_STATS; +} + +void callgrind_dump_stats_at(uint8_t const * pos_str) { + CALLGRIND_DUMP_STATS_AT(pos_str); +} + +void callgrind_zero_stats() { + CALLGRIND_ZERO_STATS; +} + +void callgrind_start_instrumentation() { + CALLGRIND_START_INSTRUMENTATION; +} + +void callgrind_stop_instrumentation() { + CALLGRIND_STOP_INSTRUMENTATION; +} -static uint8_t Progress_node_freelist_buffer__4347[83] = {UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa), UINT8_C(0xaa)}; +#endif diff --git a/includes/callgrind.h b/includes/callgrind.h new file mode 100644 index 0000000..589b020 --- /dev/null +++ b/includes/callgrind.h @@ -0,0 +1,124 @@ +/* + ---------------------------------------------------------------- + + Notice that the following BSD-style license applies to this one + file (callgrind.h) only. The rest of Valgrind is licensed under the + terms of the GNU General Public License, version 2, unless + otherwise indicated. See the COPYING file in the source + distribution for details. + + ---------------------------------------------------------------- + + This file is part of callgrind, a valgrind tool for cache simulation + and call tree tracing. + + Copyright (C) 2003-2017 Josef Weidendorfer. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + + 3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ---------------------------------------------------------------- + + Notice that the above BSD-style license applies to this one file + (callgrind.h) only. The entire rest of Valgrind is licensed under + the terms of the GNU General Public License, version 2. See the + COPYING file in the source distribution for details. + + ---------------------------------------------------------------- +*/ + +#ifndef __CALLGRIND_H +#define __CALLGRIND_H + +#include "valgrind.h" + +/* !! ABIWARNING !! ABIWARNING !! ABIWARNING !! ABIWARNING !! + This enum comprises an ABI exported by Valgrind to programs + which use client requests. DO NOT CHANGE THE ORDER OF THESE + ENTRIES, NOR DELETE ANY -- add new ones at the end. + + The identification ('C','T') for Callgrind has historical + reasons: it was called "Calltree" before. Besides, ('C','G') would + clash with cachegrind. + */ + +typedef enum { + VG_USERREQ__DUMP_STATS = VG_USERREQ_TOOL_BASE('C', 'T'), + VG_USERREQ__ZERO_STATS, + VG_USERREQ__TOGGLE_COLLECT, + VG_USERREQ__DUMP_STATS_AT, + VG_USERREQ__START_INSTRUMENTATION, + VG_USERREQ__STOP_INSTRUMENTATION +} Vg_CallgrindClientRequest; + +/* Dump current state of cost centers, and zero them afterwards */ +#define CALLGRIND_DUMP_STATS \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__DUMP_STATS, 0, 0, 0, 0, 0) + +/* Dump current state of cost centers, and zero them afterwards. + The argument is appended to a string stating the reason which triggered + the dump. This string is written as a description field into the + profile data dump. */ +#define CALLGRIND_DUMP_STATS_AT(pos_str) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__DUMP_STATS_AT, pos_str, 0, 0, 0, \ + 0) + +/* Zero cost centers */ +#define CALLGRIND_ZERO_STATS \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__ZERO_STATS, 0, 0, 0, 0, 0) + +/* Toggles collection state. + The collection state specifies whether the happening of events + should be noted or if they are to be ignored. Events are noted + by increment of counters in a cost center */ +#define CALLGRIND_TOGGLE_COLLECT \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__TOGGLE_COLLECT, 0, 0, 0, 0, 0) + +/* Start full callgrind instrumentation if not already switched on. + When cache simulation is done, it will flush the simulated cache; + this will lead to an artificial cache warmup phase afterwards with + cache misses which would not have happened in reality. */ +#define CALLGRIND_START_INSTRUMENTATION \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__START_INSTRUMENTATION, 0, 0, 0, \ + 0, 0) + +/* Stop full callgrind instrumentation if not already switched off. + This flushes Valgrinds translation cache, and does no additional + instrumentation afterwards, which effectivly will run at the same + speed as the "none" tool (ie. at minimal slowdown). + Use this to bypass Callgrind aggregation for uninteresting code parts. + To start Callgrind in this mode to ignore the setup phase, use + the option "--instr-atstart=no". */ +#define CALLGRIND_STOP_INSTRUMENTATION \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__STOP_INSTRUMENTATION, 0, 0, 0, \ + 0, 0) + +#endif /* __CALLGRIND_H */ diff --git a/includes/core.h b/includes/core.h index ac219b3..b0223c3 100644 --- a/includes/core.h +++ b/includes/core.h @@ -7,15 +7,18 @@ #include #include -typedef uint64_t* InstrumentHooks; +typedef uint64_t *InstrumentHooks; -InstrumentHooks* instrument_hooks_init(void); -void instrument_hooks_deinit(InstrumentHooks*); +InstrumentHooks *instrument_hooks_init(void); +void instrument_hooks_deinit(InstrumentHooks *); -bool instrument_hooks_is_instrumented(InstrumentHooks*); -void instrument_hooks_start_benchmark(InstrumentHooks*); -void instrument_hooks_stop_benchmark(InstrumentHooks*); -void instrument_hooks_current_benchmark(InstrumentHooks*, int32_t pid, const char* uri); -void instrument_hooks_set_integration(InstrumentHooks*, const char *name, const char* version); +bool instrument_hooks_is_instrumented(InstrumentHooks *); +void instrument_hooks_start_benchmark(InstrumentHooks *); +void instrument_hooks_stop_benchmark(InstrumentHooks *); +void instrument_hooks_current_benchmark(InstrumentHooks *, int32_t pid, const char *uri); +void instrument_hooks_set_integration(InstrumentHooks *, const char *name, const char *version); + +void callgrind_start_instrumentation(); +void callgrind_stop_instrumentation(); #endif diff --git a/includes/valgrind.h b/includes/valgrind.h new file mode 100644 index 0000000..77ca3ad --- /dev/null +++ b/includes/valgrind.h @@ -0,0 +1,7168 @@ +/* -*- c -*- + ---------------------------------------------------------------- + + Notice that the following BSD-style license applies to this one + file (valgrind.h) only. The rest of Valgrind is licensed under the + terms of the GNU General Public License, version 2, unless + otherwise indicated. See the COPYING file in the source + distribution for details. + + ---------------------------------------------------------------- + + This file is part of Valgrind, a dynamic binary instrumentation + framework. + + Copyright (C) 2000-2017 Julian Seward. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + + 3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ---------------------------------------------------------------- + + Notice that the above BSD-style license applies to this one file + (valgrind.h) only. The entire rest of Valgrind is licensed under + the terms of the GNU General Public License, version 2. See the + COPYING file in the source distribution for details. + + ---------------------------------------------------------------- +*/ + + +/* This file is for inclusion into client (your!) code. + + You can use these macros to manipulate and query Valgrind's + execution inside your own programs. + + The resulting executables will still run without Valgrind, just a + little bit more slowly than they otherwise would, but otherwise + unchanged. When not running on valgrind, each client request + consumes very few (eg. 7) instructions, so the resulting performance + loss is negligible unless you plan to execute client requests + millions of times per second. Nevertheless, if that is still a + problem, you can compile with the NVALGRIND symbol defined (gcc + -DNVALGRIND) so that client requests are not even compiled in. */ + +#ifndef __VALGRIND_H +#define __VALGRIND_H + + +/* ------------------------------------------------------------------ */ +/* VERSION NUMBER OF VALGRIND */ +/* ------------------------------------------------------------------ */ + +/* Specify Valgrind's version number, so that user code can + conditionally compile based on our version number. Note that these + were introduced at version 3.6 and so do not exist in version 3.5 + or earlier. The recommended way to use them to check for "version + X.Y or later" is (eg) + +#if defined(__VALGRIND_MAJOR__) && defined(__VALGRIND_MINOR__) \ + && (__VALGRIND_MAJOR__ > 3 \ + || (__VALGRIND_MAJOR__ == 3 && __VALGRIND_MINOR__ >= 6)) +*/ +#define __VALGRIND_MAJOR__ 3 +#define __VALGRIND_MINOR__ 24 + + +#include + +/* Nb: this file might be included in a file compiled with -ansi. So + we can't use C++ style "//" comments nor the "asm" keyword (instead + use "__asm__"). */ + +/* Derive some tags indicating what the target platform is. Note + that in this file we're using the compiler's CPP symbols for + identifying architectures, which are different to the ones we use + within the rest of Valgrind. Note, __powerpc__ is active for both + 32 and 64-bit PPC, whereas __powerpc64__ is only active for the + latter (on Linux, that is). + + Misc note: how to find out what's predefined in gcc by default: + gcc -Wp,-dM somefile.c +*/ +#undef PLAT_x86_darwin +#undef PLAT_amd64_darwin +#undef PLAT_x86_freebsd +#undef PLAT_amd64_freebsd +#undef PLAT_arm64_freebsd +#undef PLAT_x86_win32 +#undef PLAT_amd64_win64 +#undef PLAT_x86_linux +#undef PLAT_amd64_linux +#undef PLAT_ppc32_linux +#undef PLAT_ppc64be_linux +#undef PLAT_ppc64le_linux +#undef PLAT_arm_linux +#undef PLAT_arm64_linux +#undef PLAT_s390x_linux +#undef PLAT_mips32_linux +#undef PLAT_mips64_linux +#undef PLAT_nanomips_linux +#undef PLAT_x86_solaris +#undef PLAT_amd64_solaris + + +#if defined(__APPLE__) && defined(__i386__) +# define PLAT_x86_darwin 1 +#elif defined(__APPLE__) && defined(__x86_64__) +# define PLAT_amd64_darwin 1 +#elif defined(__FreeBSD__) && defined(__i386__) +# define PLAT_x86_freebsd 1 +#elif defined(__FreeBSD__) && defined(__amd64__) +# define PLAT_amd64_freebsd 1 +#elif defined(__FreeBSD__) && defined(__aarch64__) && !defined(__arm__) +# define PLAT_arm64_freebsd 1 +#elif (defined(__MINGW32__) && defined(__i386__)) \ + || defined(__CYGWIN32__) \ + || (defined(_WIN32) && defined(_M_IX86)) +# define PLAT_x86_win32 1 +#elif (defined(__MINGW32__) && defined(__x86_64__)) \ + || (defined(_WIN32) && defined(_M_X64)) +/* __MINGW32__ and _WIN32 are defined in 64 bit mode as well. */ +# define PLAT_amd64_win64 1 +#elif defined(__linux__) && defined(__i386__) +# define PLAT_x86_linux 1 +#elif defined(__linux__) && defined(__x86_64__) && !defined(__ILP32__) +# define PLAT_amd64_linux 1 +#elif defined(__linux__) && defined(__powerpc__) && !defined(__powerpc64__) +# define PLAT_ppc32_linux 1 +#elif defined(__linux__) && defined(__powerpc__) && defined(__powerpc64__) && _CALL_ELF != 2 +/* Big Endian uses ELF version 1 */ +# define PLAT_ppc64be_linux 1 +#elif defined(__linux__) && defined(__powerpc__) && defined(__powerpc64__) && _CALL_ELF == 2 +/* Little Endian uses ELF version 2 */ +# define PLAT_ppc64le_linux 1 +#elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__) +# define PLAT_arm_linux 1 +#elif defined(__linux__) && defined(__aarch64__) && !defined(__arm__) +# define PLAT_arm64_linux 1 +#elif defined(__linux__) && defined(__s390__) && defined(__s390x__) +# define PLAT_s390x_linux 1 +#elif defined(__linux__) && defined(__mips__) && (__mips==64) +# define PLAT_mips64_linux 1 +#elif defined(__linux__) && defined(__mips__) && (__mips==32) +# define PLAT_mips32_linux 1 +#elif defined(__linux__) && defined(__nanomips__) +# define PLAT_nanomips_linux 1 +#elif defined(__sun) && defined(__i386__) +# define PLAT_x86_solaris 1 +#elif defined(__sun) && defined(__x86_64__) +# define PLAT_amd64_solaris 1 +#else +/* If we're not compiling for our target platform, don't generate + any inline asms. */ +# if !defined(NVALGRIND) +# define NVALGRIND 1 +# endif +#endif + + +/* ------------------------------------------------------------------ */ +/* ARCHITECTURE SPECIFICS for SPECIAL INSTRUCTIONS. There is nothing */ +/* in here of use to end-users -- skip to the next section. */ +/* ------------------------------------------------------------------ */ + +/* + * VALGRIND_DO_CLIENT_REQUEST(): a statement that invokes a Valgrind client + * request. Accepts both pointers and integers as arguments. + * + * VALGRIND_DO_CLIENT_REQUEST_STMT(): a statement that invokes a Valgrind + * client request that does not return a value. + + * VALGRIND_DO_CLIENT_REQUEST_EXPR(): a C expression that invokes a Valgrind + * client request and whose value equals the client request result. Accepts + * both pointers and integers as arguments. Note that such calls are not + * necessarily pure functions -- they may have side effects. + */ + +#define VALGRIND_DO_CLIENT_REQUEST(_zzq_rlval, _zzq_default, \ + _zzq_request, _zzq_arg1, _zzq_arg2, \ + _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + do { (_zzq_rlval) = VALGRIND_DO_CLIENT_REQUEST_EXPR((_zzq_default), \ + (_zzq_request), (_zzq_arg1), (_zzq_arg2), \ + (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0) + +#define VALGRIND_DO_CLIENT_REQUEST_STMT(_zzq_request, _zzq_arg1, \ + _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \ + (_zzq_request), (_zzq_arg1), (_zzq_arg2), \ + (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0) + +#if defined(NVALGRIND) + +/* Define NVALGRIND to completely remove the Valgrind magic sequence + from the compiled code (analogous to NDEBUG's effects on + assert()) */ +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + (_zzq_default) + +#else /* ! NVALGRIND */ + +/* The following defines the magic code sequences which the JITter + spots and handles magically. Don't look too closely at them as + they will rot your brain. + + The assembly code sequences for all architectures is in this one + file. This is because this file must be stand-alone, and we don't + want to have multiple files. + + For VALGRIND_DO_CLIENT_REQUEST, we must ensure that the default + value gets put in the return slot, so that everything works when + this is executed not under Valgrind. Args are passed in a memory + block, and so there's no intrinsic limit to the number that could + be passed, but it's currently five. + + The macro args are: + _zzq_rlval result lvalue + _zzq_default default value (result returned when running on real CPU) + _zzq_request request code + _zzq_arg1..5 request params + + The other two macros are used to support function wrapping, and are + a lot simpler. VALGRIND_GET_NR_CONTEXT returns the value of the + guest's NRADDR pseudo-register and whatever other information is + needed to safely run the call original from the wrapper: on + ppc64-linux, the R2 value at the divert point is also needed. This + information is abstracted into a user-visible type, OrigFn. + + VALGRIND_CALL_NOREDIR_* behaves the same as the following on the + guest, but guarantees that the branch instruction will not be + redirected: x86: call *%eax, amd64: call *%rax, ppc32/ppc64: + branch-and-link-to-r11. VALGRIND_CALL_NOREDIR is just text, not a + complete inline asm, since it needs to be combined with more magic + inline asm stuff to be useful. +*/ + +/* ----------------- x86-{linux,darwin,solaris} ---------------- */ + +#if defined(PLAT_x86_linux) || defined(PLAT_x86_darwin) \ + || (defined(PLAT_x86_win32) && defined(__GNUC__)) \ + || defined(PLAT_x86_solaris) || defined(PLAT_x86_freebsd) + +typedef + struct { + unsigned int nraddr; /* where's the code? */ + } + OrigFn; + +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "roll $3, %%edi ; roll $13, %%edi\n\t" \ + "roll $29, %%edi ; roll $19, %%edi\n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + __extension__ \ + ({volatile unsigned int _zzq_args[6]; \ + volatile unsigned int _zzq_result; \ + _zzq_args[0] = (unsigned int)(_zzq_request); \ + _zzq_args[1] = (unsigned int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned int)(_zzq_arg5); \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %EDX = client_request ( %EAX ) */ \ + "xchgl %%ebx,%%ebx" \ + : "=d" (_zzq_result) \ + : "a" (&_zzq_args[0]), "0" (_zzq_default) \ + : "cc", "memory" \ + ); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + volatile unsigned int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %EAX = guest_NRADDR */ \ + "xchgl %%ecx,%%ecx" \ + : "=a" (__addr) \ + : \ + : "cc", "memory" \ + ); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_CALL_NOREDIR_EAX \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* call-noredir *%EAX */ \ + "xchgl %%edx,%%edx\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "xchgl %%edi,%%edi\n\t" \ + : : : "cc", "memory" \ + ); \ + } while (0) + +#endif /* PLAT_x86_linux || PLAT_x86_darwin || (PLAT_x86_win32 && __GNUC__) + || PLAT_x86_solaris */ + +/* ------------------------- x86-Win32 ------------------------- */ + +#if defined(PLAT_x86_win32) && !defined(__GNUC__) + +typedef + struct { + unsigned int nraddr; /* where's the code? */ + } + OrigFn; + +#if defined(_MSC_VER) + +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + __asm rol edi, 3 __asm rol edi, 13 \ + __asm rol edi, 29 __asm rol edi, 19 + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + valgrind_do_client_request_expr((uintptr_t)(_zzq_default), \ + (uintptr_t)(_zzq_request), (uintptr_t)(_zzq_arg1), \ + (uintptr_t)(_zzq_arg2), (uintptr_t)(_zzq_arg3), \ + (uintptr_t)(_zzq_arg4), (uintptr_t)(_zzq_arg5)) + +static __inline uintptr_t +valgrind_do_client_request_expr(uintptr_t _zzq_default, uintptr_t _zzq_request, + uintptr_t _zzq_arg1, uintptr_t _zzq_arg2, + uintptr_t _zzq_arg3, uintptr_t _zzq_arg4, + uintptr_t _zzq_arg5) +{ + volatile uintptr_t _zzq_args[6]; + volatile unsigned int _zzq_result; + _zzq_args[0] = (uintptr_t)(_zzq_request); + _zzq_args[1] = (uintptr_t)(_zzq_arg1); + _zzq_args[2] = (uintptr_t)(_zzq_arg2); + _zzq_args[3] = (uintptr_t)(_zzq_arg3); + _zzq_args[4] = (uintptr_t)(_zzq_arg4); + _zzq_args[5] = (uintptr_t)(_zzq_arg5); + __asm { __asm lea eax, _zzq_args __asm mov edx, _zzq_default + __SPECIAL_INSTRUCTION_PREAMBLE + /* %EDX = client_request ( %EAX ) */ + __asm xchg ebx,ebx + __asm mov _zzq_result, edx + } + return _zzq_result; +} + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + volatile unsigned int __addr; \ + __asm { __SPECIAL_INSTRUCTION_PREAMBLE \ + /* %EAX = guest_NRADDR */ \ + __asm xchg ecx,ecx \ + __asm mov __addr, eax \ + } \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_CALL_NOREDIR_EAX ERROR + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm { __SPECIAL_INSTRUCTION_PREAMBLE \ + __asm xchg edi,edi \ + } \ + } while (0) + +#else +#error Unsupported compiler. +#endif + +#endif /* PLAT_x86_win32 */ + +/* ----------------- amd64-{linux,darwin,solaris} --------------- */ + +#if defined(PLAT_amd64_linux) || defined(PLAT_amd64_darwin) \ + || defined(PLAT_amd64_solaris) \ + || defined(PLAT_amd64_freebsd) \ + || (defined(PLAT_amd64_win64) && defined(__GNUC__)) + +typedef + struct { + unsigned long int nraddr; /* where's the code? */ + } + OrigFn; + +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "rolq $3, %%rdi ; rolq $13, %%rdi\n\t" \ + "rolq $61, %%rdi ; rolq $51, %%rdi\n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + __extension__ \ + ({ volatile unsigned long int _zzq_args[6]; \ + volatile unsigned long int _zzq_result; \ + _zzq_args[0] = (unsigned long int)(_zzq_request); \ + _zzq_args[1] = (unsigned long int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned long int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned long int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned long int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned long int)(_zzq_arg5); \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %RDX = client_request ( %RAX ) */ \ + "xchgq %%rbx,%%rbx" \ + : "=d" (_zzq_result) \ + : "a" (&_zzq_args[0]), "0" (_zzq_default) \ + : "cc", "memory" \ + ); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + volatile unsigned long int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %RAX = guest_NRADDR */ \ + "xchgq %%rcx,%%rcx" \ + : "=a" (__addr) \ + : \ + : "cc", "memory" \ + ); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_CALL_NOREDIR_RAX \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* call-noredir *%RAX */ \ + "xchgq %%rdx,%%rdx\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "xchgq %%rdi,%%rdi\n\t" \ + : : : "cc", "memory" \ + ); \ + } while (0) + +#endif /* PLAT_amd64_linux || PLAT_amd64_darwin || PLAT_amd64_solaris */ + +/* ------------------------- amd64-Win64 ------------------------- */ + +#if defined(PLAT_amd64_win64) && !defined(__GNUC__) + +#error Unsupported compiler. + +#endif /* PLAT_amd64_win64 */ + +/* ------------------------ ppc32-linux ------------------------ */ + +#if defined(PLAT_ppc32_linux) + +typedef + struct { + unsigned int nraddr; /* where's the code? */ + } + OrigFn; + +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "rlwinm 0,0,3,0,31 ; rlwinm 0,0,13,0,31\n\t" \ + "rlwinm 0,0,29,0,31 ; rlwinm 0,0,19,0,31\n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + \ + __extension__ \ + ({ unsigned int _zzq_args[6]; \ + unsigned int _zzq_result; \ + unsigned int* _zzq_ptr; \ + _zzq_args[0] = (unsigned int)(_zzq_request); \ + _zzq_args[1] = (unsigned int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned int)(_zzq_arg5); \ + _zzq_ptr = _zzq_args; \ + __asm__ volatile("mr 3,%1\n\t" /*default*/ \ + "mr 4,%2\n\t" /*ptr*/ \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* %R3 = client_request ( %R4 ) */ \ + "or 1,1,1\n\t" \ + "mr %0,3" /*result*/ \ + : "=b" (_zzq_result) \ + : "b" (_zzq_default), "b" (_zzq_ptr) \ + : "cc", "memory", "r3", "r4"); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + unsigned int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %R3 = guest_NRADDR */ \ + "or 2,2,2\n\t" \ + "mr %0,3" \ + : "=b" (__addr) \ + : \ + : "cc", "memory", "r3" \ + ); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* branch-and-link-to-noredir *%R11 */ \ + "or 3,3,3\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "or 5,5,5\n\t" \ + ); \ + } while (0) + +#endif /* PLAT_ppc32_linux */ + +/* ------------------------ ppc64-linux ------------------------ */ + +#if defined(PLAT_ppc64be_linux) + +typedef + struct { + unsigned long int nraddr; /* where's the code? */ + unsigned long int r2; /* what tocptr do we need? */ + } + OrigFn; + +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "rotldi 0,0,3 ; rotldi 0,0,13\n\t" \ + "rotldi 0,0,61 ; rotldi 0,0,51\n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + \ + __extension__ \ + ({ unsigned long int _zzq_args[6]; \ + unsigned long int _zzq_result; \ + unsigned long int* _zzq_ptr; \ + _zzq_args[0] = (unsigned long int)(_zzq_request); \ + _zzq_args[1] = (unsigned long int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned long int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned long int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned long int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned long int)(_zzq_arg5); \ + _zzq_ptr = _zzq_args; \ + __asm__ volatile("mr 3,%1\n\t" /*default*/ \ + "mr 4,%2\n\t" /*ptr*/ \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* %R3 = client_request ( %R4 ) */ \ + "or 1,1,1\n\t" \ + "mr %0,3" /*result*/ \ + : "=b" (_zzq_result) \ + : "b" (_zzq_default), "b" (_zzq_ptr) \ + : "cc", "memory", "r3", "r4"); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + unsigned long int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %R3 = guest_NRADDR */ \ + "or 2,2,2\n\t" \ + "mr %0,3" \ + : "=b" (__addr) \ + : \ + : "cc", "memory", "r3" \ + ); \ + _zzq_orig->nraddr = __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %R3 = guest_NRADDR_GPR2 */ \ + "or 4,4,4\n\t" \ + "mr %0,3" \ + : "=b" (__addr) \ + : \ + : "cc", "memory", "r3" \ + ); \ + _zzq_orig->r2 = __addr; \ + } + +#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* branch-and-link-to-noredir *%R11 */ \ + "or 3,3,3\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "or 5,5,5\n\t" \ + ); \ + } while (0) + +#endif /* PLAT_ppc64be_linux */ + +#if defined(PLAT_ppc64le_linux) + +typedef + struct { + unsigned long int nraddr; /* where's the code? */ + unsigned long int r2; /* what tocptr do we need? */ + } + OrigFn; + +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "rotldi 0,0,3 ; rotldi 0,0,13\n\t" \ + "rotldi 0,0,61 ; rotldi 0,0,51\n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + \ + __extension__ \ + ({ unsigned long int _zzq_args[6]; \ + unsigned long int _zzq_result; \ + unsigned long int* _zzq_ptr; \ + _zzq_args[0] = (unsigned long int)(_zzq_request); \ + _zzq_args[1] = (unsigned long int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned long int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned long int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned long int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned long int)(_zzq_arg5); \ + _zzq_ptr = _zzq_args; \ + __asm__ volatile("mr 3,%1\n\t" /*default*/ \ + "mr 4,%2\n\t" /*ptr*/ \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* %R3 = client_request ( %R4 ) */ \ + "or 1,1,1\n\t" \ + "mr %0,3" /*result*/ \ + : "=b" (_zzq_result) \ + : "b" (_zzq_default), "b" (_zzq_ptr) \ + : "cc", "memory", "r3", "r4"); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + unsigned long int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %R3 = guest_NRADDR */ \ + "or 2,2,2\n\t" \ + "mr %0,3" \ + : "=b" (__addr) \ + : \ + : "cc", "memory", "r3" \ + ); \ + _zzq_orig->nraddr = __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %R3 = guest_NRADDR_GPR2 */ \ + "or 4,4,4\n\t" \ + "mr %0,3" \ + : "=b" (__addr) \ + : \ + : "cc", "memory", "r3" \ + ); \ + _zzq_orig->r2 = __addr; \ + } + +#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* branch-and-link-to-noredir *%R12 */ \ + "or 3,3,3\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "or 5,5,5\n\t" \ + ); \ + } while (0) + +#endif /* PLAT_ppc64le_linux */ + +/* ------------------------- arm-linux ------------------------- */ + +#if defined(PLAT_arm_linux) + +typedef + struct { + unsigned int nraddr; /* where's the code? */ + } + OrigFn; + +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "mov r12, r12, ror #3 ; mov r12, r12, ror #13 \n\t" \ + "mov r12, r12, ror #29 ; mov r12, r12, ror #19 \n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + \ + __extension__ \ + ({volatile unsigned int _zzq_args[6]; \ + volatile unsigned int _zzq_result; \ + _zzq_args[0] = (unsigned int)(_zzq_request); \ + _zzq_args[1] = (unsigned int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned int)(_zzq_arg5); \ + __asm__ volatile("mov r3, %1\n\t" /*default*/ \ + "mov r4, %2\n\t" /*ptr*/ \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* R3 = client_request ( R4 ) */ \ + "orr r10, r10, r10\n\t" \ + "mov %0, r3" /*result*/ \ + : "=r" (_zzq_result) \ + : "r" (_zzq_default), "r" (&_zzq_args[0]) \ + : "cc","memory", "r3", "r4"); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + unsigned int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* R3 = guest_NRADDR */ \ + "orr r11, r11, r11\n\t" \ + "mov %0, r3" \ + : "=r" (__addr) \ + : \ + : "cc", "memory", "r3" \ + ); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* branch-and-link-to-noredir *%R4 */ \ + "orr r12, r12, r12\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "orr r9, r9, r9\n\t" \ + : : : "cc", "memory" \ + ); \ + } while (0) + +#endif /* PLAT_arm_linux */ + +/* ------------------------ arm64-{linux,freebsd} ------------------------- */ + +#if defined(PLAT_arm64_linux) || defined(PLAT_arm64_freebsd) + +typedef + struct { + unsigned long int nraddr; /* where's the code? */ + } + OrigFn; + +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "ror x12, x12, #3 ; ror x12, x12, #13 \n\t" \ + "ror x12, x12, #51 ; ror x12, x12, #61 \n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + \ + __extension__ \ + ({volatile unsigned long int _zzq_args[6]; \ + volatile unsigned long int _zzq_result; \ + _zzq_args[0] = (unsigned long int)(_zzq_request); \ + _zzq_args[1] = (unsigned long int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned long int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned long int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned long int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned long int)(_zzq_arg5); \ + __asm__ volatile("mov x3, %1\n\t" /*default*/ \ + "mov x4, %2\n\t" /*ptr*/ \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* X3 = client_request ( X4 ) */ \ + "orr x10, x10, x10\n\t" \ + "mov %0, x3" /*result*/ \ + : "=r" (_zzq_result) \ + : "r" ((unsigned long int)(_zzq_default)), \ + "r" (&_zzq_args[0]) \ + : "cc","memory", "x3", "x4"); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + unsigned long int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* X3 = guest_NRADDR */ \ + "orr x11, x11, x11\n\t" \ + "mov %0, x3" \ + : "=r" (__addr) \ + : \ + : "cc", "memory", "x3" \ + ); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* branch-and-link-to-noredir X8 */ \ + "orr x12, x12, x12\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "orr x9, x9, x9\n\t" \ + : : : "cc", "memory" \ + ); \ + } while (0) + +#endif /* PLAT_arm64_linux || PLAT_arm64_freebsd */ + +/* ------------------------ s390x-linux ------------------------ */ + +#if defined(PLAT_s390x_linux) + +typedef + struct { + unsigned long int nraddr; /* where's the code? */ + } + OrigFn; + +/* __SPECIAL_INSTRUCTION_PREAMBLE will be used to identify Valgrind specific + * code. This detection is implemented in platform specific toIR.c + * (e.g. VEX/priv/guest_s390_decoder.c). + */ +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "lr 15,15\n\t" \ + "lr 1,1\n\t" \ + "lr 2,2\n\t" \ + "lr 3,3\n\t" + +#define __CLIENT_REQUEST_CODE "lr 2,2\n\t" +#define __GET_NR_CONTEXT_CODE "lr 3,3\n\t" +#define __CALL_NO_REDIR_CODE "lr 4,4\n\t" +#define __VEX_INJECT_IR_CODE "lr 5,5\n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + __extension__ \ + ({volatile unsigned long int _zzq_args[6]; \ + volatile unsigned long int _zzq_result; \ + _zzq_args[0] = (unsigned long int)(_zzq_request); \ + _zzq_args[1] = (unsigned long int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned long int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned long int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned long int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned long int)(_zzq_arg5); \ + __asm__ volatile(/* r2 = args */ \ + "lgr 2,%1\n\t" \ + /* r3 = default */ \ + "lgr 3,%2\n\t" \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + __CLIENT_REQUEST_CODE \ + /* results = r3 */ \ + "lgr %0, 3\n\t" \ + : "=d" (_zzq_result) \ + : "a" (&_zzq_args[0]), \ + "0" ((unsigned long int)_zzq_default) \ + : "cc", "2", "3", "memory" \ + ); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + volatile unsigned long int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + __GET_NR_CONTEXT_CODE \ + "lgr %0, 3\n\t" \ + : "=a" (__addr) \ + : \ + : "cc", "3", "memory" \ + ); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_CALL_NOREDIR_R1 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + __CALL_NO_REDIR_CODE + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + __VEX_INJECT_IR_CODE); \ + } while (0) + +#endif /* PLAT_s390x_linux */ + +/* ------------------------- mips32-linux ---------------- */ + +#if defined(PLAT_mips32_linux) + +typedef + struct { + unsigned int nraddr; /* where's the code? */ + } + OrigFn; + +/* .word 0x342 + * .word 0x742 + * .word 0xC2 + * .word 0x4C2*/ +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "srl $0, $0, 13\n\t" \ + "srl $0, $0, 29\n\t" \ + "srl $0, $0, 3\n\t" \ + "srl $0, $0, 19\n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + __extension__ \ + ({ volatile unsigned int _zzq_args[6]; \ + volatile unsigned int _zzq_result; \ + _zzq_args[0] = (unsigned int)(_zzq_request); \ + _zzq_args[1] = (unsigned int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned int)(_zzq_arg5); \ + __asm__ volatile("move $11, %1\n\t" /*default*/ \ + "move $12, %2\n\t" /*ptr*/ \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* T3 = client_request ( T4 ) */ \ + "or $13, $13, $13\n\t" \ + "move %0, $11\n\t" /*result*/ \ + : "=r" (_zzq_result) \ + : "r" (_zzq_default), "r" (&_zzq_args[0]) \ + : "$11", "$12", "memory"); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + volatile unsigned int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* %t9 = guest_NRADDR */ \ + "or $14, $14, $14\n\t" \ + "move %0, $11" /*result*/ \ + : "=r" (__addr) \ + : \ + : "$11" \ + ); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_CALL_NOREDIR_T9 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* call-noredir *%t9 */ \ + "or $15, $15, $15\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "or $11, $11, $11\n\t" \ + ); \ + } while (0) + + +#endif /* PLAT_mips32_linux */ + +/* ------------------------- mips64-linux ---------------- */ + +#if defined(PLAT_mips64_linux) + +typedef + struct { + unsigned long nraddr; /* where's the code? */ + } + OrigFn; + +/* dsll $0,$0, 3 + * dsll $0,$0, 13 + * dsll $0,$0, 29 + * dsll $0,$0, 19*/ +#define __SPECIAL_INSTRUCTION_PREAMBLE \ + "dsll $0,$0, 3 ; dsll $0,$0,13\n\t" \ + "dsll $0,$0,29 ; dsll $0,$0,19\n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + __extension__ \ + ({ volatile unsigned long int _zzq_args[6]; \ + volatile unsigned long int _zzq_result; \ + _zzq_args[0] = (unsigned long int)(_zzq_request); \ + _zzq_args[1] = (unsigned long int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned long int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned long int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned long int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned long int)(_zzq_arg5); \ + __asm__ volatile("move $11, %1\n\t" /*default*/ \ + "move $12, %2\n\t" /*ptr*/ \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* $11 = client_request ( $12 ) */ \ + "or $13, $13, $13\n\t" \ + "move %0, $11\n\t" /*result*/ \ + : "=r" (_zzq_result) \ + : "r" (_zzq_default), "r" (&_zzq_args[0]) \ + : "$11", "$12", "memory"); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + volatile unsigned long int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* $11 = guest_NRADDR */ \ + "or $14, $14, $14\n\t" \ + "move %0, $11" /*result*/ \ + : "=r" (__addr) \ + : \ + : "$11"); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_CALL_NOREDIR_T9 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* call-noredir $25 */ \ + "or $15, $15, $15\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "or $11, $11, $11\n\t" \ + ); \ + } while (0) + +#endif /* PLAT_mips64_linux */ + +#if defined(PLAT_nanomips_linux) + +typedef + struct { + unsigned int nraddr; /* where's the code? */ + } + OrigFn; +/* + 8000 c04d srl zero, zero, 13 + 8000 c05d srl zero, zero, 29 + 8000 c043 srl zero, zero, 3 + 8000 c053 srl zero, zero, 19 +*/ + +#define __SPECIAL_INSTRUCTION_PREAMBLE "srl[32] $zero, $zero, 13 \n\t" \ + "srl[32] $zero, $zero, 29 \n\t" \ + "srl[32] $zero, $zero, 3 \n\t" \ + "srl[32] $zero, $zero, 19 \n\t" + +#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + _zzq_default, _zzq_request, \ + _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \ + __extension__ \ + ({ volatile unsigned int _zzq_args[6]; \ + volatile unsigned int _zzq_result; \ + _zzq_args[0] = (unsigned int)(_zzq_request); \ + _zzq_args[1] = (unsigned int)(_zzq_arg1); \ + _zzq_args[2] = (unsigned int)(_zzq_arg2); \ + _zzq_args[3] = (unsigned int)(_zzq_arg3); \ + _zzq_args[4] = (unsigned int)(_zzq_arg4); \ + _zzq_args[5] = (unsigned int)(_zzq_arg5); \ + __asm__ volatile("move $a7, %1\n\t" /* default */ \ + "move $t0, %2\n\t" /* ptr */ \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* $a7 = client_request( $t0 ) */ \ + "or[32] $t0, $t0, $t0\n\t" \ + "move %0, $a7\n\t" /* result */ \ + : "=r" (_zzq_result) \ + : "r" (_zzq_default), "r" (&_zzq_args[0]) \ + : "$a7", "$t0", "memory"); \ + _zzq_result; \ + }) + +#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \ + { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \ + volatile unsigned long int __addr; \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + /* $a7 = guest_NRADDR */ \ + "or[32] $t1, $t1, $t1\n\t" \ + "move %0, $a7" /*result*/ \ + : "=r" (__addr) \ + : \ + : "$a7"); \ + _zzq_orig->nraddr = __addr; \ + } + +#define VALGRIND_CALL_NOREDIR_T9 \ + __SPECIAL_INSTRUCTION_PREAMBLE \ + /* call-noredir $25 */ \ + "or[32] $t2, $t2, $t2\n\t" + +#define VALGRIND_VEX_INJECT_IR() \ + do { \ + __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \ + "or[32] $t3, $t3, $t3\n\t" \ + ); \ + } while (0) + +#endif +/* Insert assembly code for other platforms here... */ + +#endif /* NVALGRIND */ + + +/* ------------------------------------------------------------------ */ +/* PLATFORM SPECIFICS for FUNCTION WRAPPING. This is all very */ +/* ugly. It's the least-worst tradeoff I can think of. */ +/* ------------------------------------------------------------------ */ + +/* This section defines magic (a.k.a appalling-hack) macros for doing + guaranteed-no-redirection macros, so as to get from function + wrappers to the functions they are wrapping. The whole point is to + construct standard call sequences, but to do the call itself with a + special no-redirect call pseudo-instruction that the JIT + understands and handles specially. This section is long and + repetitious, and I can't see a way to make it shorter. + + The naming scheme is as follows: + + CALL_FN_{W,v}_{v,W,WW,WWW,WWWW,5W,6W,7W,etc} + + 'W' stands for "word" and 'v' for "void". Hence there are + different macros for calling arity 0, 1, 2, 3, 4, etc, functions, + and for each, the possibility of returning a word-typed result, or + no result. +*/ + +/* Use these to write the name of your wrapper. NOTE: duplicates + VG_WRAP_FUNCTION_Z{U,Z} in pub_tool_redir.h. NOTE also: inserts + the default behaviour equivalance class tag "0000" into the name. + See pub_tool_redir.h for details -- normally you don't need to + think about this, though. */ + +/* Use an extra level of macroisation so as to ensure the soname/fnname + args are fully macro-expanded before pasting them together. */ +#define VG_CONCAT4(_aa,_bb,_cc,_dd) _aa##_bb##_cc##_dd + +#define I_WRAP_SONAME_FNNAME_ZU(soname,fnname) \ + VG_CONCAT4(_vgw00000ZU_,soname,_,fnname) + +#define I_WRAP_SONAME_FNNAME_ZZ(soname,fnname) \ + VG_CONCAT4(_vgw00000ZZ_,soname,_,fnname) + +/* Use this macro from within a wrapper function to collect the + context (address and possibly other info) of the original function. + Once you have that you can then use it in one of the CALL_FN_ + macros. The type of the argument _lval is OrigFn. */ +#define VALGRIND_GET_ORIG_FN(_lval) VALGRIND_GET_NR_CONTEXT(_lval) + +/* Also provide end-user facilities for function replacement, rather + than wrapping. A replacement function differs from a wrapper in + that it has no way to get hold of the original function being + called, and hence no way to call onwards to it. In a replacement + function, VALGRIND_GET_ORIG_FN always returns zero. */ + +#define I_REPLACE_SONAME_FNNAME_ZU(soname,fnname) \ + VG_CONCAT4(_vgr00000ZU_,soname,_,fnname) + +#define I_REPLACE_SONAME_FNNAME_ZZ(soname,fnname) \ + VG_CONCAT4(_vgr00000ZZ_,soname,_,fnname) + +/* Derivatives of the main macros below, for calling functions + returning void. */ + +#define CALL_FN_v_v(fnptr) \ + do { volatile unsigned long _junk; \ + CALL_FN_W_v(_junk,fnptr); } while (0) + +#define CALL_FN_v_W(fnptr, arg1) \ + do { volatile unsigned long _junk; \ + CALL_FN_W_W(_junk,fnptr,arg1); } while (0) + +#define CALL_FN_v_WW(fnptr, arg1,arg2) \ + do { volatile unsigned long _junk; \ + CALL_FN_W_WW(_junk,fnptr,arg1,arg2); } while (0) + +#define CALL_FN_v_WWW(fnptr, arg1,arg2,arg3) \ + do { volatile unsigned long _junk; \ + CALL_FN_W_WWW(_junk,fnptr,arg1,arg2,arg3); } while (0) + +#define CALL_FN_v_WWWW(fnptr, arg1,arg2,arg3,arg4) \ + do { volatile unsigned long _junk; \ + CALL_FN_W_WWWW(_junk,fnptr,arg1,arg2,arg3,arg4); } while (0) + +#define CALL_FN_v_5W(fnptr, arg1,arg2,arg3,arg4,arg5) \ + do { volatile unsigned long _junk; \ + CALL_FN_W_5W(_junk,fnptr,arg1,arg2,arg3,arg4,arg5); } while (0) + +#define CALL_FN_v_6W(fnptr, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { volatile unsigned long _junk; \ + CALL_FN_W_6W(_junk,fnptr,arg1,arg2,arg3,arg4,arg5,arg6); } while (0) + +#define CALL_FN_v_7W(fnptr, arg1,arg2,arg3,arg4,arg5,arg6,arg7) \ + do { volatile unsigned long _junk; \ + CALL_FN_W_7W(_junk,fnptr,arg1,arg2,arg3,arg4,arg5,arg6,arg7); } while (0) + +/* ----------------- x86-{linux,darwin,solaris} ---------------- */ + +#if defined(PLAT_x86_linux) || defined(PLAT_x86_darwin) \ + || defined(PLAT_x86_solaris) || defined(PLAT_x86_freebsd) + +/* These regs are trashed by the hidden call. No need to mention eax + as gcc can already see that, plus causes gcc to bomb. */ +#define __CALLER_SAVED_REGS /*"eax"*/ "ecx", "edx" + +/* Macros to save and align the stack before making a function + call and restore it afterwards as gcc may not keep the stack + pointer aligned if it doesn't realise calls are being made + to other functions. */ + +#define VALGRIND_ALIGN_STACK \ + "movl %%esp,%%edi\n\t" \ + "andl $0xfffffff0,%%esp\n\t" +#define VALGRIND_RESTORE_STACK \ + "movl %%edi,%%esp\n\t" + +/* These CALL_FN_ macros assume that on x86-linux, sizeof(unsigned + long) == 4. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[1]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[2]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $12, %%esp\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $8, %%esp\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[4]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $4, %%esp\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[5]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[6]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $12, %%esp\n\t" \ + "pushl 20(%%eax)\n\t" \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[7]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $8, %%esp\n\t" \ + "pushl 24(%%eax)\n\t" \ + "pushl 20(%%eax)\n\t" \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[8]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $4, %%esp\n\t" \ + "pushl 28(%%eax)\n\t" \ + "pushl 24(%%eax)\n\t" \ + "pushl 20(%%eax)\n\t" \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[9]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "pushl 32(%%eax)\n\t" \ + "pushl 28(%%eax)\n\t" \ + "pushl 24(%%eax)\n\t" \ + "pushl 20(%%eax)\n\t" \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[10]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $12, %%esp\n\t" \ + "pushl 36(%%eax)\n\t" \ + "pushl 32(%%eax)\n\t" \ + "pushl 28(%%eax)\n\t" \ + "pushl 24(%%eax)\n\t" \ + "pushl 20(%%eax)\n\t" \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[11]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $8, %%esp\n\t" \ + "pushl 40(%%eax)\n\t" \ + "pushl 36(%%eax)\n\t" \ + "pushl 32(%%eax)\n\t" \ + "pushl 28(%%eax)\n\t" \ + "pushl 24(%%eax)\n\t" \ + "pushl 20(%%eax)\n\t" \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[12]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "subl $4, %%esp\n\t" \ + "pushl 44(%%eax)\n\t" \ + "pushl 40(%%eax)\n\t" \ + "pushl 36(%%eax)\n\t" \ + "pushl 32(%%eax)\n\t" \ + "pushl 28(%%eax)\n\t" \ + "pushl 24(%%eax)\n\t" \ + "pushl 20(%%eax)\n\t" \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[13]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + _argvec[12] = (unsigned long)(arg12); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "pushl 48(%%eax)\n\t" \ + "pushl 44(%%eax)\n\t" \ + "pushl 40(%%eax)\n\t" \ + "pushl 36(%%eax)\n\t" \ + "pushl 32(%%eax)\n\t" \ + "pushl 28(%%eax)\n\t" \ + "pushl 24(%%eax)\n\t" \ + "pushl 20(%%eax)\n\t" \ + "pushl 16(%%eax)\n\t" \ + "pushl 12(%%eax)\n\t" \ + "pushl 8(%%eax)\n\t" \ + "pushl 4(%%eax)\n\t" \ + "movl (%%eax), %%eax\n\t" /* target->%eax */ \ + VALGRIND_CALL_NOREDIR_EAX \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_x86_linux || PLAT_x86_darwin || PLAT_x86_solaris */ + +/* ---------------- amd64-{linux,darwin,solaris} --------------- */ + +#if defined(PLAT_amd64_linux) || defined(PLAT_amd64_darwin) \ + || defined(PLAT_amd64_solaris) || defined(PLAT_amd64_freebsd) + +/* ARGREGS: rdi rsi rdx rcx r8 r9 (the rest on stack in R-to-L order) */ + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS /*"rax",*/ "rcx", "rdx", "rsi", \ + "rdi", "r8", "r9", "r10", "r11" + +/* This is all pretty complex. It's so as to make stack unwinding + work reliably. See bug 243270. The basic problem is the sub and + add of 128 of %rsp in all of the following macros. If gcc believes + the CFA is in %rsp, then unwinding may fail, because what's at the + CFA is not what gcc "expected" when it constructs the CFIs for the + places where the macros are instantiated. + + But we can't just add a CFI annotation to increase the CFA offset + by 128, to match the sub of 128 from %rsp, because we don't know + whether gcc has chosen %rsp as the CFA at that point, or whether it + has chosen some other register (eg, %rbp). In the latter case, + adding a CFI annotation to change the CFA offset is simply wrong. + + So the solution is to get hold of the CFA using + __builtin_dwarf_cfa(), put it in a known register, and add a + CFI annotation to say what the register is. We choose %rbp for + this (perhaps perversely), because: + + (1) %rbp is already subject to unwinding. If a new register was + chosen then the unwinder would have to unwind it in all stack + traces, which is expensive, and + + (2) %rbp is already subject to precise exception updates in the + JIT. If a new register was chosen, we'd have to have precise + exceptions for it too, which reduces performance of the + generated code. + + However .. one extra complication. We can't just whack the result + of __builtin_dwarf_cfa() into %rbp and then add %rbp to the + list of trashed registers at the end of the inline assembly + fragments; gcc won't allow %rbp to appear in that list. Hence + instead we need to stash %rbp in %r15 for the duration of the asm, + and say that %r15 is trashed instead. gcc seems happy to go with + that. + + Oh .. and this all needs to be conditionalised so that it is + unchanged from before this commit, when compiled with older gccs + that don't support __builtin_dwarf_cfa. Furthermore, since + this header file is freestanding, it has to be independent of + config.h, and so the following conditionalisation cannot depend on + configure time checks. + + Although it's not clear from + 'defined(__GNUC__) && defined(__GCC_HAVE_DWARF2_CFI_ASM)', + this expression excludes Darwin. + .cfi directives in Darwin assembly appear to be completely + different and I haven't investigated how they work. + + For even more entertainment value, note we have to use the + completely undocumented __builtin_dwarf_cfa(), which appears to + really compute the CFA, whereas __builtin_frame_address(0) claims + to but actually doesn't. See + https://bugs.kde.org/show_bug.cgi?id=243270#c47 +*/ +#if defined(__GNUC__) && defined(__GCC_HAVE_DWARF2_CFI_ASM) +# define __FRAME_POINTER \ + ,"r"(__builtin_dwarf_cfa()) +# define VALGRIND_CFI_PROLOGUE \ + "movq %%rbp, %%r15\n\t" \ + "movq %2, %%rbp\n\t" \ + ".cfi_remember_state\n\t" \ + ".cfi_def_cfa rbp, 0\n\t" +# define VALGRIND_CFI_EPILOGUE \ + "movq %%r15, %%rbp\n\t" \ + ".cfi_restore_state\n\t" +#else +# define __FRAME_POINTER +# define VALGRIND_CFI_PROLOGUE +# define VALGRIND_CFI_EPILOGUE +#endif + +/* Macros to save and align the stack before making a function + call and restore it afterwards as gcc may not keep the stack + pointer aligned if it doesn't realise calls are being made + to other functions. */ + +#define VALGRIND_ALIGN_STACK \ + "movq %%rsp,%%r14\n\t" \ + "andq $0xfffffffffffffff0,%%rsp\n\t" +#define VALGRIND_RESTORE_STACK \ + "movq %%r14,%%rsp\n\t" + +/* These CALL_FN_ macros assume that on amd64-linux, sizeof(unsigned + long) == 8. */ + +/* NB 9 Sept 07. There is a nasty kludge here in all these CALL_FN_ + macros. In order not to trash the stack redzone, we need to drop + %rsp by 128 before the hidden call, and restore afterwards. The + nastyness is that it is only by luck that the stack still appears + to be unwindable during the hidden call - since then the behaviour + of any routine using this macro does not match what the CFI data + says. Sigh. + + Why is this important? Imagine that a wrapper has a stack + allocated local, and passes to the hidden call, a pointer to it. + Because gcc does not know about the hidden call, it may allocate + that local in the redzone. Unfortunately the hidden call may then + trash it before it comes to use it. So we must step clear of the + redzone, for the duration of the hidden call, to make it safe. + + Probably the same problem afflicts the other redzone-style ABIs too + (ppc64-linux); but for those, the stack is + self describing (none of this CFI nonsense) so at least messing + with the stack pointer doesn't give a danger of non-unwindable + stack. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[1]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[2]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[4]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[5]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[6]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "movq 40(%%rax), %%r8\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[7]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "movq 48(%%rax), %%r9\n\t" \ + "movq 40(%%rax), %%r8\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[8]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $136,%%rsp\n\t" \ + "pushq 56(%%rax)\n\t" \ + "movq 48(%%rax), %%r9\n\t" \ + "movq 40(%%rax), %%r8\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[9]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "pushq 64(%%rax)\n\t" \ + "pushq 56(%%rax)\n\t" \ + "movq 48(%%rax), %%r9\n\t" \ + "movq 40(%%rax), %%r8\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[10]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $136,%%rsp\n\t" \ + "pushq 72(%%rax)\n\t" \ + "pushq 64(%%rax)\n\t" \ + "pushq 56(%%rax)\n\t" \ + "movq 48(%%rax), %%r9\n\t" \ + "movq 40(%%rax), %%r8\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[11]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "pushq 80(%%rax)\n\t" \ + "pushq 72(%%rax)\n\t" \ + "pushq 64(%%rax)\n\t" \ + "pushq 56(%%rax)\n\t" \ + "movq 48(%%rax), %%r9\n\t" \ + "movq 40(%%rax), %%r8\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[12]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $136,%%rsp\n\t" \ + "pushq 88(%%rax)\n\t" \ + "pushq 80(%%rax)\n\t" \ + "pushq 72(%%rax)\n\t" \ + "pushq 64(%%rax)\n\t" \ + "pushq 56(%%rax)\n\t" \ + "movq 48(%%rax), %%r9\n\t" \ + "movq 40(%%rax), %%r8\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[13]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + _argvec[12] = (unsigned long)(arg12); \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + VALGRIND_ALIGN_STACK \ + "subq $128,%%rsp\n\t" \ + "pushq 96(%%rax)\n\t" \ + "pushq 88(%%rax)\n\t" \ + "pushq 80(%%rax)\n\t" \ + "pushq 72(%%rax)\n\t" \ + "pushq 64(%%rax)\n\t" \ + "pushq 56(%%rax)\n\t" \ + "movq 48(%%rax), %%r9\n\t" \ + "movq 40(%%rax), %%r8\n\t" \ + "movq 32(%%rax), %%rcx\n\t" \ + "movq 24(%%rax), %%rdx\n\t" \ + "movq 16(%%rax), %%rsi\n\t" \ + "movq 8(%%rax), %%rdi\n\t" \ + "movq (%%rax), %%rax\n\t" /* target->%rax */ \ + VALGRIND_CALL_NOREDIR_RAX \ + VALGRIND_RESTORE_STACK \ + VALGRIND_CFI_EPILOGUE \ + : /*out*/ "=a" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_amd64_linux || PLAT_amd64_darwin || PLAT_amd64_solaris */ + +/* ------------------------ ppc32-linux ------------------------ */ + +#if defined(PLAT_ppc32_linux) + +/* This is useful for finding out about the on-stack stuff: + + extern int f9 ( int,int,int,int,int,int,int,int,int ); + extern int f10 ( int,int,int,int,int,int,int,int,int,int ); + extern int f11 ( int,int,int,int,int,int,int,int,int,int,int ); + extern int f12 ( int,int,int,int,int,int,int,int,int,int,int,int ); + + int g9 ( void ) { + return f9(11,22,33,44,55,66,77,88,99); + } + int g10 ( void ) { + return f10(11,22,33,44,55,66,77,88,99,110); + } + int g11 ( void ) { + return f11(11,22,33,44,55,66,77,88,99,110,121); + } + int g12 ( void ) { + return f12(11,22,33,44,55,66,77,88,99,110,121,132); + } +*/ + +/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */ + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS \ + "lr", "ctr", "xer", \ + "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \ + "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \ + "r11", "r12", "r13" + +/* Macros to save and align the stack before making a function + call and restore it afterwards as gcc may not keep the stack + pointer aligned if it doesn't realise calls are being made + to other functions. */ + +#define VALGRIND_ALIGN_STACK \ + "mr 28,1\n\t" \ + "rlwinm 1,1,0,0,27\n\t" +#define VALGRIND_RESTORE_STACK \ + "mr 1,28\n\t" + +/* These CALL_FN_ macros assume that on ppc32-linux, + sizeof(unsigned long) == 4. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[1]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[2]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[4]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[5]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[6]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 7,20(11)\n\t" \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[7]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 7,20(11)\n\t" \ + "lwz 8,24(11)\n\t" \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[8]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 7,20(11)\n\t" \ + "lwz 8,24(11)\n\t" \ + "lwz 9,28(11)\n\t" \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[9]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 7,20(11)\n\t" \ + "lwz 8,24(11)\n\t" \ + "lwz 9,28(11)\n\t" \ + "lwz 10,32(11)\n\t" /* arg8->r10 */ \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[10]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + _argvec[9] = (unsigned long)arg9; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "addi 1,1,-16\n\t" \ + /* arg9 */ \ + "lwz 3,36(11)\n\t" \ + "stw 3,8(1)\n\t" \ + /* args1-8 */ \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 7,20(11)\n\t" \ + "lwz 8,24(11)\n\t" \ + "lwz 9,28(11)\n\t" \ + "lwz 10,32(11)\n\t" /* arg8->r10 */ \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[11]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + _argvec[9] = (unsigned long)arg9; \ + _argvec[10] = (unsigned long)arg10; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "addi 1,1,-16\n\t" \ + /* arg10 */ \ + "lwz 3,40(11)\n\t" \ + "stw 3,12(1)\n\t" \ + /* arg9 */ \ + "lwz 3,36(11)\n\t" \ + "stw 3,8(1)\n\t" \ + /* args1-8 */ \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 7,20(11)\n\t" \ + "lwz 8,24(11)\n\t" \ + "lwz 9,28(11)\n\t" \ + "lwz 10,32(11)\n\t" /* arg8->r10 */ \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[12]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + _argvec[9] = (unsigned long)arg9; \ + _argvec[10] = (unsigned long)arg10; \ + _argvec[11] = (unsigned long)arg11; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "addi 1,1,-32\n\t" \ + /* arg11 */ \ + "lwz 3,44(11)\n\t" \ + "stw 3,16(1)\n\t" \ + /* arg10 */ \ + "lwz 3,40(11)\n\t" \ + "stw 3,12(1)\n\t" \ + /* arg9 */ \ + "lwz 3,36(11)\n\t" \ + "stw 3,8(1)\n\t" \ + /* args1-8 */ \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 7,20(11)\n\t" \ + "lwz 8,24(11)\n\t" \ + "lwz 9,28(11)\n\t" \ + "lwz 10,32(11)\n\t" /* arg8->r10 */ \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[13]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + _argvec[9] = (unsigned long)arg9; \ + _argvec[10] = (unsigned long)arg10; \ + _argvec[11] = (unsigned long)arg11; \ + _argvec[12] = (unsigned long)arg12; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "addi 1,1,-32\n\t" \ + /* arg12 */ \ + "lwz 3,48(11)\n\t" \ + "stw 3,20(1)\n\t" \ + /* arg11 */ \ + "lwz 3,44(11)\n\t" \ + "stw 3,16(1)\n\t" \ + /* arg10 */ \ + "lwz 3,40(11)\n\t" \ + "stw 3,12(1)\n\t" \ + /* arg9 */ \ + "lwz 3,36(11)\n\t" \ + "stw 3,8(1)\n\t" \ + /* args1-8 */ \ + "lwz 3,4(11)\n\t" /* arg1->r3 */ \ + "lwz 4,8(11)\n\t" \ + "lwz 5,12(11)\n\t" \ + "lwz 6,16(11)\n\t" /* arg4->r6 */ \ + "lwz 7,20(11)\n\t" \ + "lwz 8,24(11)\n\t" \ + "lwz 9,28(11)\n\t" \ + "lwz 10,32(11)\n\t" /* arg8->r10 */ \ + "lwz 11,0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + VALGRIND_RESTORE_STACK \ + "mr %0,3" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_ppc32_linux */ + +/* ------------------------ ppc64-linux ------------------------ */ + +#if defined(PLAT_ppc64be_linux) + +/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */ + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS \ + "lr", "ctr", "xer", \ + "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \ + "r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \ + "r11", "r12", "r13" + +/* Macros to save and align the stack before making a function + call and restore it afterwards as gcc may not keep the stack + pointer aligned if it doesn't realise calls are being made + to other functions. */ + +#define VALGRIND_ALIGN_STACK \ + "mr 28,1\n\t" \ + "rldicr 1,1,0,59\n\t" +#define VALGRIND_RESTORE_STACK \ + "mr 1,28\n\t" + +/* These CALL_FN_ macros assume that on ppc64-linux, sizeof(unsigned + long) == 8. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+0]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+1]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+2]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+3]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+4]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+5]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 7, 40(11)\n\t" /* arg5->r7 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+6]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 7, 40(11)\n\t" /* arg5->r7 */ \ + "ld 8, 48(11)\n\t" /* arg6->r8 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+7]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 7, 40(11)\n\t" /* arg5->r7 */ \ + "ld 8, 48(11)\n\t" /* arg6->r8 */ \ + "ld 9, 56(11)\n\t" /* arg7->r9 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+8]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 7, 40(11)\n\t" /* arg5->r7 */ \ + "ld 8, 48(11)\n\t" /* arg6->r8 */ \ + "ld 9, 56(11)\n\t" /* arg7->r9 */ \ + "ld 10, 64(11)\n\t" /* arg8->r10 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+9]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + _argvec[2+9] = (unsigned long)arg9; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "addi 1,1,-128\n\t" /* expand stack frame */ \ + /* arg9 */ \ + "ld 3,72(11)\n\t" \ + "std 3,112(1)\n\t" \ + /* args1-8 */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 7, 40(11)\n\t" /* arg5->r7 */ \ + "ld 8, 48(11)\n\t" /* arg6->r8 */ \ + "ld 9, 56(11)\n\t" /* arg7->r9 */ \ + "ld 10, 64(11)\n\t" /* arg8->r10 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+10]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + _argvec[2+9] = (unsigned long)arg9; \ + _argvec[2+10] = (unsigned long)arg10; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "addi 1,1,-128\n\t" /* expand stack frame */ \ + /* arg10 */ \ + "ld 3,80(11)\n\t" \ + "std 3,120(1)\n\t" \ + /* arg9 */ \ + "ld 3,72(11)\n\t" \ + "std 3,112(1)\n\t" \ + /* args1-8 */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 7, 40(11)\n\t" /* arg5->r7 */ \ + "ld 8, 48(11)\n\t" /* arg6->r8 */ \ + "ld 9, 56(11)\n\t" /* arg7->r9 */ \ + "ld 10, 64(11)\n\t" /* arg8->r10 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+11]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + _argvec[2+9] = (unsigned long)arg9; \ + _argvec[2+10] = (unsigned long)arg10; \ + _argvec[2+11] = (unsigned long)arg11; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "addi 1,1,-144\n\t" /* expand stack frame */ \ + /* arg11 */ \ + "ld 3,88(11)\n\t" \ + "std 3,128(1)\n\t" \ + /* arg10 */ \ + "ld 3,80(11)\n\t" \ + "std 3,120(1)\n\t" \ + /* arg9 */ \ + "ld 3,72(11)\n\t" \ + "std 3,112(1)\n\t" \ + /* args1-8 */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 7, 40(11)\n\t" /* arg5->r7 */ \ + "ld 8, 48(11)\n\t" /* arg6->r8 */ \ + "ld 9, 56(11)\n\t" /* arg7->r9 */ \ + "ld 10, 64(11)\n\t" /* arg8->r10 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+12]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + _argvec[2+9] = (unsigned long)arg9; \ + _argvec[2+10] = (unsigned long)arg10; \ + _argvec[2+11] = (unsigned long)arg11; \ + _argvec[2+12] = (unsigned long)arg12; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 11,%1\n\t" \ + "std 2,-16(11)\n\t" /* save tocptr */ \ + "ld 2,-8(11)\n\t" /* use nraddr's tocptr */ \ + "addi 1,1,-144\n\t" /* expand stack frame */ \ + /* arg12 */ \ + "ld 3,96(11)\n\t" \ + "std 3,136(1)\n\t" \ + /* arg11 */ \ + "ld 3,88(11)\n\t" \ + "std 3,128(1)\n\t" \ + /* arg10 */ \ + "ld 3,80(11)\n\t" \ + "std 3,120(1)\n\t" \ + /* arg9 */ \ + "ld 3,72(11)\n\t" \ + "std 3,112(1)\n\t" \ + /* args1-8 */ \ + "ld 3, 8(11)\n\t" /* arg1->r3 */ \ + "ld 4, 16(11)\n\t" /* arg2->r4 */ \ + "ld 5, 24(11)\n\t" /* arg3->r5 */ \ + "ld 6, 32(11)\n\t" /* arg4->r6 */ \ + "ld 7, 40(11)\n\t" /* arg5->r7 */ \ + "ld 8, 48(11)\n\t" /* arg6->r8 */ \ + "ld 9, 56(11)\n\t" /* arg7->r9 */ \ + "ld 10, 64(11)\n\t" /* arg8->r10 */ \ + "ld 11, 0(11)\n\t" /* target->r11 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R11 \ + "mr 11,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(11)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_ppc64be_linux */ + +/* ------------------------- ppc64le-linux ----------------------- */ +#if defined(PLAT_ppc64le_linux) + +/* ARGREGS: r3 r4 r5 r6 r7 r8 r9 r10 (the rest on stack somewhere) */ + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS \ + "lr", "ctr", "xer", \ + "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \ + "r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \ + "r11", "r12", "r13" + +/* Macros to save and align the stack before making a function + call and restore it afterwards as gcc may not keep the stack + pointer aligned if it doesn't realise calls are being made + to other functions. */ + +#define VALGRIND_ALIGN_STACK \ + "mr 28,1\n\t" \ + "rldicr 1,1,0,59\n\t" +#define VALGRIND_RESTORE_STACK \ + "mr 1,28\n\t" + +/* These CALL_FN_ macros assume that on ppc64-linux, sizeof(unsigned + long) == 8. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+0]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+1]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+2]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+3]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+4]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+5]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 7, 40(12)\n\t" /* arg5->r7 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+6]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 7, 40(12)\n\t" /* arg5->r7 */ \ + "ld 8, 48(12)\n\t" /* arg6->r8 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+7]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 7, 40(12)\n\t" /* arg5->r7 */ \ + "ld 8, 48(12)\n\t" /* arg6->r8 */ \ + "ld 9, 56(12)\n\t" /* arg7->r9 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+8]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 7, 40(12)\n\t" /* arg5->r7 */ \ + "ld 8, 48(12)\n\t" /* arg6->r8 */ \ + "ld 9, 56(12)\n\t" /* arg7->r9 */ \ + "ld 10, 64(12)\n\t" /* arg8->r10 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+9]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + _argvec[2+9] = (unsigned long)arg9; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "addi 1,1,-128\n\t" /* expand stack frame */ \ + /* arg9 */ \ + "ld 3,72(12)\n\t" \ + "std 3,96(1)\n\t" \ + /* args1-8 */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 7, 40(12)\n\t" /* arg5->r7 */ \ + "ld 8, 48(12)\n\t" /* arg6->r8 */ \ + "ld 9, 56(12)\n\t" /* arg7->r9 */ \ + "ld 10, 64(12)\n\t" /* arg8->r10 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+10]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + _argvec[2+9] = (unsigned long)arg9; \ + _argvec[2+10] = (unsigned long)arg10; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "addi 1,1,-128\n\t" /* expand stack frame */ \ + /* arg10 */ \ + "ld 3,80(12)\n\t" \ + "std 3,104(1)\n\t" \ + /* arg9 */ \ + "ld 3,72(12)\n\t" \ + "std 3,96(1)\n\t" \ + /* args1-8 */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 7, 40(12)\n\t" /* arg5->r7 */ \ + "ld 8, 48(12)\n\t" /* arg6->r8 */ \ + "ld 9, 56(12)\n\t" /* arg7->r9 */ \ + "ld 10, 64(12)\n\t" /* arg8->r10 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+11]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + _argvec[2+9] = (unsigned long)arg9; \ + _argvec[2+10] = (unsigned long)arg10; \ + _argvec[2+11] = (unsigned long)arg11; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "addi 1,1,-144\n\t" /* expand stack frame */ \ + /* arg11 */ \ + "ld 3,88(12)\n\t" \ + "std 3,112(1)\n\t" \ + /* arg10 */ \ + "ld 3,80(12)\n\t" \ + "std 3,104(1)\n\t" \ + /* arg9 */ \ + "ld 3,72(12)\n\t" \ + "std 3,96(1)\n\t" \ + /* args1-8 */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 7, 40(12)\n\t" /* arg5->r7 */ \ + "ld 8, 48(12)\n\t" /* arg6->r8 */ \ + "ld 9, 56(12)\n\t" /* arg7->r9 */ \ + "ld 10, 64(12)\n\t" /* arg8->r10 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3+12]; \ + volatile unsigned long _res; \ + /* _argvec[0] holds current r2 across the call */ \ + _argvec[1] = (unsigned long)_orig.r2; \ + _argvec[2] = (unsigned long)_orig.nraddr; \ + _argvec[2+1] = (unsigned long)arg1; \ + _argvec[2+2] = (unsigned long)arg2; \ + _argvec[2+3] = (unsigned long)arg3; \ + _argvec[2+4] = (unsigned long)arg4; \ + _argvec[2+5] = (unsigned long)arg5; \ + _argvec[2+6] = (unsigned long)arg6; \ + _argvec[2+7] = (unsigned long)arg7; \ + _argvec[2+8] = (unsigned long)arg8; \ + _argvec[2+9] = (unsigned long)arg9; \ + _argvec[2+10] = (unsigned long)arg10; \ + _argvec[2+11] = (unsigned long)arg11; \ + _argvec[2+12] = (unsigned long)arg12; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "mr 12,%1\n\t" \ + "std 2,-16(12)\n\t" /* save tocptr */ \ + "ld 2,-8(12)\n\t" /* use nraddr's tocptr */ \ + "addi 1,1,-144\n\t" /* expand stack frame */ \ + /* arg12 */ \ + "ld 3,96(12)\n\t" \ + "std 3,120(1)\n\t" \ + /* arg11 */ \ + "ld 3,88(12)\n\t" \ + "std 3,112(1)\n\t" \ + /* arg10 */ \ + "ld 3,80(12)\n\t" \ + "std 3,104(1)\n\t" \ + /* arg9 */ \ + "ld 3,72(12)\n\t" \ + "std 3,96(1)\n\t" \ + /* args1-8 */ \ + "ld 3, 8(12)\n\t" /* arg1->r3 */ \ + "ld 4, 16(12)\n\t" /* arg2->r4 */ \ + "ld 5, 24(12)\n\t" /* arg3->r5 */ \ + "ld 6, 32(12)\n\t" /* arg4->r6 */ \ + "ld 7, 40(12)\n\t" /* arg5->r7 */ \ + "ld 8, 48(12)\n\t" /* arg6->r8 */ \ + "ld 9, 56(12)\n\t" /* arg7->r9 */ \ + "ld 10, 64(12)\n\t" /* arg8->r10 */ \ + "ld 12, 0(12)\n\t" /* target->r12 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R12 \ + "mr 12,%1\n\t" \ + "mr %0,3\n\t" \ + "ld 2,-16(12)\n\t" /* restore tocptr */ \ + VALGRIND_RESTORE_STACK \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[2]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r28" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_ppc64le_linux */ + +/* ------------------------- arm-linux ------------------------- */ + +#if defined(PLAT_arm_linux) + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS "r0", "r1", "r2", "r3","r4", "r12", "r14" + +/* Macros to save and align the stack before making a function + call and restore it afterwards as gcc may not keep the stack + pointer aligned if it doesn't realise calls are being made + to other functions. */ + +/* This is a bit tricky. We store the original stack pointer in r10 + as it is callee-saves. gcc doesn't allow the use of r11 for some + reason. Also, we can't directly "bic" the stack pointer in thumb + mode since r13 isn't an allowed register number in that context. + So use r4 as a temporary, since that is about to get trashed + anyway, just after each use of this macro. Side effect is we need + to be very careful about any future changes, since + VALGRIND_ALIGN_STACK simply assumes r4 is usable. */ +#define VALGRIND_ALIGN_STACK \ + "mov r10, sp\n\t" \ + "mov r4, sp\n\t" \ + "bic r4, r4, #7\n\t" \ + "mov sp, r4\n\t" +#define VALGRIND_RESTORE_STACK \ + "mov sp, r10\n\t" + +/* These CALL_FN_ macros assume that on arm-linux, sizeof(unsigned + long) == 4. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[1]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[2]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[4]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[5]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[6]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "sub sp, sp, #4 \n\t" \ + "ldr r0, [%1, #20] \n\t" \ + "push {r0} \n\t" \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[7]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r0, [%1, #20] \n\t" \ + "ldr r1, [%1, #24] \n\t" \ + "push {r0, r1} \n\t" \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[8]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "sub sp, sp, #4 \n\t" \ + "ldr r0, [%1, #20] \n\t" \ + "ldr r1, [%1, #24] \n\t" \ + "ldr r2, [%1, #28] \n\t" \ + "push {r0, r1, r2} \n\t" \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[9]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r0, [%1, #20] \n\t" \ + "ldr r1, [%1, #24] \n\t" \ + "ldr r2, [%1, #28] \n\t" \ + "ldr r3, [%1, #32] \n\t" \ + "push {r0, r1, r2, r3} \n\t" \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[10]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "sub sp, sp, #4 \n\t" \ + "ldr r0, [%1, #20] \n\t" \ + "ldr r1, [%1, #24] \n\t" \ + "ldr r2, [%1, #28] \n\t" \ + "ldr r3, [%1, #32] \n\t" \ + "ldr r4, [%1, #36] \n\t" \ + "push {r0, r1, r2, r3, r4} \n\t" \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[11]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r0, [%1, #40] \n\t" \ + "push {r0} \n\t" \ + "ldr r0, [%1, #20] \n\t" \ + "ldr r1, [%1, #24] \n\t" \ + "ldr r2, [%1, #28] \n\t" \ + "ldr r3, [%1, #32] \n\t" \ + "ldr r4, [%1, #36] \n\t" \ + "push {r0, r1, r2, r3, r4} \n\t" \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[12]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "sub sp, sp, #4 \n\t" \ + "ldr r0, [%1, #40] \n\t" \ + "ldr r1, [%1, #44] \n\t" \ + "push {r0, r1} \n\t" \ + "ldr r0, [%1, #20] \n\t" \ + "ldr r1, [%1, #24] \n\t" \ + "ldr r2, [%1, #28] \n\t" \ + "ldr r3, [%1, #32] \n\t" \ + "ldr r4, [%1, #36] \n\t" \ + "push {r0, r1, r2, r3, r4} \n\t" \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[13]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + _argvec[12] = (unsigned long)(arg12); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr r0, [%1, #40] \n\t" \ + "ldr r1, [%1, #44] \n\t" \ + "ldr r2, [%1, #48] \n\t" \ + "push {r0, r1, r2} \n\t" \ + "ldr r0, [%1, #20] \n\t" \ + "ldr r1, [%1, #24] \n\t" \ + "ldr r2, [%1, #28] \n\t" \ + "ldr r3, [%1, #32] \n\t" \ + "ldr r4, [%1, #36] \n\t" \ + "push {r0, r1, r2, r3, r4} \n\t" \ + "ldr r0, [%1, #4] \n\t" \ + "ldr r1, [%1, #8] \n\t" \ + "ldr r2, [%1, #12] \n\t" \ + "ldr r3, [%1, #16] \n\t" \ + "ldr r4, [%1] \n\t" /* target->r4 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_R4 \ + VALGRIND_RESTORE_STACK \ + "mov %0, r0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r10" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_arm_linux */ + +/* ------------------------ arm64-linux ------------------------ */ + +#if defined(PLAT_arm64_linux) || defined(PLAT_arm64_freebsd) + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS \ + "x0", "x1", "x2", "x3","x4", "x5", "x6", "x7", "x8", "x9", \ + "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", \ + "x18", "x19", "x20", "x30", \ + "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9", \ + "v10", "v11", "v12", "v13", "v14", "v15", "v16", "v17", \ + "v18", "v19", "v20", "v21", "v22", "v23", "v24", "v25", \ + "v26", "v27", "v28", "v29", "v30", "v31" + +/* x21 is callee-saved, so we can use it to save and restore SP around + the hidden call. */ +#define VALGRIND_ALIGN_STACK \ + "mov x21, sp\n\t" \ + "bic sp, x21, #15\n\t" +#define VALGRIND_RESTORE_STACK \ + "mov sp, x21\n\t" + +/* These CALL_FN_ macros assume that on arm64-linux, + sizeof(unsigned long) == 8. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[1]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[2]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[4]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[5]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[6]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x4, [%1, #40] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[7]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x4, [%1, #40] \n\t" \ + "ldr x5, [%1, #48] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[8]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x4, [%1, #40] \n\t" \ + "ldr x5, [%1, #48] \n\t" \ + "ldr x6, [%1, #56] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[9]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x4, [%1, #40] \n\t" \ + "ldr x5, [%1, #48] \n\t" \ + "ldr x6, [%1, #56] \n\t" \ + "ldr x7, [%1, #64] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[10]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "sub sp, sp, #0x20 \n\t" \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x4, [%1, #40] \n\t" \ + "ldr x5, [%1, #48] \n\t" \ + "ldr x6, [%1, #56] \n\t" \ + "ldr x7, [%1, #64] \n\t" \ + "ldr x8, [%1, #72] \n\t" \ + "str x8, [sp, #0] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[11]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "sub sp, sp, #0x20 \n\t" \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x4, [%1, #40] \n\t" \ + "ldr x5, [%1, #48] \n\t" \ + "ldr x6, [%1, #56] \n\t" \ + "ldr x7, [%1, #64] \n\t" \ + "ldr x8, [%1, #72] \n\t" \ + "str x8, [sp, #0] \n\t" \ + "ldr x8, [%1, #80] \n\t" \ + "str x8, [sp, #8] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[12]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "sub sp, sp, #0x30 \n\t" \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x4, [%1, #40] \n\t" \ + "ldr x5, [%1, #48] \n\t" \ + "ldr x6, [%1, #56] \n\t" \ + "ldr x7, [%1, #64] \n\t" \ + "ldr x8, [%1, #72] \n\t" \ + "str x8, [sp, #0] \n\t" \ + "ldr x8, [%1, #80] \n\t" \ + "str x8, [sp, #8] \n\t" \ + "ldr x8, [%1, #88] \n\t" \ + "str x8, [sp, #16] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10,arg11, \ + arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[13]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + _argvec[12] = (unsigned long)(arg12); \ + __asm__ volatile( \ + VALGRIND_ALIGN_STACK \ + "sub sp, sp, #0x30 \n\t" \ + "ldr x0, [%1, #8] \n\t" \ + "ldr x1, [%1, #16] \n\t" \ + "ldr x2, [%1, #24] \n\t" \ + "ldr x3, [%1, #32] \n\t" \ + "ldr x4, [%1, #40] \n\t" \ + "ldr x5, [%1, #48] \n\t" \ + "ldr x6, [%1, #56] \n\t" \ + "ldr x7, [%1, #64] \n\t" \ + "ldr x8, [%1, #72] \n\t" \ + "str x8, [sp, #0] \n\t" \ + "ldr x8, [%1, #80] \n\t" \ + "str x8, [sp, #8] \n\t" \ + "ldr x8, [%1, #88] \n\t" \ + "str x8, [sp, #16] \n\t" \ + "ldr x8, [%1, #96] \n\t" \ + "str x8, [sp, #24] \n\t" \ + "ldr x8, [%1] \n\t" /* target->x8 */ \ + VALGRIND_BRANCH_AND_LINK_TO_NOREDIR_X8 \ + VALGRIND_RESTORE_STACK \ + "mov %0, x0" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "x21" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_arm64_linux */ + +/* ------------------------- s390x-linux ------------------------- */ + +#if defined(PLAT_s390x_linux) + +/* Similar workaround as amd64 (see above), but we use r11 as frame + pointer and save the old r11 in r7. r11 might be used for + argvec, therefore we copy argvec in r1 since r1 is clobbered + after the call anyway. */ +#if defined(__GNUC__) && defined(__GCC_HAVE_DWARF2_CFI_ASM) +# define __FRAME_POINTER \ + ,"d"(__builtin_dwarf_cfa()) +# define VALGRIND_CFI_PROLOGUE \ + ".cfi_remember_state\n\t" \ + "lgr 1,%1\n\t" /* copy the argvec pointer in r1 */ \ + "lgr 7,11\n\t" \ + "lgr 11,%2\n\t" \ + ".cfi_def_cfa 11, 0\n\t" +# define VALGRIND_CFI_EPILOGUE \ + "lgr 11, 7\n\t" \ + ".cfi_restore_state\n\t" +#else +# define __FRAME_POINTER +# define VALGRIND_CFI_PROLOGUE \ + "lgr 1,%1\n\t" +# define VALGRIND_CFI_EPILOGUE +#endif + +/* Nb: On s390 the stack pointer is properly aligned *at all times* + according to the s390 GCC maintainer. (The ABI specification is not + precise in this regard.) Therefore, VALGRIND_ALIGN_STACK and + VALGRIND_RESTORE_STACK are not defined here. */ + +/* These regs are trashed by the hidden call. Note that we overwrite + r14 in s390_irgen_noredir (VEX/priv/guest_s390_irgen.c) to give the + function a proper return address. All others are ABI defined call + clobbers. */ +#if defined(__VX__) || defined(__S390_VX__) +#define __CALLER_SAVED_REGS "0", "1", "2", "3", "4", "5", "14", \ + "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", \ + "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15", \ + "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", \ + "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31" +#else +#define __CALLER_SAVED_REGS "0", "1", "2", "3", "4", "5", "14", \ + "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7" +#endif + +/* Nb: Although r11 is modified in the asm snippets below (inside + VALGRIND_CFI_PROLOGUE) it is not listed in the clobber section, for + two reasons: + (1) r11 is restored in VALGRIND_CFI_EPILOGUE, so effectively it is not + modified + (2) GCC will complain that r11 cannot appear inside a clobber section, + when compiled with -O -fno-omit-frame-pointer + */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[1]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-160\n\t" \ + "lg 1, 0(1)\n\t" /* target->r1 */ \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,160\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "d" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +/* The call abi has the arguments in r2-r6 and stack */ +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[2]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-160\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,160\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1, arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-160\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,160\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1, arg2, arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[4]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-160\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,160\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1, arg2, arg3, arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[5]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-160\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,160\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1, arg2, arg3, arg4, arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[6]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-160\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 6,40(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,160\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1, arg2, arg3, arg4, arg5, \ + arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[7]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-168\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 6,40(1)\n\t" \ + "mvc 160(8,15), 48(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,168\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1, arg2, arg3, arg4, arg5, \ + arg6, arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[8]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-176\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 6,40(1)\n\t" \ + "mvc 160(8,15), 48(1)\n\t" \ + "mvc 168(8,15), 56(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,176\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1, arg2, arg3, arg4, arg5, \ + arg6, arg7 ,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[9]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-184\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 6,40(1)\n\t" \ + "mvc 160(8,15), 48(1)\n\t" \ + "mvc 168(8,15), 56(1)\n\t" \ + "mvc 176(8,15), 64(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,184\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1, arg2, arg3, arg4, arg5, \ + arg6, arg7 ,arg8, arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[10]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + _argvec[9] = (unsigned long)arg9; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-192\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 6,40(1)\n\t" \ + "mvc 160(8,15), 48(1)\n\t" \ + "mvc 168(8,15), 56(1)\n\t" \ + "mvc 176(8,15), 64(1)\n\t" \ + "mvc 184(8,15), 72(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,192\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1, arg2, arg3, arg4, arg5, \ + arg6, arg7 ,arg8, arg9, arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[11]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + _argvec[9] = (unsigned long)arg9; \ + _argvec[10] = (unsigned long)arg10; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-200\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 6,40(1)\n\t" \ + "mvc 160(8,15), 48(1)\n\t" \ + "mvc 168(8,15), 56(1)\n\t" \ + "mvc 176(8,15), 64(1)\n\t" \ + "mvc 184(8,15), 72(1)\n\t" \ + "mvc 192(8,15), 80(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,200\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1, arg2, arg3, arg4, arg5, \ + arg6, arg7 ,arg8, arg9, arg10, arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[12]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + _argvec[9] = (unsigned long)arg9; \ + _argvec[10] = (unsigned long)arg10; \ + _argvec[11] = (unsigned long)arg11; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-208\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 6,40(1)\n\t" \ + "mvc 160(8,15), 48(1)\n\t" \ + "mvc 168(8,15), 56(1)\n\t" \ + "mvc 176(8,15), 64(1)\n\t" \ + "mvc 184(8,15), 72(1)\n\t" \ + "mvc 192(8,15), 80(1)\n\t" \ + "mvc 200(8,15), 88(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,208\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1, arg2, arg3, arg4, arg5, \ + arg6, arg7 ,arg8, arg9, arg10, arg11, arg12)\ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[13]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)arg1; \ + _argvec[2] = (unsigned long)arg2; \ + _argvec[3] = (unsigned long)arg3; \ + _argvec[4] = (unsigned long)arg4; \ + _argvec[5] = (unsigned long)arg5; \ + _argvec[6] = (unsigned long)arg6; \ + _argvec[7] = (unsigned long)arg7; \ + _argvec[8] = (unsigned long)arg8; \ + _argvec[9] = (unsigned long)arg9; \ + _argvec[10] = (unsigned long)arg10; \ + _argvec[11] = (unsigned long)arg11; \ + _argvec[12] = (unsigned long)arg12; \ + __asm__ volatile( \ + VALGRIND_CFI_PROLOGUE \ + "aghi 15,-216\n\t" \ + "lg 2, 8(1)\n\t" \ + "lg 3,16(1)\n\t" \ + "lg 4,24(1)\n\t" \ + "lg 5,32(1)\n\t" \ + "lg 6,40(1)\n\t" \ + "mvc 160(8,15), 48(1)\n\t" \ + "mvc 168(8,15), 56(1)\n\t" \ + "mvc 176(8,15), 64(1)\n\t" \ + "mvc 184(8,15), 72(1)\n\t" \ + "mvc 192(8,15), 80(1)\n\t" \ + "mvc 200(8,15), 88(1)\n\t" \ + "mvc 208(8,15), 96(1)\n\t" \ + "lg 1, 0(1)\n\t" \ + VALGRIND_CALL_NOREDIR_R1 \ + "aghi 15,216\n\t" \ + VALGRIND_CFI_EPILOGUE \ + "lgr %0, 2\n\t" \ + : /*out*/ "=d" (_res) \ + : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \ + : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS,"6","7" \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + + +#endif /* PLAT_s390x_linux */ + +/* ------------------------- mips32-linux ----------------------- */ + +#if defined(PLAT_mips32_linux) + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS "$2", "$3", "$4", "$5", "$6", \ +"$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ +"$25", "$31" + +/* These CALL_FN_ macros assume that on mips-linux, sizeof(unsigned + long) == 4. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[1]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "subu $29, $29, 16 \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 16\n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[2]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "subu $29, $29, 16 \n\t" \ + "lw $4, 4(%1) \n\t" /* arg1*/ \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 16 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "subu $29, $29, 16 \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 16 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[4]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "subu $29, $29, 16 \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 16 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[5]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "subu $29, $29, 16 \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 16 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[6]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "lw $4, 20(%1) \n\t" \ + "subu $29, $29, 24\n\t" \ + "sw $4, 16($29) \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 24 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[7]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "lw $4, 20(%1) \n\t" \ + "subu $29, $29, 32\n\t" \ + "sw $4, 16($29) \n\t" \ + "lw $4, 24(%1) \n\t" \ + "nop\n\t" \ + "sw $4, 20($29) \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 32 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[8]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "lw $4, 20(%1) \n\t" \ + "subu $29, $29, 32\n\t" \ + "sw $4, 16($29) \n\t" \ + "lw $4, 24(%1) \n\t" \ + "sw $4, 20($29) \n\t" \ + "lw $4, 28(%1) \n\t" \ + "sw $4, 24($29) \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 32 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[9]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "lw $4, 20(%1) \n\t" \ + "subu $29, $29, 40\n\t" \ + "sw $4, 16($29) \n\t" \ + "lw $4, 24(%1) \n\t" \ + "sw $4, 20($29) \n\t" \ + "lw $4, 28(%1) \n\t" \ + "sw $4, 24($29) \n\t" \ + "lw $4, 32(%1) \n\t" \ + "sw $4, 28($29) \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 40 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[10]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "lw $4, 20(%1) \n\t" \ + "subu $29, $29, 40\n\t" \ + "sw $4, 16($29) \n\t" \ + "lw $4, 24(%1) \n\t" \ + "sw $4, 20($29) \n\t" \ + "lw $4, 28(%1) \n\t" \ + "sw $4, 24($29) \n\t" \ + "lw $4, 32(%1) \n\t" \ + "sw $4, 28($29) \n\t" \ + "lw $4, 36(%1) \n\t" \ + "sw $4, 32($29) \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 40 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[11]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "lw $4, 20(%1) \n\t" \ + "subu $29, $29, 48\n\t" \ + "sw $4, 16($29) \n\t" \ + "lw $4, 24(%1) \n\t" \ + "sw $4, 20($29) \n\t" \ + "lw $4, 28(%1) \n\t" \ + "sw $4, 24($29) \n\t" \ + "lw $4, 32(%1) \n\t" \ + "sw $4, 28($29) \n\t" \ + "lw $4, 36(%1) \n\t" \ + "sw $4, 32($29) \n\t" \ + "lw $4, 40(%1) \n\t" \ + "sw $4, 36($29) \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 48 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[12]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "lw $4, 20(%1) \n\t" \ + "subu $29, $29, 48\n\t" \ + "sw $4, 16($29) \n\t" \ + "lw $4, 24(%1) \n\t" \ + "sw $4, 20($29) \n\t" \ + "lw $4, 28(%1) \n\t" \ + "sw $4, 24($29) \n\t" \ + "lw $4, 32(%1) \n\t" \ + "sw $4, 28($29) \n\t" \ + "lw $4, 36(%1) \n\t" \ + "sw $4, 32($29) \n\t" \ + "lw $4, 40(%1) \n\t" \ + "sw $4, 36($29) \n\t" \ + "lw $4, 44(%1) \n\t" \ + "sw $4, 40($29) \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 48 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[13]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + _argvec[12] = (unsigned long)(arg12); \ + __asm__ volatile( \ + "subu $29, $29, 8 \n\t" \ + "sw $28, 0($29) \n\t" \ + "sw $31, 4($29) \n\t" \ + "lw $4, 20(%1) \n\t" \ + "subu $29, $29, 56\n\t" \ + "sw $4, 16($29) \n\t" \ + "lw $4, 24(%1) \n\t" \ + "sw $4, 20($29) \n\t" \ + "lw $4, 28(%1) \n\t" \ + "sw $4, 24($29) \n\t" \ + "lw $4, 32(%1) \n\t" \ + "sw $4, 28($29) \n\t" \ + "lw $4, 36(%1) \n\t" \ + "sw $4, 32($29) \n\t" \ + "lw $4, 40(%1) \n\t" \ + "sw $4, 36($29) \n\t" \ + "lw $4, 44(%1) \n\t" \ + "sw $4, 40($29) \n\t" \ + "lw $4, 48(%1) \n\t" \ + "sw $4, 44($29) \n\t" \ + "lw $4, 4(%1) \n\t" \ + "lw $5, 8(%1) \n\t" \ + "lw $6, 12(%1) \n\t" \ + "lw $7, 16(%1) \n\t" \ + "lw $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "addu $29, $29, 56 \n\t" \ + "lw $28, 0($29) \n\t" \ + "lw $31, 4($29) \n\t" \ + "addu $29, $29, 8 \n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_mips32_linux */ + +/* ------------------------- nanomips-linux -------------------- */ + +#if defined(PLAT_nanomips_linux) + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS "$t4", "$t5", "$a0", "$a1", "$a2", \ +"$a3", "$a4", "$a5", "$a6", "$a7", "$t0", "$t1", "$t2", "$t3", \ +"$t8","$t9", "$at" + +/* These CALL_FN_ macros assume that on mips-linux, sizeof(unsigned + long) == 4. */ + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[1]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[2]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + "lw $a0, 4(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[3]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + "lw $a0, 4(%1)\n\t" \ + "lw $a1, 8(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[4]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + "lw $a0, 4(%1)\n\t" \ + "lw $a1, 8(%1)\n\t" \ + "lw $a2,12(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[5]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + "lw $a0, 4(%1)\n\t" \ + "lw $a1, 8(%1)\n\t" \ + "lw $a2,12(%1)\n\t" \ + "lw $a3,16(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[6]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + "lw $a0, 4(%1)\n\t" \ + "lw $a1, 8(%1)\n\t" \ + "lw $a2,12(%1)\n\t" \ + "lw $a3,16(%1)\n\t" \ + "lw $a4,20(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[7]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + "lw $a0, 4(%1)\n\t" \ + "lw $a1, 8(%1)\n\t" \ + "lw $a2,12(%1)\n\t" \ + "lw $a3,16(%1)\n\t" \ + "lw $a4,20(%1)\n\t" \ + "lw $a5,24(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[8]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + "lw $a0, 4(%1)\n\t" \ + "lw $a1, 8(%1)\n\t" \ + "lw $a2,12(%1)\n\t" \ + "lw $a3,16(%1)\n\t" \ + "lw $a4,20(%1)\n\t" \ + "lw $a5,24(%1)\n\t" \ + "lw $a6,28(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[9]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + __asm__ volatile( \ + "lw $t9, 0(%1)\n\t" \ + "lw $a0, 4(%1)\n\t" \ + "lw $a1, 8(%1)\n\t" \ + "lw $a2,12(%1)\n\t" \ + "lw $a3,16(%1)\n\t" \ + "lw $a4,20(%1)\n\t" \ + "lw $a5,24(%1)\n\t" \ + "lw $a6,28(%1)\n\t" \ + "lw $a7,32(%1)\n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[10]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + __asm__ volatile( \ + "addiu $sp, $sp, -16 \n\t" \ + "lw $t9,36(%1) \n\t" \ + "sw $t9, 0($sp) \n\t" \ + "lw $t9, 0(%1) \n\t" \ + "lw $a0, 4(%1) \n\t" \ + "lw $a1, 8(%1) \n\t" \ + "lw $a2,12(%1) \n\t" \ + "lw $a3,16(%1) \n\t" \ + "lw $a4,20(%1) \n\t" \ + "lw $a5,24(%1) \n\t" \ + "lw $a6,28(%1) \n\t" \ + "lw $a7,32(%1) \n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0 \n\t" \ + "addiu $sp, $sp, 16 \n\t" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[11]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + __asm__ volatile( \ + "addiu $sp, $sp, -16 \n\t" \ + "lw $t9,36(%1) \n\t" \ + "sw $t9, 0($sp) \n\t" \ + "lw $t9,40(%1) \n\t" \ + "sw $t9, 4($sp) \n\t" \ + "lw $t9, 0(%1) \n\t" \ + "lw $a0, 4(%1) \n\t" \ + "lw $a1, 8(%1) \n\t" \ + "lw $a2,12(%1) \n\t" \ + "lw $a3,16(%1) \n\t" \ + "lw $a4,20(%1) \n\t" \ + "lw $a5,24(%1) \n\t" \ + "lw $a6,28(%1) \n\t" \ + "lw $a7,32(%1) \n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0 \n\t" \ + "addiu $sp, $sp, 16 \n\t" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[12]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + __asm__ volatile( \ + "addiu $sp, $sp, -16 \n\t" \ + "lw $t9,36(%1) \n\t" \ + "sw $t9, 0($sp) \n\t" \ + "lw $t9,40(%1) \n\t" \ + "sw $t9, 4($sp) \n\t" \ + "lw $t9,44(%1) \n\t" \ + "sw $t9, 8($sp) \n\t" \ + "lw $t9, 0(%1) \n\t" \ + "lw $a0, 4(%1) \n\t" \ + "lw $a1, 8(%1) \n\t" \ + "lw $a2,12(%1) \n\t" \ + "lw $a3,16(%1) \n\t" \ + "lw $a4,20(%1) \n\t" \ + "lw $a5,24(%1) \n\t" \ + "lw $a6,28(%1) \n\t" \ + "lw $a7,32(%1) \n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0 \n\t" \ + "addiu $sp, $sp, 16 \n\t" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long _argvec[13]; \ + volatile unsigned long _res; \ + _argvec[0] = (unsigned long)_orig.nraddr; \ + _argvec[1] = (unsigned long)(arg1); \ + _argvec[2] = (unsigned long)(arg2); \ + _argvec[3] = (unsigned long)(arg3); \ + _argvec[4] = (unsigned long)(arg4); \ + _argvec[5] = (unsigned long)(arg5); \ + _argvec[6] = (unsigned long)(arg6); \ + _argvec[7] = (unsigned long)(arg7); \ + _argvec[8] = (unsigned long)(arg8); \ + _argvec[9] = (unsigned long)(arg9); \ + _argvec[10] = (unsigned long)(arg10); \ + _argvec[11] = (unsigned long)(arg11); \ + _argvec[12] = (unsigned long)(arg12); \ + __asm__ volatile( \ + "addiu $sp, $sp, -16 \n\t" \ + "lw $t9,36(%1) \n\t" \ + "sw $t9, 0($sp) \n\t" \ + "lw $t9,40(%1) \n\t" \ + "sw $t9, 4($sp) \n\t" \ + "lw $t9,44(%1) \n\t" \ + "sw $t9, 8($sp) \n\t" \ + "lw $t9,48(%1) \n\t" \ + "sw $t9,12($sp) \n\t" \ + "lw $t9, 0(%1) \n\t" \ + "lw $a0, 4(%1) \n\t" \ + "lw $a1, 8(%1) \n\t" \ + "lw $a2,12(%1) \n\t" \ + "lw $a3,16(%1) \n\t" \ + "lw $a4,20(%1) \n\t" \ + "lw $a5,24(%1) \n\t" \ + "lw $a6,28(%1) \n\t" \ + "lw $a7,32(%1) \n\t" \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $a0 \n\t" \ + "addiu $sp, $sp, 16 \n\t" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) _res; \ + } while (0) + +#endif /* PLAT_nanomips_linux */ + +/* ------------------------- mips64-linux ------------------------- */ + +#if defined(PLAT_mips64_linux) + +/* These regs are trashed by the hidden call. */ +#define __CALLER_SAVED_REGS "$2", "$3", "$4", "$5", "$6", \ +"$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ +"$25", "$31" + +/* These CALL_FN_ macros assume that on mips64-linux, + sizeof(long long) == 8. */ + +#define MIPS64_LONG2REG_CAST(x) ((long long)(long)x) + +#define CALL_FN_W_v(lval, orig) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[1]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + __asm__ volatile( \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "0" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_W(lval, orig, arg1) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[2]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + __asm__ volatile( \ + "ld $4, 8(%1)\n\t" /* arg1*/ \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_WW(lval, orig, arg1,arg2) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[3]; \ + volatile unsigned long long _res; \ + _argvec[0] = _orig.nraddr; \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + __asm__ volatile( \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + + +#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[4]; \ + volatile unsigned long long _res; \ + _argvec[0] = _orig.nraddr; \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + __asm__ volatile( \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[5]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + __asm__ volatile( \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[6]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + _argvec[5] = MIPS64_LONG2REG_CAST(arg5); \ + __asm__ volatile( \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $8, 40(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[7]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + _argvec[5] = MIPS64_LONG2REG_CAST(arg5); \ + _argvec[6] = MIPS64_LONG2REG_CAST(arg6); \ + __asm__ volatile( \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $8, 40(%1)\n\t" \ + "ld $9, 48(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[8]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + _argvec[5] = MIPS64_LONG2REG_CAST(arg5); \ + _argvec[6] = MIPS64_LONG2REG_CAST(arg6); \ + _argvec[7] = MIPS64_LONG2REG_CAST(arg7); \ + __asm__ volatile( \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $8, 40(%1)\n\t" \ + "ld $9, 48(%1)\n\t" \ + "ld $10, 56(%1)\n\t" \ + "ld $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[9]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + _argvec[5] = MIPS64_LONG2REG_CAST(arg5); \ + _argvec[6] = MIPS64_LONG2REG_CAST(arg6); \ + _argvec[7] = MIPS64_LONG2REG_CAST(arg7); \ + _argvec[8] = MIPS64_LONG2REG_CAST(arg8); \ + __asm__ volatile( \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $8, 40(%1)\n\t" \ + "ld $9, 48(%1)\n\t" \ + "ld $10, 56(%1)\n\t" \ + "ld $11, 64(%1)\n\t" \ + "ld $25, 0(%1) \n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[10]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + _argvec[5] = MIPS64_LONG2REG_CAST(arg5); \ + _argvec[6] = MIPS64_LONG2REG_CAST(arg6); \ + _argvec[7] = MIPS64_LONG2REG_CAST(arg7); \ + _argvec[8] = MIPS64_LONG2REG_CAST(arg8); \ + _argvec[9] = MIPS64_LONG2REG_CAST(arg9); \ + __asm__ volatile( \ + "dsubu $29, $29, 8\n\t" \ + "ld $4, 72(%1)\n\t" \ + "sd $4, 0($29)\n\t" \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $8, 40(%1)\n\t" \ + "ld $9, 48(%1)\n\t" \ + "ld $10, 56(%1)\n\t" \ + "ld $11, 64(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "daddu $29, $29, 8\n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \ + arg7,arg8,arg9,arg10) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[11]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + _argvec[5] = MIPS64_LONG2REG_CAST(arg5); \ + _argvec[6] = MIPS64_LONG2REG_CAST(arg6); \ + _argvec[7] = MIPS64_LONG2REG_CAST(arg7); \ + _argvec[8] = MIPS64_LONG2REG_CAST(arg8); \ + _argvec[9] = MIPS64_LONG2REG_CAST(arg9); \ + _argvec[10] = MIPS64_LONG2REG_CAST(arg10); \ + __asm__ volatile( \ + "dsubu $29, $29, 16\n\t" \ + "ld $4, 72(%1)\n\t" \ + "sd $4, 0($29)\n\t" \ + "ld $4, 80(%1)\n\t" \ + "sd $4, 8($29)\n\t" \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $8, 40(%1)\n\t" \ + "ld $9, 48(%1)\n\t" \ + "ld $10, 56(%1)\n\t" \ + "ld $11, 64(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "daddu $29, $29, 16\n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_11W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[12]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + _argvec[5] = MIPS64_LONG2REG_CAST(arg5); \ + _argvec[6] = MIPS64_LONG2REG_CAST(arg6); \ + _argvec[7] = MIPS64_LONG2REG_CAST(arg7); \ + _argvec[8] = MIPS64_LONG2REG_CAST(arg8); \ + _argvec[9] = MIPS64_LONG2REG_CAST(arg9); \ + _argvec[10] = MIPS64_LONG2REG_CAST(arg10); \ + _argvec[11] = MIPS64_LONG2REG_CAST(arg11); \ + __asm__ volatile( \ + "dsubu $29, $29, 24\n\t" \ + "ld $4, 72(%1)\n\t" \ + "sd $4, 0($29)\n\t" \ + "ld $4, 80(%1)\n\t" \ + "sd $4, 8($29)\n\t" \ + "ld $4, 88(%1)\n\t" \ + "sd $4, 16($29)\n\t" \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $8, 40(%1)\n\t" \ + "ld $9, 48(%1)\n\t" \ + "ld $10, 56(%1)\n\t" \ + "ld $11, 64(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "daddu $29, $29, 24\n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5, \ + arg6,arg7,arg8,arg9,arg10, \ + arg11,arg12) \ + do { \ + volatile OrigFn _orig = (orig); \ + volatile unsigned long long _argvec[13]; \ + volatile unsigned long long _res; \ + _argvec[0] = MIPS64_LONG2REG_CAST(_orig.nraddr); \ + _argvec[1] = MIPS64_LONG2REG_CAST(arg1); \ + _argvec[2] = MIPS64_LONG2REG_CAST(arg2); \ + _argvec[3] = MIPS64_LONG2REG_CAST(arg3); \ + _argvec[4] = MIPS64_LONG2REG_CAST(arg4); \ + _argvec[5] = MIPS64_LONG2REG_CAST(arg5); \ + _argvec[6] = MIPS64_LONG2REG_CAST(arg6); \ + _argvec[7] = MIPS64_LONG2REG_CAST(arg7); \ + _argvec[8] = MIPS64_LONG2REG_CAST(arg8); \ + _argvec[9] = MIPS64_LONG2REG_CAST(arg9); \ + _argvec[10] = MIPS64_LONG2REG_CAST(arg10); \ + _argvec[11] = MIPS64_LONG2REG_CAST(arg11); \ + _argvec[12] = MIPS64_LONG2REG_CAST(arg12); \ + __asm__ volatile( \ + "dsubu $29, $29, 32\n\t" \ + "ld $4, 72(%1)\n\t" \ + "sd $4, 0($29)\n\t" \ + "ld $4, 80(%1)\n\t" \ + "sd $4, 8($29)\n\t" \ + "ld $4, 88(%1)\n\t" \ + "sd $4, 16($29)\n\t" \ + "ld $4, 96(%1)\n\t" \ + "sd $4, 24($29)\n\t" \ + "ld $4, 8(%1)\n\t" \ + "ld $5, 16(%1)\n\t" \ + "ld $6, 24(%1)\n\t" \ + "ld $7, 32(%1)\n\t" \ + "ld $8, 40(%1)\n\t" \ + "ld $9, 48(%1)\n\t" \ + "ld $10, 56(%1)\n\t" \ + "ld $11, 64(%1)\n\t" \ + "ld $25, 0(%1)\n\t" /* target->t9 */ \ + VALGRIND_CALL_NOREDIR_T9 \ + "daddu $29, $29, 32\n\t" \ + "move %0, $2\n" \ + : /*out*/ "=r" (_res) \ + : /*in*/ "r" (&_argvec[0]) \ + : /*trash*/ "memory", __CALLER_SAVED_REGS \ + ); \ + lval = (__typeof__(lval)) (long)_res; \ + } while (0) + +#endif /* PLAT_mips64_linux */ + +/* ------------------------------------------------------------------ */ +/* ARCHITECTURE INDEPENDENT MACROS for CLIENT REQUESTS. */ +/* */ +/* ------------------------------------------------------------------ */ + +/* Some request codes. There are many more of these, but most are not + exposed to end-user view. These are the public ones, all of the + form 0x1000 + small_number. + + Core ones are in the range 0x00000000--0x0000ffff. The non-public + ones start at 0x2000. +*/ + +/* These macros are used by tools -- they must be public, but don't + embed them into other programs. */ +#define VG_USERREQ_TOOL_BASE(a,b) \ + ((unsigned int)(((a)&0xff) << 24 | ((b)&0xff) << 16)) +#define VG_IS_TOOL_USERREQ(a, b, v) \ + (VG_USERREQ_TOOL_BASE(a,b) == ((v) & 0xffff0000)) + +/* !! ABIWARNING !! ABIWARNING !! ABIWARNING !! ABIWARNING !! + This enum comprises an ABI exported by Valgrind to programs + which use client requests. DO NOT CHANGE THE NUMERIC VALUES OF THESE + ENTRIES, NOR DELETE ANY -- add new ones at the end of the most + relevant group. */ +typedef + enum { VG_USERREQ__RUNNING_ON_VALGRIND = 0x1001, + VG_USERREQ__DISCARD_TRANSLATIONS = 0x1002, + + /* These allow any function to be called from the simulated + CPU but run on the real CPU. Nb: the first arg passed to + the function is always the ThreadId of the running + thread! So CLIENT_CALL0 actually requires a 1 arg + function, etc. */ + VG_USERREQ__CLIENT_CALL0 = 0x1101, + VG_USERREQ__CLIENT_CALL1 = 0x1102, + VG_USERREQ__CLIENT_CALL2 = 0x1103, + VG_USERREQ__CLIENT_CALL3 = 0x1104, + + /* Can be useful in regression testing suites -- eg. can + send Valgrind's output to /dev/null and still count + errors. */ + VG_USERREQ__COUNT_ERRORS = 0x1201, + + /* Allows the client program and/or gdbserver to execute a monitor + command. */ + VG_USERREQ__GDB_MONITOR_COMMAND = 0x1202, + + /* Allows the client program to change a dynamic command line + option. */ + VG_USERREQ__CLO_CHANGE = 0x1203, + + /* These are useful and can be interpreted by any tool that + tracks malloc() et al, by using vg_replace_malloc.c. */ + VG_USERREQ__MALLOCLIKE_BLOCK = 0x1301, + VG_USERREQ__RESIZEINPLACE_BLOCK = 0x130b, + VG_USERREQ__FREELIKE_BLOCK = 0x1302, + /* Memory pool support. */ + VG_USERREQ__CREATE_MEMPOOL = 0x1303, + VG_USERREQ__DESTROY_MEMPOOL = 0x1304, + VG_USERREQ__MEMPOOL_ALLOC = 0x1305, + VG_USERREQ__MEMPOOL_FREE = 0x1306, + VG_USERREQ__MEMPOOL_TRIM = 0x1307, + VG_USERREQ__MOVE_MEMPOOL = 0x1308, + VG_USERREQ__MEMPOOL_CHANGE = 0x1309, + VG_USERREQ__MEMPOOL_EXISTS = 0x130a, + + /* Allow printfs to valgrind log. */ + /* The first two pass the va_list argument by value, which + assumes it is the same size as or smaller than a UWord, + which generally isn't the case. Hence are deprecated. + The second two pass the vargs by reference and so are + immune to this problem. */ + /* both :: char* fmt, va_list vargs (DEPRECATED) */ + VG_USERREQ__PRINTF = 0x1401, + VG_USERREQ__PRINTF_BACKTRACE = 0x1402, + /* both :: char* fmt, va_list* vargs */ + VG_USERREQ__PRINTF_VALIST_BY_REF = 0x1403, + VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF = 0x1404, + + /* Stack support. */ + VG_USERREQ__STACK_REGISTER = 0x1501, + VG_USERREQ__STACK_DEREGISTER = 0x1502, + VG_USERREQ__STACK_CHANGE = 0x1503, + + /* Wine support */ + VG_USERREQ__LOAD_PDB_DEBUGINFO = 0x1601, + + /* Querying of debug info. */ + VG_USERREQ__MAP_IP_TO_SRCLOC = 0x1701, + + /* Disable/enable error reporting level. Takes a single + Word arg which is the delta to this thread's error + disablement indicator. Hence 1 disables or further + disables errors, and -1 moves back towards enablement. + Other values are not allowed. */ + VG_USERREQ__CHANGE_ERR_DISABLEMENT = 0x1801, + + /* Some requests used for Valgrind internal, such as + self-test or self-hosting. */ + /* Initialise IR injection */ + VG_USERREQ__VEX_INIT_FOR_IRI = 0x1901, + /* Used by Inner Valgrind to inform Outer Valgrind where to + find the list of inner guest threads */ + VG_USERREQ__INNER_THREADS = 0x1902 + } Vg_ClientRequest; + +#if !defined(__GNUC__) +# define __extension__ /* */ +#endif + + +/* Returns the number of Valgrinds this code is running under. That + is, 0 if running natively, 1 if running under Valgrind, 2 if + running under Valgrind which is running under another Valgrind, + etc. */ +#define RUNNING_ON_VALGRIND \ + (unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* if not */, \ + VG_USERREQ__RUNNING_ON_VALGRIND, \ + 0, 0, 0, 0, 0) \ + + +/* Discard translation of code in the range [_qzz_addr .. _qzz_addr + + _qzz_len - 1]. Useful if you are debugging a JITter or some such, + since it provides a way to make sure valgrind will retranslate the + invalidated area. Returns no value. */ +#define VALGRIND_DISCARD_TRANSLATIONS(_qzz_addr,_qzz_len) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__DISCARD_TRANSLATIONS, \ + _qzz_addr, _qzz_len, 0, 0, 0) + +#define VALGRIND_INNER_THREADS(_qzz_addr) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__INNER_THREADS, \ + _qzz_addr, 0, 0, 0, 0) + + +/* These requests are for getting Valgrind itself to print something. + Possibly with a backtrace. This is a really ugly hack. The return value + is the number of characters printed, excluding the "**** " part at the + start and the backtrace (if present). */ + +#if defined(__GNUC__) || defined(__INTEL_COMPILER) && !defined(_MSC_VER) +/* Modern GCC will optimize the static routine out if unused, + and unused attribute will shut down warnings about it. */ +static int VALGRIND_PRINTF(const char *format, ...) + __attribute__((format(__printf__, 1, 2), __unused__)); +#endif +static int +#if defined(_MSC_VER) +__inline +#endif +VALGRIND_PRINTF(const char *format, ...) +{ +#if defined(NVALGRIND) + (void)format; + return 0; +#else /* NVALGRIND */ +#if defined(_MSC_VER) || defined(__MINGW64__) + uintptr_t _qzz_res; +#else + unsigned long _qzz_res; +#endif + va_list vargs; + va_start(vargs, format); +#if defined(_MSC_VER) || defined(__MINGW64__) + _qzz_res = VALGRIND_DO_CLIENT_REQUEST_EXPR(0, + VG_USERREQ__PRINTF_VALIST_BY_REF, + (uintptr_t)format, + (uintptr_t)&vargs, + 0, 0, 0); +#else + _qzz_res = VALGRIND_DO_CLIENT_REQUEST_EXPR(0, + VG_USERREQ__PRINTF_VALIST_BY_REF, + (unsigned long)format, + (unsigned long)&vargs, + 0, 0, 0); +#endif + va_end(vargs); + return (int)_qzz_res; +#endif /* NVALGRIND */ +} + +#if defined(__GNUC__) || defined(__INTEL_COMPILER) && !defined(_MSC_VER) +static int VALGRIND_PRINTF_BACKTRACE(const char *format, ...) + __attribute__((format(__printf__, 1, 2), __unused__)); +#endif +static int +#if defined(_MSC_VER) +__inline +#endif +VALGRIND_PRINTF_BACKTRACE(const char *format, ...) +{ +#if defined(NVALGRIND) + (void)format; + return 0; +#else /* NVALGRIND */ +#if defined(_MSC_VER) || defined(__MINGW64__) + uintptr_t _qzz_res; +#else + unsigned long _qzz_res; +#endif + va_list vargs; + va_start(vargs, format); +#if defined(_MSC_VER) || defined(__MINGW64__) + _qzz_res = VALGRIND_DO_CLIENT_REQUEST_EXPR(0, + VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF, + (uintptr_t)format, + (uintptr_t)&vargs, + 0, 0, 0); +#else + _qzz_res = VALGRIND_DO_CLIENT_REQUEST_EXPR(0, + VG_USERREQ__PRINTF_BACKTRACE_VALIST_BY_REF, + (unsigned long)format, + (unsigned long)&vargs, + 0, 0, 0); +#endif + va_end(vargs); + return (int)_qzz_res; +#endif /* NVALGRIND */ +} + + +/* These requests allow control to move from the simulated CPU to the + real CPU, calling an arbitrary function. + + Note that the current ThreadId is inserted as the first argument. + So this call: + + VALGRIND_NON_SIMD_CALL2(f, arg1, arg2) + + requires f to have this signature: + + Word f(Word tid, Word arg1, Word arg2) + + where "Word" is a word-sized type. + + Note that these client requests are not entirely reliable. For example, + if you call a function with them that subsequently calls printf(), + there's a high chance Valgrind will crash. Generally, your prospects of + these working are made higher if the called function does not refer to + any global variables, and does not refer to any libc or other functions + (printf et al). Any kind of entanglement with libc or dynamic linking is + likely to have a bad outcome, for tricky reasons which we've grappled + with a lot in the past. +*/ +#define VALGRIND_NON_SIMD_CALL0(_qyy_fn) \ + VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \ + VG_USERREQ__CLIENT_CALL0, \ + _qyy_fn, \ + 0, 0, 0, 0) + +#define VALGRIND_NON_SIMD_CALL1(_qyy_fn, _qyy_arg1) \ + VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \ + VG_USERREQ__CLIENT_CALL1, \ + _qyy_fn, \ + _qyy_arg1, 0, 0, 0) + +#define VALGRIND_NON_SIMD_CALL2(_qyy_fn, _qyy_arg1, _qyy_arg2) \ + VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \ + VG_USERREQ__CLIENT_CALL2, \ + _qyy_fn, \ + _qyy_arg1, _qyy_arg2, 0, 0) + +#define VALGRIND_NON_SIMD_CALL3(_qyy_fn, _qyy_arg1, _qyy_arg2, _qyy_arg3) \ + VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \ + VG_USERREQ__CLIENT_CALL3, \ + _qyy_fn, \ + _qyy_arg1, _qyy_arg2, \ + _qyy_arg3, 0) + + +/* Counts the number of errors that have been recorded by a tool. Nb: + the tool must record the errors with VG_(maybe_record_error)() or + VG_(unique_error)() for them to be counted. */ +#define VALGRIND_COUNT_ERRORS \ + (unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR( \ + 0 /* default return */, \ + VG_USERREQ__COUNT_ERRORS, \ + 0, 0, 0, 0, 0) + +/* Several Valgrind tools (Memcheck, Massif, Helgrind, DRD) rely on knowing + when heap blocks are allocated in order to give accurate results. This + happens automatically for the standard allocator functions such as + malloc(), calloc(), realloc(), memalign(), new, new[], free(), delete, + delete[], etc. + + But if your program uses a custom allocator, this doesn't automatically + happen, and Valgrind will not do as well. For example, if you allocate + superblocks with mmap() and then allocates chunks of the superblocks, all + Valgrind's observations will be at the mmap() level and it won't know that + the chunks should be considered separate entities. In Memcheck's case, + that means you probably won't get heap block overrun detection (because + there won't be redzones marked as unaddressable) and you definitely won't + get any leak detection. + + The following client requests allow a custom allocator to be annotated so + that it can be handled accurately by Valgrind. + + VALGRIND_MALLOCLIKE_BLOCK marks a region of memory as having been allocated + by a malloc()-like function. For Memcheck (an illustrative case), this + does two things: + + - It records that the block has been allocated. This means any addresses + within the block mentioned in error messages will be + identified as belonging to the block. It also means that if the block + isn't freed it will be detected by the leak checker. + + - It marks the block as being addressable and undefined (if 'is_zeroed' is + not set), or addressable and defined (if 'is_zeroed' is set). This + controls how accesses to the block by the program are handled. + + 'addr' is the start of the usable block (ie. after any + redzone), 'sizeB' is its size. 'rzB' is the redzone size if the allocator + can apply redzones -- these are blocks of padding at the start and end of + each block. Adding redzones is recommended as it makes it much more likely + Valgrind will spot block overruns. `is_zeroed' indicates if the memory is + zeroed (or filled with another predictable value), as is the case for + calloc(). + + VALGRIND_MALLOCLIKE_BLOCK should be put immediately after the point where a + heap block -- that will be used by the client program -- is allocated. + It's best to put it at the outermost level of the allocator if possible; + for example, if you have a function my_alloc() which calls + internal_alloc(), and the client request is put inside internal_alloc(), + stack traces relating to the heap block will contain entries for both + my_alloc() and internal_alloc(), which is probably not what you want. + + For Memcheck users: if you use VALGRIND_MALLOCLIKE_BLOCK to carve out + custom blocks from within a heap block, B, that has been allocated with + malloc/calloc/new/etc, then block B will be *ignored* during leak-checking + -- the custom blocks will take precedence. + + VALGRIND_FREELIKE_BLOCK is the partner to VALGRIND_MALLOCLIKE_BLOCK. For + Memcheck, it does two things: + + - It records that the block has been deallocated. This assumes that the + block was annotated as having been allocated via + VALGRIND_MALLOCLIKE_BLOCK. Otherwise, an error will be issued. + + - It marks the block as being unaddressable. + + VALGRIND_FREELIKE_BLOCK should be put immediately after the point where a + heap block is deallocated. + + VALGRIND_RESIZEINPLACE_BLOCK informs a tool about reallocation. For + Memcheck, it does four things: + + - It records that the size of a block has been changed. This assumes that + the block was annotated as having been allocated via + VALGRIND_MALLOCLIKE_BLOCK. Otherwise, an error will be issued. + + - If the block shrunk, it marks the freed memory as being unaddressable. + + - If the block grew, it marks the new area as undefined and defines a red + zone past the end of the new block. + + - The V-bits of the overlap between the old and the new block are preserved. + + VALGRIND_RESIZEINPLACE_BLOCK should be put after allocation of the new block + and before deallocation of the old block. + + In many cases, these three client requests will not be enough to get your + allocator working well with Memcheck. More specifically, if your allocator + writes to freed blocks in any way then a VALGRIND_MAKE_MEM_UNDEFINED call + will be necessary to mark the memory as addressable just before the zeroing + occurs, otherwise you'll get a lot of invalid write errors. For example, + you'll need to do this if your allocator recycles freed blocks, but it + zeroes them before handing them back out (via VALGRIND_MALLOCLIKE_BLOCK). + Alternatively, if your allocator reuses freed blocks for allocator-internal + data structures, VALGRIND_MAKE_MEM_UNDEFINED calls will also be necessary. + + Really, what's happening is a blurring of the lines between the client + program and the allocator... after VALGRIND_FREELIKE_BLOCK is called, the + memory should be considered unaddressable to the client program, but the + allocator knows more than the rest of the client program and so may be able + to safely access it. Extra client requests are necessary for Valgrind to + understand the distinction between the allocator and the rest of the + program. + + Ignored if addr == 0. +*/ +#define VALGRIND_MALLOCLIKE_BLOCK(addr, sizeB, rzB, is_zeroed) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK, \ + addr, sizeB, rzB, is_zeroed, 0) + +/* See the comment for VALGRIND_MALLOCLIKE_BLOCK for details. + Ignored if addr == 0. +*/ +#define VALGRIND_RESIZEINPLACE_BLOCK(addr, oldSizeB, newSizeB, rzB) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__RESIZEINPLACE_BLOCK, \ + addr, oldSizeB, newSizeB, rzB, 0) + +/* See the comment for VALGRIND_MALLOCLIKE_BLOCK for details. + Ignored if addr == 0. +*/ +#define VALGRIND_FREELIKE_BLOCK(addr, rzB) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__FREELIKE_BLOCK, \ + addr, rzB, 0, 0, 0) + +/* Create a memory pool. */ +#define VALGRIND_CREATE_MEMPOOL(pool, rzB, is_zeroed) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__CREATE_MEMPOOL, \ + pool, rzB, is_zeroed, 0, 0) + +/* Create a memory pool with some flags specifying extended behaviour. + When flags is zero, the behaviour is identical to VALGRIND_CREATE_MEMPOOL. + + The flag VALGRIND_MEMPOOL_METAPOOL specifies that the pieces of memory + associated with the pool using VALGRIND_MEMPOOL_ALLOC will be used + by the application as superblocks to dole out MALLOC_LIKE blocks using + VALGRIND_MALLOCLIKE_BLOCK. In other words, a meta pool is a "2 levels" + pool : first level is the blocks described by VALGRIND_MEMPOOL_ALLOC. + The second level blocks are described using VALGRIND_MALLOCLIKE_BLOCK. + Note that the association between the pool and the second level blocks + is implicit : second level blocks will be located inside first level + blocks. It is necessary to use the VALGRIND_MEMPOOL_METAPOOL flag + for such 2 levels pools, as otherwise valgrind will detect overlapping + memory blocks, and will abort execution (e.g. during leak search). + + Such a meta pool can also be marked as an 'auto free' pool using the flag + VALGRIND_MEMPOOL_AUTO_FREE, which must be OR-ed together with the + VALGRIND_MEMPOOL_METAPOOL. For an 'auto free' pool, VALGRIND_MEMPOOL_FREE + will automatically free the second level blocks that are contained + inside the first level block freed with VALGRIND_MEMPOOL_FREE. + In other words, calling VALGRIND_MEMPOOL_FREE will cause implicit calls + to VALGRIND_FREELIKE_BLOCK for all the second level blocks included + in the first level block. + Note: it is an error to use the VALGRIND_MEMPOOL_AUTO_FREE flag + without the VALGRIND_MEMPOOL_METAPOOL flag. +*/ +#define VALGRIND_MEMPOOL_AUTO_FREE 1 +#define VALGRIND_MEMPOOL_METAPOOL 2 +#define VALGRIND_CREATE_MEMPOOL_EXT(pool, rzB, is_zeroed, flags) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__CREATE_MEMPOOL, \ + pool, rzB, is_zeroed, flags, 0) + +/* Destroy a memory pool. */ +#define VALGRIND_DESTROY_MEMPOOL(pool) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__DESTROY_MEMPOOL, \ + pool, 0, 0, 0, 0) + +/* Associate a piece of memory with a memory pool. */ +#define VALGRIND_MEMPOOL_ALLOC(pool, addr, size) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MEMPOOL_ALLOC, \ + pool, addr, size, 0, 0) + +/* Disassociate a piece of memory from a memory pool. */ +#define VALGRIND_MEMPOOL_FREE(pool, addr) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MEMPOOL_FREE, \ + pool, addr, 0, 0, 0) + +/* Disassociate any pieces outside a particular range. */ +#define VALGRIND_MEMPOOL_TRIM(pool, addr, size) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MEMPOOL_TRIM, \ + pool, addr, size, 0, 0) + +/* Resize and/or move a piece associated with a memory pool. */ +#define VALGRIND_MOVE_MEMPOOL(poolA, poolB) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MOVE_MEMPOOL, \ + poolA, poolB, 0, 0, 0) + +/* Resize and/or move a piece associated with a memory pool. */ +#define VALGRIND_MEMPOOL_CHANGE(pool, addrA, addrB, size) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MEMPOOL_CHANGE, \ + pool, addrA, addrB, size, 0) + +/* Return 1 if a mempool exists, else 0. */ +#define VALGRIND_MEMPOOL_EXISTS(pool) \ + (unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \ + VG_USERREQ__MEMPOOL_EXISTS, \ + pool, 0, 0, 0, 0) + +/* Mark a piece of memory as being a stack. Returns a stack id. + start is the lowest addressable stack byte, end is the highest + addressable stack byte. */ +#define VALGRIND_STACK_REGISTER(start, end) \ + (unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \ + VG_USERREQ__STACK_REGISTER, \ + start, end, 0, 0, 0) + +/* Unmark the piece of memory associated with a stack id as being a + stack. */ +#define VALGRIND_STACK_DEREGISTER(id) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__STACK_DEREGISTER, \ + id, 0, 0, 0, 0) + +/* Change the start and end address of the stack id. + start is the new lowest addressable stack byte, end is the new highest + addressable stack byte. */ +#define VALGRIND_STACK_CHANGE(id, start, end) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__STACK_CHANGE, \ + id, start, end, 0, 0) + +/* Load PDB debug info for Wine PE image_map. */ +#define VALGRIND_LOAD_PDB_DEBUGINFO(fd, ptr, total_size, delta) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__LOAD_PDB_DEBUGINFO, \ + fd, ptr, total_size, delta, 0) + +/* Map a code address to a source file name and line number. buf64 + must point to a 64-byte buffer in the caller's address space. The + result will be dumped in there and is guaranteed to be zero + terminated. If no info is found, the first byte is set to zero. */ +#define VALGRIND_MAP_IP_TO_SRCLOC(addr, buf64) \ + (unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \ + VG_USERREQ__MAP_IP_TO_SRCLOC, \ + addr, buf64, 0, 0, 0) + +/* Disable error reporting for this thread. Behaves in a stack like + way, so you can safely call this multiple times provided that + VALGRIND_ENABLE_ERROR_REPORTING is called the same number of times + to re-enable reporting. The first call of this macro disables + reporting. Subsequent calls have no effect except to increase the + number of VALGRIND_ENABLE_ERROR_REPORTING calls needed to re-enable + reporting. Child threads do not inherit this setting from their + parents -- they are always created with reporting enabled. */ +#define VALGRIND_DISABLE_ERROR_REPORTING \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__CHANGE_ERR_DISABLEMENT, \ + 1, 0, 0, 0, 0) + +/* Re-enable error reporting, as per comments on + VALGRIND_DISABLE_ERROR_REPORTING. */ +#define VALGRIND_ENABLE_ERROR_REPORTING \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__CHANGE_ERR_DISABLEMENT, \ + -1, 0, 0, 0, 0) + +/* Execute a monitor command from the client program. + If a connection is opened with GDB, the output will be sent + according to the output mode set for vgdb. + If no connection is opened, output will go to the log output. + Returns 1 if command not recognised, 0 otherwise. */ +#define VALGRIND_MONITOR_COMMAND(command) \ + VALGRIND_DO_CLIENT_REQUEST_EXPR(0, VG_USERREQ__GDB_MONITOR_COMMAND, \ + command, 0, 0, 0, 0) + + +/* Change the value of a dynamic command line option. + Note that unknown or not dynamically changeable options + will cause a warning message to be output. */ +#define VALGRIND_CLO_CHANGE(option) \ + VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__CLO_CHANGE, \ + option, 0, 0, 0, 0) + + +#undef PLAT_x86_darwin +#undef PLAT_amd64_darwin +#undef PLAT_x86_win32 +#undef PLAT_amd64_win64 +#undef PLAT_x86_linux +#undef PLAT_amd64_linux +#undef PLAT_ppc32_linux +#undef PLAT_ppc64be_linux +#undef PLAT_ppc64le_linux +#undef PLAT_arm_linux +#undef PLAT_s390x_linux +#undef PLAT_mips32_linux +#undef PLAT_mips64_linux +#undef PLAT_nanomips_linux +#undef PLAT_x86_solaris +#undef PLAT_amd64_solaris + +#endif /* __VALGRIND_H */ diff --git a/src/helpers/valgrind.zig b/src/helpers/valgrind.zig index fb089f0..a5047f2 100644 --- a/src/helpers/valgrind.zig +++ b/src/helpers/valgrind.zig @@ -1,166 +1,10 @@ -// Taken from the std library: https://github.com/ziglang/zig/blob/master/lib/std/valgrind.zig -// Modifications: Inline every called function, remove unused code, always run doClientRequest. - const builtin = @import("builtin"); const std = @import("std"); const math = std.math; -pub fn black_box(comptime T: type, value: T) T { - asm volatile ("" - : - : [val] "r" (value), - ); - return value; -} - -pub inline fn doClientRequest(_default: usize, request: usize, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) usize { - const args = &[_]usize{ request, a1, a2, a3, a4, a5 }; - - // Ensure the compiler doesn't incorrectly optimize away the - // default variable if it's 0. - const default = black_box(usize, _default); - - return switch (builtin.cpu.arch) { - .arm, .armeb, .thumb, .thumbeb => asm volatile ( - \\ mov r12, r12, ror #3 ; mov r12, r12, ror #13 - \\ mov r12, r12, ror #29 ; mov r12, r12, ror #19 - \\ orr r10, r10, r10 - : [_] "={r3}" (-> usize), - : [_] "{r4}" (args), - [_] "{r3}" (default), - : "cc", "memory" - ), - .aarch64, .aarch64_be => asm volatile ( - \\ ror x12, x12, #3 ; ror x12, x12, #13 - \\ ror x12, x12, #51 ; ror x12, x12, #61 - \\ orr x10, x10, x10 - : [_] "={x3}" (-> usize), - : [_] "{x4}" (args), - [_] "{x3}" (default), - : "cc", "memory" - ), - .mips, .mipsel => asm volatile ( - \\ srl $0, $0, 13 - \\ srl $0, $0, 29 - \\ srl $0, $0, 3 - \\ srl $0, $0, 19 - \\ or $13, $13, $13 - : [_] "={$11}" (-> usize), - : [_] "{$12}" (args), - [_] "{$11}" (default), - : "memory" - ), - .mips64, .mips64el => asm volatile ( - \\ dsll $0, $0, 3 ; dsll $0, $0, 13 - \\ dsll $0, $0, 29 ; dsll $0, $0, 19 - \\ or $13, $13, $13 - : [_] "={$11}" (-> usize), - : [_] "{$12}" (args), - [_] "{$11}" (default), - : "memory" - ), - .powerpc, .powerpcle => asm volatile ( - \\ rlwinm 0, 0, 3, 0, 31 ; rlwinm 0, 0, 13, 0, 31 - \\ rlwinm 0, 0, 29, 0, 31 ; rlwinm 0, 0, 19, 0, 31 - \\ or 1, 1, 1 - : [_] "={r3}" (-> usize), - : [_] "{r4}" (args), - [_] "{r3}" (default), - : "cc", "memory" - ), - .powerpc64, .powerpc64le => asm volatile ( - \\ rotldi 0, 0, 3 ; rotldi 0, 0, 13 - \\ rotldi 0, 0, 61 ; rotldi 0, 0, 51 - \\ or 1, 1, 1 - : [_] "={r3}" (-> usize), - : [_] "{r4}" (args), - [_] "{r3}" (default), - : "cc", "memory" - ), - .s390x => asm volatile ( - \\ lr %%r15, %%r15 - \\ lr %%r1, %%r1 - \\ lr %%r2, %%r2 - \\ lr %%r3, %%r3 - \\ lr %%r2, %%r2 - : [_] "={r3}" (-> usize), - : [_] "{r2}" (args), - [_] "{r3}" (default), - : "cc", "memory" - ), - .x86 => asm volatile ( - \\ roll $3, %%edi ; roll $13, %%edi - \\ roll $29, %%edi ; roll $19, %%edi - \\ xchgl %%ebx, %%ebx - : [_] "={edx}" (-> usize), - : [_] "{eax}" (args), - [_] "{edx}" (default), - : "cc", "memory" - ), - .x86_64 => asm volatile ( - \\ rolq $3, %%rdi ; rolq $13, %%rdi - \\ rolq $61, %%rdi ; rolq $51, %%rdi - \\ xchgq %%rbx, %%rbx - : [_] "={rdx}" (-> usize), - : [_] "{rax}" (args), - [_] "{rdx}" (default), - : "cc", "memory" - ), - else => default, - }; -} - -pub const ClientRequest = enum(u32) { - RunningOnValgrind = 4097, - DiscardTranslations = 4098, - ClientCall0 = 4353, - ClientCall1 = 4354, - ClientCall2 = 4355, - ClientCall3 = 4356, - CountErrors = 4609, - GdbMonitorCommand = 4610, - MalloclikeBlock = 4865, - ResizeinplaceBlock = 4875, - FreelikeBlock = 4866, - CreateMempool = 4867, - DestroyMempool = 4868, - MempoolAlloc = 4869, - MempoolFree = 4870, - MempoolTrim = 4871, - MoveMempool = 4872, - MempoolChange = 4873, - MempoolExists = 4874, - Printf = 5121, - PrintfBacktrace = 5122, - PrintfValistByRef = 5123, - PrintfBacktraceValistByRef = 5124, - StackRegister = 5377, - StackDeregister = 5378, - StackChange = 5379, - LoadPdbDebuginfo = 5633, - MapIpToSrcloc = 5889, - ChangeErrDisablement = 6145, - VexInitForIri = 6401, - InnerThreads = 6402, -}; -pub fn ToolBase(base: [2]u8) u32 { - return (@as(u32, base[0] & 0xff) << 24) | (@as(u32, base[1] & 0xff) << 16); -} - -inline fn doClientRequestExpr(default: usize, request: ClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) usize { - return doClientRequest(default, @as(usize, @intCast(@intFromEnum(request))), a1, a2, a3, a4, a5); -} - -/// Returns the number of Valgrinds this code is running under. That -/// is, 0 if running natively, 1 if running under Valgrind, 2 if -/// running under Valgrind which is running under another Valgrind, -/// etc. -pub inline fn runningOnValgrind() usize { - return doClientRequestExpr(0, .RunningOnValgrind, 0, 0, 0, 0, 0); -} - -test "works whether running on valgrind or not" { - _ = runningOnValgrind(); -} - -pub const callgrind = @import("valgrind/callgrind.zig"); +pub extern "C" fn running_on_valgrind() u8; +pub extern "C" fn callgrind_dump_stats() void; +pub extern "C" fn callgrind_dump_stats_at(pos_str: [*:0]const u8) void; +pub extern "C" fn callgrind_zero_stats() void; +pub extern "C" fn callgrind_start_instrumentation() void; +pub extern "C" fn callgrind_stop_instrumentation() void; diff --git a/src/helpers/valgrind/callgrind.zig b/src/helpers/valgrind/callgrind.zig deleted file mode 100644 index 37e9602..0000000 --- a/src/helpers/valgrind/callgrind.zig +++ /dev/null @@ -1,53 +0,0 @@ -// Taken from the std library: https://github.com/ziglang/zig/blob/master/lib/std/valgrind/callgrind.zig -// Modifications: Inline every called function, remove unused code. - -const valgrind = @import("../valgrind.zig"); - -pub const ClientRequest = enum(usize) { - DumpStats = valgrind.ToolBase("CT".*), - ZeroStats, - ToggleCollect, - DumpStatsAt, - StartInstrumentation, - StopInstrumentation, -}; - -inline fn doClientRequestExpr(default: usize, request: ClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) usize { - return valgrind.doClientRequest(default, @as(usize, @intCast(@intFromEnum(request))), a1, a2, a3, a4, a5); -} - -inline fn doClientRequestStmt(request: ClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) void { - _ = doClientRequestExpr(0, request, a1, a2, a3, a4, a5); -} - -/// Dump current state of cost centers, and zero them afterwards. -/// The argument is appended to a string stating the reason which triggered -/// the dump. This string is written as a description field into the -/// profile data dump. -pub inline fn dumpStatsAt(pos_str: [*:0]const u8) void { - doClientRequestStmt(.DumpStatsAt, @intFromPtr(pos_str), 0, 0, 0, 0); -} - -/// Zero cost centers -pub inline fn zeroStats() void { - doClientRequestStmt(.ZeroStats, 0, 0, 0, 0, 0); -} - -/// Start full callgrind instrumentation if not already switched on. -/// When cache simulation is done, it will flush the simulated cache; -/// this will lead to an artificial cache warmup phase afterwards with -/// cache misses which would not have happened in reality. -pub inline fn startInstrumentation() void { - doClientRequestStmt(.StartInstrumentation, 0, 0, 0, 0, 0); -} - -/// Stop full callgrind instrumentation if not already switched off. -/// This flushes Valgrinds translation cache, and does no additional -/// instrumentation afterwards, which effectively will run at the same -/// speed as the "none" tool (ie. at minimal slowdown). -/// Use this to bypass Callgrind aggregation for uninteresting code parts. -/// To start Callgrind in this mode to ignore the setup phase, use -/// the option "--instr-atstart=no". -pub inline fn stopInstrumentation() void { - doClientRequestStmt(.StopInstrumentation, 0, 0, 0, 0, 0); -} diff --git a/src/helpers/valgrind_wrapper.c b/src/helpers/valgrind_wrapper.c new file mode 100644 index 0000000..91a1aa7 --- /dev/null +++ b/src/helpers/valgrind_wrapper.c @@ -0,0 +1,32 @@ +#ifndef WRAPPER_H +#define WRAPPER_H + +#include "valgrind.h" +#include "callgrind.h" +#include + +uint8_t running_on_valgrind() { + return RUNNING_ON_VALGRIND > 0; +} + +void callgrind_dump_stats() { + CALLGRIND_DUMP_STATS; +} + +void callgrind_dump_stats_at(uint8_t const * pos_str) { + CALLGRIND_DUMP_STATS_AT(pos_str); +} + +void callgrind_zero_stats() { + CALLGRIND_ZERO_STATS; +} + +void callgrind_start_instrumentation() { + CALLGRIND_START_INSTRUMENTATION; +} + +void callgrind_stop_instrumentation() { + CALLGRIND_STOP_INSTRUMENTATION; +} + +#endif diff --git a/src/instruments/valgrind.zig b/src/instruments/valgrind.zig index 6f23c63..75ab8ed 100644 --- a/src/instruments/valgrind.zig +++ b/src/instruments/valgrind.zig @@ -12,7 +12,7 @@ pub const ValgrindInstrument = struct { } pub inline fn is_instrumented() bool { - return valgrind.runningOnValgrind() > 0; + return valgrind.running_on_valgrind() > 0; } pub inline fn set_integration(self: Self, name: [*c]const u8, version: [*c]const u8) !void { @@ -23,20 +23,20 @@ pub const ValgrindInstrument = struct { ); defer self.allocator.free(metadata); - valgrind.callgrind.dumpStatsAt(metadata.ptr); + valgrind.callgrind_dump_stats_at(metadata.ptr); } pub inline fn start_benchmark() void { - valgrind.callgrind.zeroStats(); - valgrind.callgrind.startInstrumentation(); + valgrind.callgrind_zero_stats(); + valgrind.callgrind_start_instrumentation(); } pub inline fn stop_benchmark() void { - valgrind.callgrind.stopInstrumentation(); + valgrind.callgrind_stop_instrumentation(); } pub inline fn current_benchmark(pid: u32, uri: [*c]const u8) void { _ = pid; - valgrind.callgrind.dumpStatsAt(uri); + valgrind.callgrind_dump_stats_at(uri); } };