Commit graph

338 commits

Author SHA1 Message Date
Fabian 497f618cab Merge branch 'wasm' into master 2021-01-03 02:07:20 -06:00
Fabian 26e512a540 Faster way of zeroing memory 2021-01-01 20:19:30 -06:00
Fabian 1d2be8a04f Provide option to preserve mac address from state image (for Windows 98) 2020-12-31 19:14:34 -06:00
Fabian 416b4b4b82 Remove some things from jit imports 2020-12-31 19:14:34 -06:00
Fabian 0812b61d30 Simplify wasm module loading and instantiating code 2020-12-31 19:14:34 -06:00
Fabian 4a90ec6256 Allow memory size of 2GB 2020-12-31 19:14:33 -06:00
Fabian a238684de6 Store instruction counter in local, use it for loop limits 2020-12-31 19:14:33 -06:00
Fabian d34817d45b Port lsl/lar/verr/verw to rust 2020-12-31 19:14:33 -06:00
Fabian af4f1c5d8e Make kernel cmdline optional 2020-12-31 19:14:33 -06:00
Fabian d5c49ea662 Fix FW_CFG_NUMA entry 2020-12-31 19:14:33 -06:00
Fabian b34d4d95b7 Add zstd 2020-12-31 19:14:33 -06:00
Fabian 0988d030fa Make apci+apic configurable at runtime (#247, #332) 2020-12-31 19:14:32 -06:00
Fabian d4aec0967f Dead code 2020-12-31 19:14:32 -06:00
Fabian 316a30f2df Dead 2020-12-31 19:14:32 -06:00
Fabian cd3f48c0a3 Simplify recursive state handling (don't require get_state for set_state) 2020-12-31 19:14:32 -06:00
Fabian c835023c0c Dead code 2020-12-31 19:14:32 -06:00
Fabian b96f984963 Use softfloat f80 for x87 fpu
This fixes several long-standing issues with x87 float emulation, in particular:

- 80 bit precision floats, fixing Haiku after its switch to musl libc (hrev53728)
- the precision bit in the x87 control word
- fucom and fucomi (unordered comparisons)
- aliasing of x87 and mmx registers
- rounding during conversion to integers

Operations that are not implemented in softfloat were implemented by
converting to f64 (sine, pow, ln, etc.) and thus operate with lower
precision.

Softfloat has been combined into a single file using a script [0] and checked into the repository.

[0] 57df21e2eb/contrib/single_file_libs/combine.sh
2020-12-31 19:14:32 -06:00
Fabian 7826474fed Don't create pending jit entries 2020-12-31 19:14:32 -06:00
Fabian ab5f6e99ba Fix warning 2020-12-31 19:14:32 -06:00
Fabian 91b43687e7 Experiment support for synchronous compilation (only node) 2020-12-31 19:14:31 -06:00
Fabian 9ccef87b88 Port arpl to rust 2020-12-31 19:14:31 -06:00
Fabian a348d2db96 Delete last_virt_esp and esp_phys 2020-12-31 19:14:31 -06:00
Fabian 44a2838f4b Remove translate_address_read from JS api 2020-12-31 19:14:31 -06:00
Fabian 1c78a09c93 Simplify 2020-12-31 19:14:31 -06:00
Fabian 959ed86a7f Delete code 2020-12-31 19:14:31 -06:00
Fabian 6364c76ded Add message to assertion 2020-12-31 19:14:31 -06:00
Fabian 1da020b3e6 Fix printing of eax in cpuid 2020-12-31 19:14:31 -06:00
Fabian b2636bcf87 Minor 2020-12-31 19:14:31 -06:00
Fabian 4b906c0500 Bump tsc rate to 1Ghz 2020-12-31 19:14:31 -06:00
Fabian 3b5aff7d43 Port far_ret to Rust 2020-12-31 19:14:31 -06:00
Fabian d735d5d34e Port far_jump to Rust 2020-12-31 19:14:31 -06:00
Fabian 693b905013 Remove ENABLE_PROFILER (is configured via cargo.toml) 2020-12-31 19:14:30 -06:00
Fabian ee542c5f84 Optimise lazy flag handling
- remove last_add_result and last_op2 from arithmetic instructions
- optimise getcf
2020-12-31 19:14:30 -06:00
Fabian 5bfd56571c Delete more JS (port lss and enter) 2020-12-31 19:14:30 -06:00
Fabian c59115599f Clear cache when restoring state 2020-12-31 19:14:30 -06:00
Fabian df46ffb598 Less JS, more happiness 2020-12-31 19:14:30 -06:00
Fabian e1f8a563ad Simplify (remove c_api) 2020-12-31 19:14:30 -06:00
Fabian f3c56e7684 Simplify 2020-12-31 19:14:30 -06:00
Fabian 3a473aad79 Remove prefix handling from jit and exceptions 2020-12-31 19:14:30 -06:00
Fabian 81a43f8a88 Don't call is_osize_32 from far_return and far_jump 2020-12-31 19:14:30 -06:00
Fabian 764879bad1 s/reg32s/reg32 2020-12-31 19:14:29 -06:00
Fabian 6986519fbb Use get_seg_ss/get_seg_cs from JS 2020-12-31 19:14:29 -06:00
Fabian dfea644e94 Turn this into warning for now 2020-12-31 19:14:29 -06:00
Fabian c84a814610 Remove unused A20 stuff 2020-12-31 19:14:29 -06:00
Fabian 48a9847d16 s/oxide// 2020-12-31 19:14:29 -06:00
Fabian 941208c948 Remove defunct test coverage 2020-12-31 19:14:29 -06:00
Fabian 60adbf9b1f Fix: Side-effects in lsl/lar/arpl even when #ud is triggered 2020-12-31 19:14:29 -06:00
Fabian 17f2488684 Fix uses of writable_or_pagefault from JS 2020-12-31 19:14:29 -06:00
Fabian 63afa77167 Global pointers: Align general purpose registers, sse registers and flags 2020-12-31 19:14:28 -06:00
Fabian 0e8c8a1dda More opstats 2020-12-31 19:14:28 -06:00