Blame 0002-riscv-force-float-save.patch

3c6a0c
diff -ur riscv-qemu-b6e0a38a922005d4015e2fdb42e8a783b3cc8e41.old/target/riscv/op_helper.c riscv-qemu-b6e0a38a922005d4015e2fdb42e8a783b3cc8e41/target/riscv/op_helper.c
3c6a0c
--- riscv-qemu-b6e0a38a922005d4015e2fdb42e8a783b3cc8e41.old/target/riscv/op_helper.c	2018-03-02 13:29:21.000000000 +0000
3c6a0c
+++ riscv-qemu-b6e0a38a922005d4015e2fdb42e8a783b3cc8e41/target/riscv/op_helper.c	2018-03-10 21:21:48.999120773 +0000
3c6a0c
@@ -144,6 +144,7 @@
3c6a0c
         }
3c6a0c
 
3c6a0c
         mstatus = (mstatus & ~mask) | (val_to_write & mask);
3c6a0c
+        if (mstatus & MSTATUS_FS) mstatus |= MSTATUS_FS; /* FP is always dirty if enabled */
3c6a0c
         int dirty = (mstatus & MSTATUS_FS) == MSTATUS_FS;
3c6a0c
         dirty |= (mstatus & MSTATUS_XS) == MSTATUS_XS;
3c6a0c
         mstatus = set_field(mstatus, MSTATUS_SD, dirty);