├── .github └── workflows │ └── test.yml ├── .gitignore ├── .gitmodules ├── COPYING.md ├── Cargo.toml ├── README.md ├── rustfmt.toml ├── shell.nix ├── src ├── cpu │ ├── interp.in.rs │ ├── interp.rs │ ├── macros.rs │ ├── mod.rs │ ├── op.in.rs │ ├── op.rs │ └── types.rs ├── elf.rs ├── lib.rs └── softfloat.rs ├── tests ├── cpu.rs └── env │ ├── link.ld │ ├── meta.rs │ └── riscv_test.h └── vendor └── SoftFloat-3e ├── COPYING.txt └── source ├── f32_add.c ├── f32_div.c ├── f32_eq.c ├── f32_isSignalingNaN.c ├── f32_le.c ├── f32_lt.c ├── f32_mul.c ├── f32_mulAdd.c ├── f32_rem.c ├── f32_sqrt.c ├── f32_sub.c ├── f32_to_f64.c ├── f32_to_i32.c ├── f32_to_ui32.c ├── f64_add.c ├── f64_div.c ├── f64_eq.c ├── f64_isSignalingNaN.c ├── f64_le.c ├── f64_lt.c ├── f64_mul.c ├── f64_mulAdd.c ├── f64_rem.c ├── f64_sqrt.c ├── f64_sub.c ├── f64_to_f32.c ├── f64_to_i32.c ├── f64_to_ui32.c ├── i32_to_f32.c ├── i32_to_f64.c ├── include ├── internals.h ├── opts-GCC.h ├── primitiveTypes.h ├── primitives.h ├── softfloat.h └── softfloat_types.h ├── s_addMagsF32.c ├── s_addMagsF64.c ├── s_approxRecipSqrt32_1.c ├── s_approxRecipSqrt_1Ks.c ├── s_mulAddF32.c ├── s_mulAddF64.c ├── s_normRoundPackToF32.c ├── s_normRoundPackToF64.c ├── s_normSubnormalF32Sig.c ├── s_normSubnormalF64Sig.c ├── s_roundPackToF32.c ├── s_roundPackToF64.c ├── s_roundToI32.c ├── s_roundToUI32.c ├── s_shiftRightJam128.c ├── s_subMagsF32.c ├── s_subMagsF64.c ├── ui32_to_f32.c └── ui32_to_f64.c /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | Cargo.lock 3 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/.gitmodules -------------------------------------------------------------------------------- /COPYING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/COPYING.md -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/Cargo.toml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/README.md -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | edition = "2021" 2 | -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/shell.nix -------------------------------------------------------------------------------- /src/cpu/interp.in.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/src/cpu/interp.in.rs -------------------------------------------------------------------------------- /src/cpu/interp.rs: -------------------------------------------------------------------------------- 1 | include!(concat!(env!("OUT_DIR"), "/interp.rs")); 2 | -------------------------------------------------------------------------------- /src/cpu/macros.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/src/cpu/macros.rs -------------------------------------------------------------------------------- /src/cpu/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/src/cpu/mod.rs -------------------------------------------------------------------------------- /src/cpu/op.in.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/src/cpu/op.in.rs -------------------------------------------------------------------------------- /src/cpu/op.rs: -------------------------------------------------------------------------------- 1 | include!(concat!(env!("OUT_DIR"), "/op.rs")); 2 | -------------------------------------------------------------------------------- /src/cpu/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/src/cpu/types.rs -------------------------------------------------------------------------------- /src/elf.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/src/elf.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/softfloat.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/src/softfloat.rs -------------------------------------------------------------------------------- /tests/cpu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/tests/cpu.rs -------------------------------------------------------------------------------- /tests/env/link.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/tests/env/link.ld -------------------------------------------------------------------------------- /tests/env/meta.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/tests/env/meta.rs -------------------------------------------------------------------------------- /tests/env/riscv_test.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/tests/env/riscv_test.h -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/COPYING.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/COPYING.txt -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_add.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_add.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_div.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_div.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_eq.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_eq.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_isSignalingNaN.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_isSignalingNaN.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_le.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_le.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_lt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_lt.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_mul.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_mul.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_mulAdd.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_mulAdd.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_rem.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_rem.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_sqrt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_sqrt.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_sub.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_sub.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_to_f64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_to_f64.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_to_i32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_to_i32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f32_to_ui32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f32_to_ui32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_add.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_add.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_div.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_div.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_eq.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_eq.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_isSignalingNaN.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_isSignalingNaN.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_le.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_le.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_lt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_lt.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_mul.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_mul.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_mulAdd.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_mulAdd.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_rem.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_rem.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_sqrt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_sqrt.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_sub.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_sub.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_to_f32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_to_f32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_to_i32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_to_i32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/f64_to_ui32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/f64_to_ui32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/i32_to_f32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/i32_to_f32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/i32_to_f64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/i32_to_f64.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/include/internals.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/include/internals.h -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/include/opts-GCC.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/include/opts-GCC.h -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/include/primitiveTypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/include/primitiveTypes.h -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/include/primitives.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/include/primitives.h -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/include/softfloat.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/include/softfloat.h -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/include/softfloat_types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/include/softfloat_types.h -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_addMagsF32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_addMagsF32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_addMagsF64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_addMagsF64.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_approxRecipSqrt32_1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_approxRecipSqrt32_1.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_approxRecipSqrt_1Ks.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_approxRecipSqrt_1Ks.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_mulAddF32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_mulAddF32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_mulAddF64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_mulAddF64.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_normRoundPackToF32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_normRoundPackToF32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_normRoundPackToF64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_normRoundPackToF64.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_normSubnormalF32Sig.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_normSubnormalF32Sig.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_normSubnormalF64Sig.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_normSubnormalF64Sig.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_roundPackToF32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_roundPackToF32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_roundPackToF64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_roundPackToF64.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_roundToI32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_roundToI32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_roundToUI32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_roundToUI32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_shiftRightJam128.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_shiftRightJam128.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_subMagsF32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_subMagsF32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/s_subMagsF64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/s_subMagsF64.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/ui32_to_f32.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/ui32_to_f32.c -------------------------------------------------------------------------------- /vendor/SoftFloat-3e/source/ui32_to_f64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephank/rvsim/HEAD/vendor/SoftFloat-3e/source/ui32_to_f64.c --------------------------------------------------------------------------------