From 40668501fa8d52054f5678db4e6dd32b5ed7fe15 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sat, 14 Mar 2015 02:06:21 -0700 Subject: Fix some bugs in FP emulation --- pk/minit.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'pk/minit.c') diff --git a/pk/minit.c b/pk/minit.c index a8a449f..abaa5e1 100644 --- a/pk/minit.c +++ b/pk/minit.c @@ -47,6 +47,18 @@ static void hart_init() panic("TODO: SMP support"); } +static void fp_init() +{ +#ifdef __riscv_hard_float + kassert(read_csr(mstatus) & MSTATUS_FS); + SET_FCSR(0); + for (int i = 0; i < 32; i++) + init_fp_reg(i); +#else + kassert(!(read_csr(mstatus) & MSTATUS_FS)); +#endif +} + void machine_init() { file_init(); @@ -57,6 +69,7 @@ void machine_init() mstatus_init(); memory_init(); hart_init(); + fp_init(); vm_init(); boot_loader(args); } -- cgit v1.1