Commit graph

186 commits

Author SHA1 Message Date
Fabian caf1a2fc4a Add v86_all_debug.js 2021-01-01 20:19:30 -06:00
Fabian e27faaee75 Create build directory 2020-12-31 19:14:34 -06:00
Fabian b9cd08f041 Move qemu tests files to build directory 2020-12-31 19:14:34 -06:00
Fabian 39d78a950b O3 2020-12-31 19:14:34 -06:00
Fabian 7d1c996ab5 Update closure compiler version 2020-12-31 19:14:34 -06:00
Fabian aa62033e9d Enable wasm bulk memory instructions 2020-12-31 19:14:33 -06:00
Fabian f8206859ca Add with-profiler targets 2020-12-31 19:14:33 -06:00
Fabian b34d4d95b7 Add zstd 2020-12-31 19:14:33 -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 1de3592cd6 Add qemu release tests to all-tests target 2020-12-31 19:14:32 -06:00
Fabian 99d66c2e45 Refactor creation of integration test fs 2020-12-31 19:14:32 -06:00
Fabian 7be85004c6 Remove tlb_data from global pointers 2020-12-31 19:14:32 -06:00
Fabian c3e0bd1c8c Clean up makefile 2020-12-31 19:14:32 -06:00
Fabian 9b79278bb9 Much simpler implementation of jit cache 2020-12-31 19:14:32 -06:00
Fabian 8646ee00a8 Clean up 2020-12-31 19:14:31 -06:00
Fabian dca4e7bb1e Add qemu release test 2020-12-31 19:14:31 -06:00
Fabian b42c7bae30 make all-tests: Move expect-tests to the end 2020-12-31 19:14:31 -06:00
Fabian f0a85b4d5b Remove npm 2020-12-31 19:14:31 -06:00
Fabian 9853bdb868 Merge 16-bit and 32-bit 0f tables (saves 200kB on v86.wasm) 2020-12-31 19:14:31 -06:00
Fabian 6298da7d34 Remove indirect function table patching 2020-12-31 19:14:30 -06:00
Fabian 8f231431fc Simplify 2020-12-31 19:14:30 -06:00
Fabian d31e0edb5a Improved code generation for jitted memory reads and writes 2020-12-31 19:14:30 -06:00
Fabian c406d65317 Add kvm-unit-test target with release mode (for benchmarks) 2020-12-31 19:14:30 -06:00
Fabian 4e68de9c4d Test reset/restart 2020-12-31 19:14:30 -06:00
Fabian ea50e29e5f Remove dead & improve 2020-12-31 19:14:29 -06:00
Fabian d0fb1a78d9 Experimental xterm.js support (#172, #227) 2020-12-31 19:14:29 -06:00
Fabian 04d9a6102c Fix file being created in PWD when compiling kvm-unit-test 2020-12-31 19:14:29 -06:00
Fabian 48a9847d16 s/oxide// 2020-12-31 19:14:29 -06:00
Fabian c97301842e Put jit_cache_array and jit_page_first_entry into global state, reduces the size of the .wasm files by 8MB because for some reason the rust compiler decides to put them into the data section 2020-12-31 19:14:29 -06:00
Fabian 941208c948 Remove defunct test coverage 2020-12-31 19:14:29 -06:00
Fabian c994dbc08c Fix spurious </a> in index.html 2020-12-31 19:14:29 -06:00
Fabian 9efade88ee Fix compilation with latest closure compiler 2020-12-31 19:14:29 -06:00
Fabian b3a3d930e3 make default makefile target the debug build 2020-12-31 19:14:29 -06:00
Fabian 753f67bfab Makefile: Clean up and add all-tests target 2020-12-31 19:14:29 -06:00
Fabian af5d01fff6 Makefile: Add tests-release target 2020-12-31 19:14:28 -06:00
Fabian fc954cecea Update libwabt (fix failing decoding of large generated modules) 2020-08-30 19:37:15 -05:00
Amaan Cheval 11831d1b60 Upcase strip_debug for consistency in Makefile 2020-08-30 19:37:15 -05:00
Ernest Wong c273741405 Add tests for file storage chunking 2020-08-30 19:37:15 -05:00
Fabian 7a31922078 Add test for bzimage_initrd_from_filesystem 2020-08-30 19:37:15 -05:00
Fabian 92346f51ed Add test for clean shutdown 2020-08-30 19:37:15 -05:00
Fabian e1c6116a0f Implement Linux kernel boot protocol, accept bzimage/initrd as boot configuration 2020-08-30 19:37:14 -05:00
Fabian 2ee68c960a Make --strip-debug configurable (for release builds) 2020-08-30 19:29:54 -05:00
Ernest Wong 0a67e3532f Filesystem: Introduce FileStorage class for server-loaded files 2020-08-30 19:29:54 -05:00
Ernest Wong 1a6f3cfef3 Compile from and to ECMASCRIPT_2017
- Want to use async/await features.
- We need modern web browsers to run Web Assembly anyway.
2020-08-30 19:29:54 -05:00
Fabian e70e9dc4b2 Factor the conversion out of fpu_{load,store}_m80, add tests, fix the denormal number case 2020-08-30 19:29:54 -05:00
Fabian 27a374e4fd Make warnings fatal in Rust test 2020-08-30 19:29:54 -05:00
Fabian f1b50734c9 c2rust cleanup: Remove build system 2020-08-30 19:29:54 -05:00
Fabian 1faf8ccc86 Allocate memory via Rust instead of ahead-of-time 2020-08-30 19:29:53 -05:00
Fabian 01061dc4b6 The final Rust porting
This commit contains the final changes requires for porting all C code
to Rust and from emscripten to llvm:

- tools/wasm-patch-indirect-function-table.js: A script that rewrites
  the wasm generated by llvm to remove the table limit
- tools/rust-lld-wrapper: A wrapper around rust-lld that removes
  arguments forced by rustc that break compilation for us
- src/rust/cpu2/Makefile: A monstrosity to postprocess c2rust's output
- gen/generate_interpreter.js: Ported to produce Rust instead of C
- src/rust/*: A few functions and macros to connect the old Rust code
  and the new Rust code
- src/*.js: Removes the loading of the old emscripten wasm module and
  adapts imports and exports from emscripten to llvm
2020-08-30 19:29:53 -05:00
Awal Garg 2541789ccc run rust tests with nightly toolchain 2020-08-30 19:29:53 -05:00