diff options
Diffstat (limited to 'c_emulator/riscv_softfloat.h')
-rw-r--r-- | c_emulator/riscv_softfloat.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/c_emulator/riscv_softfloat.h b/c_emulator/riscv_softfloat.h new file mode 100644 index 0000000..bd7edf0 --- /dev/null +++ b/c_emulator/riscv_softfloat.h @@ -0,0 +1,40 @@ +#pragma once + +unit softfloat_f32add(mach_bits rm, mach_bits v1, mach_bits v2); +unit softfloat_f32sub(mach_bits rm, mach_bits v1, mach_bits v2); +unit softfloat_f32mul(mach_bits rm, mach_bits v1, mach_bits v2); +unit softfloat_f32div(mach_bits rm, mach_bits v1, mach_bits v2); + +unit softfloat_f64add(mach_bits rm, mach_bits v1, mach_bits v2); +unit softfloat_f64sub(mach_bits rm, mach_bits v1, mach_bits v2); +unit softfloat_f64mul(mach_bits rm, mach_bits v1, mach_bits v2); +unit softfloat_f64div(mach_bits rm, mach_bits v1, mach_bits v2); + +unit softfloat_f32muladd(mach_bits rm, mach_bits v1, mach_bits v2, mach_bits v3); +unit softfloat_f64muladd(mach_bits rm, mach_bits v1, mach_bits v2, mach_bits v3); + +unit softfloat_f32sqrt(mach_bits rm, mach_bits v); +unit softfloat_f64sqrt(mach_bits rm, mach_bits v); + +unit softfloat_f32toi32(mach_bits rm, mach_bits v); +unit softfloat_f32toui32(mach_bits rm, mach_bits v); +unit softfloat_f32toi64(mach_bits rm, mach_bits v); +unit softfloat_f32toui64(mach_bits rm, mach_bits v); + +unit softfloat_f64toi32(mach_bits rm, mach_bits v); +unit softfloat_f64toui32(mach_bits rm, mach_bits v); +unit softfloat_f64toi64(mach_bits rm, mach_bits v); +unit softfloat_f64toui64(mach_bits rm, mach_bits v); + +unit softfloat_i32tof32(mach_bits rm, mach_bits v); +unit softfloat_ui32tof32(mach_bits rm, mach_bits v); +unit softfloat_i64tof32(mach_bits rm, mach_bits v); +unit softfloat_ui64tof32(mach_bits rm, mach_bits v); + +unit softfloat_i32tof64(mach_bits rm, mach_bits v); +unit softfloat_ui32tof64(mach_bits rm, mach_bits v); +unit softfloat_i64tof64(mach_bits rm, mach_bits v); +unit softfloat_ui64tof64(mach_bits rm, mach_bits v); + +unit softfloat_f32tof64(mach_bits rm, mach_bits v); +unit softfloat_f64tof32(mach_bits rm, mach_bits v); |