r1 &= ~3;
                                        fpregs[t+3] = fpregs[r1+3];
                                        fpregs[t+2] = fpregs[r1+2];
+                                       fallthrough;
                                    case 1: /* double */
                                        fpregs[t+1] = fpregs[r1+1];
+                                       fallthrough;
                                    case 0: /* single */
                                        fpregs[t] = fpregs[r1];
                                        return(NOEXCEPTION);
                                }
+                               BUG();
                        case 3: /* FABS */
                                switch (fmt) {
                                    case 2: /* illegal */
                                        r1 &= ~3;
                                        fpregs[t+3] = fpregs[r1+3];
                                        fpregs[t+2] = fpregs[r1+2];
+                                       fallthrough;
                                    case 1: /* double */
                                        fpregs[t+1] = fpregs[r1+1];
+                                       fallthrough;
                                    case 0: /* single */
                                        /* copy and clear sign bit */
                                        fpregs[t] = fpregs[r1] & 0x7fffffff;
                                        return(NOEXCEPTION);
                                }
+                               BUG();
                        case 6: /* FNEG */
                                switch (fmt) {
                                    case 2: /* illegal */
                                        r1 &= ~3;
                                        fpregs[t+3] = fpregs[r1+3];
                                        fpregs[t+2] = fpregs[r1+2];
+                                       fallthrough;
                                    case 1: /* double */
                                        fpregs[t+1] = fpregs[r1+1];
+                                       fallthrough;
                                    case 0: /* single */
                                        /* copy and invert sign bit */
                                        fpregs[t] = fpregs[r1] ^ 0x80000000;
                                        return(NOEXCEPTION);
                                }
+                               BUG();
                        case 7: /* FNEGABS */
                                switch (fmt) {
                                    case 2: /* illegal */
                                        r1 &= ~3;
                                        fpregs[t+3] = fpregs[r1+3];
                                        fpregs[t+2] = fpregs[r1+2];
+                                       fallthrough;
                                    case 1: /* double */
                                        fpregs[t+1] = fpregs[r1+1];
+                                       fallthrough;
                                    case 0: /* single */
                                        /* copy and set sign bit */
                                        fpregs[t] = fpregs[r1] | 0x80000000;
                                        return(NOEXCEPTION);
                                }
+                               BUG();
                        case 4: /* FSQRT */
                                switch (fmt) {
                                    case 0:
                                    case 3: /* quad not implemented */
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                        case 5: /* FRND */
                                switch (fmt) {
                                    case 0:
                                        return(MAJOR_0C_EXCP);
                                }
                } /* end of switch (subop) */
-
+               BUG();
        case 1: /* class 1 */
                df = extru(ir,fpdfpos,2); /* get dest format */
                if ((df & 2) || (fmt & 2)) {
                                    case 3: /* dbl/dbl */
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                        case 1: /* FCNVXF */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 2: /* FCNVFX */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 3: /* FCNVFXT */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 5: /* FCNVUF (PA2.0 only) */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 6: /* FCNVFU (PA2.0 only) */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 7: /* FCNVFUT (PA2.0 only) */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 4: /* undefined */
                                return(MAJOR_0C_EXCP);
                } /* end of switch subop */
-
+               BUG();
        case 2: /* class 2 */
                fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS];
                r2 = extru(ir, fpr2pos, 5) * sizeof(double)/sizeof(u_int);
                                    case 3: /* quad not implemented */
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                        case 1: /* FTEST */
                                switch (fmt) {
                                    case 0:
                                    case 3:
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                    } /* end of switch subop */
                } /* end of else for PA1.0 & PA1.1 */
+               BUG();
        case 3: /* class 3 */
                r2 = extru(ir,fpr2pos,5) * sizeof(double)/sizeof(u_int);
                if (r2 == 0)
                                    case 3: /* quad not implemented */
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                        case 1: /* FSUB */
                                switch (fmt) {
                                    case 0:
                                    case 3: /* quad not implemented */
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                        case 2: /* FMPY */
                                switch (fmt) {
                                    case 0:
                                    case 3: /* quad not implemented */
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                        case 3: /* FDIV */
                                switch (fmt) {
                                    case 0:
                                    case 3: /* quad not implemented */
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                        case 4: /* FREM */
                                switch (fmt) {
                                    case 0:
                                    case 3: /* quad not implemented */
                                        return(MAJOR_0C_EXCP);
                                }
+                               BUG();
                } /* end of class 3 switch */
        } /* end of switch(class) */
 
                                        return(MAJOR_0E_EXCP);
                                    case 1: /* double */
                                        fpregs[t+1] = fpregs[r1+1];
+                                       fallthrough;
                                    case 0: /* single */
                                        fpregs[t] = fpregs[r1];
                                        return(NOEXCEPTION);
                                }
+                               BUG();
                        case 3: /* FABS */
                                switch (fmt) {
                                    case 2:
                                        return(MAJOR_0E_EXCP);
                                    case 1: /* double */
                                        fpregs[t+1] = fpregs[r1+1];
+                                       fallthrough;
                                    case 0: /* single */
                                        fpregs[t] = fpregs[r1] & 0x7fffffff;
                                        return(NOEXCEPTION);
                                }
+                               BUG();
                        case 6: /* FNEG */
                                switch (fmt) {
                                    case 2:
                                        return(MAJOR_0E_EXCP);
                                    case 1: /* double */
                                        fpregs[t+1] = fpregs[r1+1];
+                                       fallthrough;
                                    case 0: /* single */
                                        fpregs[t] = fpregs[r1] ^ 0x80000000;
                                        return(NOEXCEPTION);
                                }
+                               BUG();
                        case 7: /* FNEGABS */
                                switch (fmt) {
                                    case 2:
                                        return(MAJOR_0E_EXCP);
                                    case 1: /* double */
                                        fpregs[t+1] = fpregs[r1+1];
+                                       fallthrough;
                                    case 0: /* single */
                                        fpregs[t] = fpregs[r1] | 0x80000000;
                                        return(NOEXCEPTION);
                                }
+                               BUG();
                        case 4: /* FSQRT */
                                switch (fmt) {
                                    case 0:
                                    case 3:
                                        return(MAJOR_0E_EXCP);
                                }
+                               BUG();
                        case 5: /* FRMD */
                                switch (fmt) {
                                    case 0:
                                        return(MAJOR_0E_EXCP);
                                }
                } /* end of switch (subop */
-       
+               BUG();
        case 1: /* class 1 */
                df = extru(ir,fpdfpos,2); /* get dest format */
                /*
                                    case 3: /* dbl/dbl */
                                        return(MAJOR_0E_EXCP);
                                }
+                               BUG();
                        case 1: /* FCNVXF */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 2: /* FCNVFX */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 3: /* FCNVFXT */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 5: /* FCNVUF (PA2.0 only) */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 6: /* FCNVFU (PA2.0 only) */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 7: /* FCNVFUT (PA2.0 only) */
                                switch(fmt) {
                                    case 0: /* sgl/sgl */
                                        return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 4: /* undefined */
                                return(MAJOR_0C_EXCP);
                } /* end of switch subop */
+               BUG();
        case 2: /* class 2 */
                /*
                 * Be careful out there.
                                }
                    } /* end of switch subop */
                } /* end of else for PA1.0 & PA1.1 */
+               BUG();
        case 3: /* class 3 */
                /*
                 * Be careful out there.
                                        return(dbl_fadd(&fpregs[r1],&fpregs[r2],
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 1: /* FSUB */
                                switch (fmt) {
                                    case 0:
                                        return(dbl_fsub(&fpregs[r1],&fpregs[r2],
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 2: /* FMPY or XMPYU */
                                /*
                                 * check for integer multiply (x bit set)
                                               &fpregs[r2],&fpregs[t],status));
                                    }
                                }
+                               BUG();
                        case 3: /* FDIV */
                                switch (fmt) {
                                    case 0:
                                        return(dbl_fdiv(&fpregs[r1],&fpregs[r2],
                                                &fpregs[t],status));
                                }
+                               BUG();
                        case 4: /* FREM */
                                switch (fmt) {
                                    case 0: