gitextract__01xjcye/ ├── .cargo/ │ └── config.toml ├── .devcontainer/ │ ├── Dockerfile │ └── devcontainer.json ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ └── issue.md │ └── workflows/ │ └── ci.yml ├── .gitignore ├── .rustfmt.toml ├── .vscode/ │ └── tasks.json ├── Cargo.toml ├── LICENSE ├── LICENSE.MIT ├── Makefile ├── Readme.md ├── bios/ │ ├── .gitignore │ ├── COPYING.LESSER │ ├── fetch-and-build-seabios.sh │ ├── seabios-debug.config │ └── seabios.config ├── debug.html ├── docs/ │ ├── .gitignore │ ├── archlinux.md │ ├── cpu-idling.md │ ├── filesystem.md │ ├── how-it-works.md │ ├── linux-9p-image.md │ ├── networking.md │ ├── profiling.md │ ├── sse-shifts.txt │ ├── windows-9x.md │ └── windows-nt.md ├── eslint.config.mjs ├── examples/ │ ├── alpine.html │ ├── arch.html │ ├── async_load.html │ ├── basic.html │ ├── broadcast-network.html │ ├── destroy.html │ ├── lang.html │ ├── lua.html │ ├── nodejs.js │ ├── nodejs_state.js │ ├── save_restore.html │ ├── sectorc.html │ ├── serial.html │ ├── tcp_terminal.html │ ├── two_instances.html │ ├── worker.html │ └── worker.js ├── gen/ │ ├── generate_analyzer.js │ ├── generate_interpreter.js │ ├── generate_jit.js │ ├── rust_ast.js │ ├── util.js │ └── x86_table.js ├── index.html ├── lib/ │ ├── 9p.js │ ├── filesystem.js │ ├── marshall.js │ ├── softfloat/ │ │ └── softfloat.c │ └── zstd/ │ └── zstddeclib.c ├── manifest.json ├── package.json ├── src/ │ ├── acpi.js │ ├── browser/ │ │ ├── dummy_screen.js │ │ ├── fake_network.js │ │ ├── fetch_network.js │ │ ├── filestorage.js │ │ ├── inbrowser_network.js │ │ ├── keyboard.js │ │ ├── main.js │ │ ├── mouse.js │ │ ├── network.js │ │ ├── print_stats.js │ │ ├── screen.js │ │ ├── serial.js │ │ ├── speaker.js │ │ ├── starter.js │ │ ├── wisp_network.js │ │ └── worker_bus.js │ ├── buffer.js │ ├── bus.js │ ├── cjs.js │ ├── const.js │ ├── cpu.js │ ├── dma.js │ ├── elf.js │ ├── externs.js │ ├── floppy.js │ ├── ide.js │ ├── io.js │ ├── iso9660.js │ ├── kernel.js │ ├── lib.js │ ├── log.js │ ├── main.js │ ├── ne2k.js │ ├── pci.js │ ├── pit.js │ ├── ps2.js │ ├── rtc.js │ ├── rust/ │ │ ├── analysis.rs │ │ ├── codegen.rs │ │ ├── config.rs │ │ ├── control_flow.rs │ │ ├── cpu/ │ │ │ ├── apic.rs │ │ │ ├── arith.rs │ │ │ ├── call_indirect.rs │ │ │ ├── cpu.rs │ │ │ ├── fpu.rs │ │ │ ├── global_pointers.rs │ │ │ ├── instructions.rs │ │ │ ├── instructions_0f.rs │ │ │ ├── ioapic.rs │ │ │ ├── memory.rs │ │ │ ├── misc_instr.rs │ │ │ ├── mod.rs │ │ │ ├── modrm.rs │ │ │ ├── pic.rs │ │ │ ├── sse_instr.rs │ │ │ ├── string.rs │ │ │ └── vga.rs │ │ ├── cpu_context.rs │ │ ├── dbg.rs │ │ ├── gen/ │ │ │ └── mod.rs │ │ ├── jit.rs │ │ ├── jit_instructions.rs │ │ ├── js_api.rs │ │ ├── leb.rs │ │ ├── lib.rs │ │ ├── modrm.rs │ │ ├── opstats.rs │ │ ├── page.rs │ │ ├── paging.rs │ │ ├── prefix.rs │ │ ├── profiler.rs │ │ ├── regs.rs │ │ ├── softfloat.rs │ │ ├── state_flags.rs │ │ ├── wasmgen/ │ │ │ ├── mod.rs │ │ │ ├── wasm_builder.rs │ │ │ └── wasm_opcodes.rs │ │ └── zstd.rs │ ├── sb16.js │ ├── state.js │ ├── uart.js │ ├── vga.js │ ├── virtio.js │ ├── virtio_balloon.js │ ├── virtio_console.js │ └── virtio_net.js ├── tests/ │ ├── Readme.md │ ├── api/ │ │ ├── 2g-mem.js │ │ ├── cdrom-insert-eject.js │ │ ├── clean-shutdown.js │ │ ├── floppy.js │ │ ├── pic.js │ │ ├── reboot.js │ │ ├── reset.js │ │ ├── serial.js │ │ ├── state.js │ │ └── test.js │ ├── benchmark/ │ │ ├── arch-bytemark.js │ │ ├── arch-python.js │ │ ├── fetch-download.js │ │ ├── linux-boot.js │ │ └── snapshot.js │ ├── devices/ │ │ ├── fetch_network.js │ │ ├── testfs/ │ │ │ ├── 5d70f436aa013f4f1d5af4a5e8149b479c813ab4ceea0bcf8b01f78eac84fd25 │ │ │ └── 7d865e959b2466918c9863afca942d0fb89d7c9ac0c99bafc3749504ded97730 │ │ ├── testfs.json │ │ ├── virtio_9p.js │ │ ├── virtio_balloon.js │ │ ├── virtio_console.js │ │ └── wisp_network.js │ ├── expect/ │ │ ├── readme.md │ │ ├── run.js │ │ └── tests/ │ │ ├── Makefile │ │ ├── add.asm │ │ ├── add.wast │ │ ├── call-ret.asm │ │ ├── call-ret.wast │ │ ├── do-while.asm │ │ ├── do-while.wast │ │ ├── if.asm │ │ ├── if.wast │ │ ├── inc.asm │ │ ├── inc.wast │ │ ├── indirect-call.asm │ │ ├── indirect-call.wast │ │ ├── loop.asm │ │ ├── loop.wast │ │ ├── mem32r.asm │ │ ├── mem32r.wast │ │ ├── mem32rmw.asm │ │ ├── mem32rmw.wast │ │ ├── mem32w.asm │ │ ├── mem32w.wast │ │ ├── mov-immoffs.asm │ │ ├── mov-immoffs.wast │ │ ├── pop.asm │ │ ├── pop.wast │ │ ├── push.asm │ │ ├── push.wast │ │ ├── sti.asm │ │ ├── sti.wast │ │ ├── task_switch_test.asm │ │ ├── task_switch_test.wast │ │ ├── task_switch_test_sse.asm │ │ ├── task_switch_test_sse.wast │ │ ├── while-do.asm │ │ └── while-do.wast │ ├── full/ │ │ └── run.js │ ├── jit-paging/ │ │ ├── Makefile │ │ ├── README.md │ │ ├── run.js │ │ └── test-jit.c │ ├── manual/ │ │ └── gc.html │ ├── nasm/ │ │ ├── Readme.md │ │ ├── arith-optimisations.asm │ │ ├── btc-imm.asm │ │ ├── btc-reg16.asm │ │ ├── btc-reg32.asm │ │ ├── btr-imm.asm │ │ ├── btr-reg16.asm │ │ ├── btr-reg32.asm │ │ ├── bts-imm.asm │ │ ├── bts-reg16.asm │ │ ├── bts-reg32.asm │ │ ├── cmp16-setbe.asm │ │ ├── cmpxchg-setbe.asm │ │ ├── cmpxchg.asm │ │ ├── cmpxchg8b.asm │ │ ├── comiss.asm │ │ ├── create_tests.js │ │ ├── cvtpi2ps.asm │ │ ├── cvtps2pi.asm │ │ ├── cvttps2pi.asm │ │ ├── emms.asm │ │ ├── f2xm1.asm │ │ ├── fchs.asm │ │ ├── fdecstp.asm │ │ ├── fdiv-zero.asm │ │ ├── fdiv.asm │ │ ├── fdivr.asm │ │ ├── fincstp.asm │ │ ├── footer.inc │ │ ├── fprem.asm │ │ ├── fprem1.asm │ │ ├── fptan.asm │ │ ├── fpu_m80.asm │ │ ├── frndint.asm │ │ ├── fsave_frstor.asm │ │ ├── fscale.asm │ │ ├── fsincos.asm │ │ ├── fsqrt.asm │ │ ├── fstenv.asm │ │ ├── fstm80.asm │ │ ├── fstsw.asm │ │ ├── fxtract-zero.asm │ │ ├── fxtract.asm │ │ ├── fyl2x-zero.asm │ │ ├── fyl2x.asm │ │ ├── fyl2xp1.asm │ │ ├── gdb-extract-def │ │ ├── gen_fixtures.js │ │ ├── header.inc │ │ ├── idiv16-overflow.asm │ │ ├── idiv32-overflow.asm │ │ ├── idiv8-overflow.asm │ │ ├── indirect-call.asm │ │ ├── indirect-jump.asm │ │ ├── jcxz.asm │ │ ├── jump.asm │ │ ├── lea-nop.asm │ │ ├── leave16.asm │ │ ├── leave32.asm │ │ ├── loop.asm │ │ ├── loopnz.asm │ │ ├── loopz.asm │ │ ├── maskmovdqu.asm │ │ ├── maskmovq.asm │ │ ├── mov16.asm │ │ ├── mov_sreg.asm │ │ ├── mov_sreg_ud1.asm │ │ ├── mov_sreg_ud2.asm │ │ ├── movaps.asm │ │ ├── movd.asm │ │ ├── movntpd.asm │ │ ├── movntps.asm │ │ ├── movq.asm │ │ ├── packssdw.asm │ │ ├── packsswb.asm │ │ ├── packuswb.asm │ │ ├── paddb.asm │ │ ├── paddd.asm │ │ ├── paddsb.asm │ │ ├── paddsw.asm │ │ ├── paddusb.asm │ │ ├── paddusw.asm │ │ ├── paddw.asm │ │ ├── pand.asm │ │ ├── pandn.asm │ │ ├── pcmpeqb.asm │ │ ├── pcmpeqd.asm │ │ ├── pcmpeqw.asm │ │ ├── pcmpgtb.asm │ │ ├── pcmpgtd.asm │ │ ├── pcmpgtw.asm │ │ ├── pmaddwd.asm │ │ ├── pmulhw.asm │ │ ├── pmullw.asm │ │ ├── pmuludq.asm │ │ ├── pop_esp.asm │ │ ├── pop_esp2.asm │ │ ├── por.asm │ │ ├── pshufw.asm │ │ ├── pslld.asm │ │ ├── psllq.asm │ │ ├── psllw.asm │ │ ├── psrad.asm │ │ ├── psraw.asm │ │ ├── psrld.asm │ │ ├── psrlq.asm │ │ ├── psrlw.asm │ │ ├── psubb.asm │ │ ├── psubd.asm │ │ ├── psubsb.asm │ │ ├── psubsw.asm │ │ ├── psubusb.asm │ │ ├── psubusw.asm │ │ ├── psubw.asm │ │ ├── punpckhbw.asm │ │ ├── punpckhdq.asm │ │ ├── punpckhwd.asm │ │ ├── punpcklbw.asm │ │ ├── punpckldq.asm │ │ ├── punpcklwd.asm │ │ ├── push.asm │ │ ├── pushf.asm │ │ ├── pxor.asm │ │ ├── rand.js │ │ ├── ret-imm.asm │ │ ├── run.js │ │ ├── shufps-edgecase.asm │ │ └── ucomiss.asm │ ├── qemu/ │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── Readme.md │ │ ├── compiler.h │ │ ├── config-host.h │ │ ├── run-qemu.js │ │ ├── run.js │ │ ├── test-i386-code16.S │ │ ├── test-i386-muldiv.h │ │ ├── test-i386-shift.h │ │ ├── test-i386-vm86.S │ │ ├── test-i386.c │ │ └── test-i386.h │ └── rust/ │ └── verify-wasmgen-dummy-output.js ├── tools/ │ ├── copy-to-sha256.py │ ├── docker/ │ │ ├── README.md │ │ ├── alpine/ │ │ │ ├── Dockerfile │ │ │ ├── Readme.md │ │ │ ├── build-state.js │ │ │ └── build.sh │ │ ├── exec/ │ │ │ ├── Dockerfile │ │ │ └── build.sh │ │ └── test-image/ │ │ └── Dockerfile │ ├── fetch_network_harness.mjs │ ├── fs2json.py │ ├── mkisofs.js │ ├── rust-lld-wrapper │ └── split-image.py ├── v86.css └── v86.d.ts