Author: gonzo
Date: Sun Nov  1 21:59:56 2015
New Revision: 290243
URL: https://svnweb.freebsd.org/changeset/base/290243
Log:
  Treat synchronous VFP exception just like aynchronous: as an FP exception,
  not as illegal instruction

Modified:
  head/sys/arm/arm/vfp.c
  head/sys/arm/include/vfp.h

Modified: head/sys/arm/arm/vfp.c
==============================================================================
--- head/sys/arm/arm/vfp.c      Sun Nov  1 21:20:29 2015        (r290242)
+++ head/sys/arm/arm/vfp.c      Sun Nov  1 21:59:56 2015        (r290243)
@@ -179,12 +179,12 @@ vfp_bounce(u_int addr, u_int insn, struc
        fpexc = fmrx(fpexc);
        if (fpexc & VFPEXC_EN) {
                /* Clear any exceptions */
-               fmxr(fpexc, fpexc & ~(VFPEXC_EX | VFPEXC_FP2V));
+               fmxr(fpexc, fpexc & ~(VFPEXC_EX | VFPEXC_DEX | VFPEXC_FP2V));
 
                /* kill the process - we do not handle emulation */
                critical_exit();
 
-               if (fpexc & VFPEXC_EX) {
+               if (fpexc & (VFPEXC_EX | VFPEXC_DEX)) {
                        /* We have an exception, signal a SIGFPE */
                        ksiginfo_init_trap(&ksi);
                        ksi.ksi_signo = SIGFPE;

Modified: head/sys/arm/include/vfp.h
==============================================================================
--- head/sys/arm/include/vfp.h  Sun Nov  1 21:20:29 2015        (r290242)
+++ head/sys/arm/include/vfp.h  Sun Nov  1 21:59:56 2015        (r290243)
@@ -92,6 +92,7 @@
 /* VFPEXC */
 #define        VFPEXC_EX               (0x80000000)    /* exception v1 v2 */
 #define        VFPEXC_EN               (0x40000000)    /* vfp enable */
+#define        VFPEXC_DEX              (0x20000000)    /* Synchronous 
exception */
 #define        VFPEXC_FP2V             (0x10000000)    /* FPINST2 valid */
 #define        VFPEXC_INV              (0x00000080)    /* Input exception */
 #define        VFPEXC_UFC              (0x00000008)    /* Underflow exception 
*/
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to