Lines Matching +full:2 +full:- +full:5

1 // SPDX-License-Identifier: GPL-2.0
32 /* Work-around for some SRMs which mishandle opDEC faults. */
51 /* With that in place, the fault from the round-to-minf fp in opDEC_check()
69 regs->pc, regs->r26, regs->ps, print_tainted()); in dik_show_regs()
70 printk("pc is at %pSR\n", (void *)regs->pc); in dik_show_regs()
71 printk("ra is at %pSR\n", (void *)regs->r26); in dik_show_regs()
73 regs->r0, regs->r1, regs->r2); in dik_show_regs()
75 regs->r3, regs->r4, regs->r5); in dik_show_regs()
77 regs->r6, regs->r7, regs->r8); in dik_show_regs()
88 regs->r16, regs->r17, regs->r18); in dik_show_regs()
90 regs->r19, regs->r20, regs->r21); in dik_show_regs()
92 regs->r22, regs->r23, regs->r24); in dik_show_regs()
94 regs->r25, regs->r27, regs->r28); in dik_show_regs()
95 printk("gp = %016lx sp = %p\n", regs->gp, regs+1); in dik_show_regs()
114 for (i = -6; i < 2; i++) { in dik_show_code()
159 if (((long) stack & (THREAD_SIZE-1)) == 0) in show_stack()
177 if (regs->ps & 8) in die_if_kernel()
182 printk("%s(%d): %s %ld\n", current->comm, task_pid_nr(current), str, err); in die_if_kernel()
186 dik_show_code((unsigned int *)regs->pc); in die_if_kernel()
216 /* Software-completion summary bit is set, so try to in do_entArith()
220 si_code = alpha_fp_emul(regs->pc - 4); in do_entArith()
228 send_sig_fault_trapno(SIGFPE, si_code, (void __user *) regs->pc, 0, current); in do_entArith()
246 current_thread_info()->pcb.flags |= 1; in do_entIF()
247 __reload_thread(&current_thread_info()->pcb); in do_entIF()
253 = (const unsigned int *) regs->pc; in do_entIF()
255 (const char *)(data[1] | (long)data[2] << 32), in do_entIF()
264 = (unsigned int *) regs->pc - 1; in do_entIF()
268 regs->r0 = 0; in do_entIF()
280 regs->pc -= 4; /* make pc point to former bpt */ in do_entIF()
283 send_sig_fault(SIGTRAP, TRAP_BRKPT, (void __user *)regs->pc, in do_entIF()
289 (void __user *) regs->pc, 0, current); in do_entIF()
292 case 2: /* gentrap */ in do_entIF()
293 switch ((long) regs->r16) { in do_entIF()
350 send_sig_fault_trapno(signo, code, (void __user *) regs->pc, in do_entIF()
351 regs->r16, current); in do_entIF()
359 the opDEC properly - they return the PC of the in do_entIF()
366 regs->pc += opDEC_fix; in do_entIF()
371 si_code = alpha_fp_emul(regs->pc - 4); in do_entIF()
376 (void __user *) regs->pc, in do_entIF()
383 case 5: /* illoc */ in do_entIF()
384 default: /* unexpected instruction-fault type */ in do_entIF()
388 send_sig_fault(SIGILL, ILL_ILLOPC, (void __user *)regs->pc, current); in do_entIF()
403 force_sig_fault(SIGILL, ILL_ILLOPC, (void __user *)regs->pc); in do_entDbg()
410 * fp-regs), and it needs to have them in order for simpler access.
412 * Due to the non-standard register layout (and because we don't want
413 * to handle floating-point regs), user-mode unaligned accesses are
417 * on a gp-register unaligned load/store, something is _very_ wrong
427 } unaligned[2];
439 unsigned long pc = regs->pc - 4; in do_entUna()
440 unsigned long *_regs = regs->regs; in do_entUna()
455 "2: ldq_u %2,1(%3)\n" in do_entUna()
457 " extwh %2,%3,%2\n" in do_entUna()
460 EXC(2b,3b,%2,%0) in do_entUna()
471 "2: ldq_u %2,3(%3)\n" in do_entUna()
473 " extlh %2,%3,%2\n" in do_entUna()
476 EXC(2b,3b,%2,%0) in do_entUna()
487 "2: ldq_u %2,7(%3)\n" in do_entUna()
489 " extqh %2,%3,%2\n" in do_entUna()
492 EXC(2b,3b,%2,%0) in do_entUna()
505 "1: ldq_u %2,1(%5)\n" in do_entUna()
506 "2: ldq_u %1,0(%5)\n" in do_entUna()
507 " inswh %6,%5,%4\n" in do_entUna()
508 " inswl %6,%5,%3\n" in do_entUna()
509 " mskwh %2,%5,%2\n" in do_entUna()
510 " mskwl %1,%5,%1\n" in do_entUna()
511 " or %2,%4,%2\n" in do_entUna()
513 "3: stq_u %2,1(%5)\n" in do_entUna()
514 "4: stq_u %1,0(%5)\n" in do_entUna()
515 "5:\n" in do_entUna()
516 EXC(1b,5b,%2,%0) in do_entUna()
517 EXC(2b,5b,%1,%0) in do_entUna()
518 EXC(3b,5b,$31,%0) in do_entUna()
519 EXC(4b,5b,$31,%0) in do_entUna()
529 "1: ldq_u %2,3(%5)\n" in do_entUna()
530 "2: ldq_u %1,0(%5)\n" in do_entUna()
531 " inslh %6,%5,%4\n" in do_entUna()
532 " insll %6,%5,%3\n" in do_entUna()
533 " msklh %2,%5,%2\n" in do_entUna()
534 " mskll %1,%5,%1\n" in do_entUna()
535 " or %2,%4,%2\n" in do_entUna()
537 "3: stq_u %2,3(%5)\n" in do_entUna()
538 "4: stq_u %1,0(%5)\n" in do_entUna()
539 "5:\n" in do_entUna()
540 EXC(1b,5b,%2,%0) in do_entUna()
541 EXC(2b,5b,%1,%0) in do_entUna()
542 EXC(3b,5b,$31,%0) in do_entUna()
543 EXC(4b,5b,$31,%0) in do_entUna()
553 "1: ldq_u %2,7(%5)\n" in do_entUna()
554 "2: ldq_u %1,0(%5)\n" in do_entUna()
555 " insqh %6,%5,%4\n" in do_entUna()
556 " insql %6,%5,%3\n" in do_entUna()
557 " mskqh %2,%5,%2\n" in do_entUna()
558 " mskql %1,%5,%1\n" in do_entUna()
559 " or %2,%4,%2\n" in do_entUna()
561 "3: stq_u %2,7(%5)\n" in do_entUna()
562 "4: stq_u %1,0(%5)\n" in do_entUna()
563 "5:\n" in do_entUna()
564 EXC(1b,5b,%2,%0) in do_entUna()
565 EXC(2b,5b,%1,%0) in do_entUna()
566 EXC(3b,5b,$31,%0) in do_entUna()
567 EXC(4b,5b,$31,%0) in do_entUna()
590 regs->pc = newpc; in do_entUna()
600 current->comm, task_pid_nr(current)); in do_entUna()
603 pc, una_reg(26), regs->ps); in do_entUna()
605 una_reg(0), una_reg(1), una_reg(2)); in do_entUna()
607 una_reg(3), una_reg(4), una_reg(5)); in do_entUna()
623 printk("gp = %016lx sp = %p\n", regs->gp, regs+1); in do_entUna()
637 * Convert an s-floating point value in memory format to the
639 * needs to be remapped to preserve non-finite values
640 * (infinities, not-a-numbers, denormals).
667 * Convert an s-floating point value in register format to the
673 return ((s_reg >> 62) << 30) | ((s_reg << 5) >> 34); in s_reg_to_mem()
677 * Handle user-level unaligned fault. Handling user-level unaligned
686 * particular, load-linked/store-conditionally and floating point
705 #define R(x) ((size_t) &((struct pt_regs *)0)->x)
710 -56, -48, -40, -32, -24, -16, -8,
723 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5); in do_entUnaUser()
733 if (!(current_thread_info()->status & TS_UAC_NOPRINT)) { in do_entUnaUser()
736 current->comm, task_pid_nr(current), in do_entUnaUser()
737 regs->pc - 4, va, opcode, reg); in do_entUnaUser()
740 if ((current_thread_info()->status & TS_UAC_SIGBUS)) in do_entUnaUser()
743 if ((current_thread_info()->status & TS_UAC_NOFIX)) in do_entUnaUser()
754 unaligned[1].pc = regs->pc - 4; in do_entUnaUser()
778 "2: ldq_u %2,1(%3)\n" in do_entUnaUser()
780 " extwh %2,%3,%2\n" in do_entUnaUser()
783 EXC(2b,3b,%2,%0) in do_entUnaUser()
794 "2: ldq_u %2,3(%3)\n" in do_entUnaUser()
796 " extlh %2,%3,%2\n" in do_entUnaUser()
799 EXC(2b,3b,%2,%0) in do_entUnaUser()
810 "2: ldq_u %2,7(%3)\n" in do_entUnaUser()
812 " extqh %2,%3,%2\n" in do_entUnaUser()
815 EXC(2b,3b,%2,%0) in do_entUnaUser()
826 "2: ldq_u %2,3(%3)\n" in do_entUnaUser()
828 " extlh %2,%3,%2\n" in do_entUnaUser()
831 EXC(2b,3b,%2,%0) in do_entUnaUser()
842 "2: ldq_u %2,7(%3)\n" in do_entUnaUser()
844 " extqh %2,%3,%2\n" in do_entUnaUser()
847 EXC(2b,3b,%2,%0) in do_entUnaUser()
860 "1: ldq_u %2,1(%5)\n" in do_entUnaUser()
861 "2: ldq_u %1,0(%5)\n" in do_entUnaUser()
862 " inswh %6,%5,%4\n" in do_entUnaUser()
863 " inswl %6,%5,%3\n" in do_entUnaUser()
864 " mskwh %2,%5,%2\n" in do_entUnaUser()
865 " mskwl %1,%5,%1\n" in do_entUnaUser()
866 " or %2,%4,%2\n" in do_entUnaUser()
868 "3: stq_u %2,1(%5)\n" in do_entUnaUser()
869 "4: stq_u %1,0(%5)\n" in do_entUnaUser()
870 "5:\n" in do_entUnaUser()
871 EXC(1b,5b,%2,%0) in do_entUnaUser()
872 EXC(2b,5b,%1,%0) in do_entUnaUser()
873 EXC(3b,5b,$31,%0) in do_entUnaUser()
874 EXC(4b,5b,$31,%0) in do_entUnaUser()
888 "1: ldq_u %2,3(%5)\n" in do_entUnaUser()
889 "2: ldq_u %1,0(%5)\n" in do_entUnaUser()
890 " inslh %6,%5,%4\n" in do_entUnaUser()
891 " insll %6,%5,%3\n" in do_entUnaUser()
892 " msklh %2,%5,%2\n" in do_entUnaUser()
893 " mskll %1,%5,%1\n" in do_entUnaUser()
894 " or %2,%4,%2\n" in do_entUnaUser()
896 "3: stq_u %2,3(%5)\n" in do_entUnaUser()
897 "4: stq_u %1,0(%5)\n" in do_entUnaUser()
898 "5:\n" in do_entUnaUser()
899 EXC(1b,5b,%2,%0) in do_entUnaUser()
900 EXC(2b,5b,%1,%0) in do_entUnaUser()
901 EXC(3b,5b,$31,%0) in do_entUnaUser()
902 EXC(4b,5b,$31,%0) in do_entUnaUser()
916 "1: ldq_u %2,7(%5)\n" in do_entUnaUser()
917 "2: ldq_u %1,0(%5)\n" in do_entUnaUser()
918 " insqh %6,%5,%4\n" in do_entUnaUser()
919 " insql %6,%5,%3\n" in do_entUnaUser()
920 " mskqh %2,%5,%2\n" in do_entUnaUser()
921 " mskql %1,%5,%1\n" in do_entUnaUser()
922 " or %2,%4,%2\n" in do_entUnaUser()
924 "3: stq_u %2,7(%5)\n" in do_entUnaUser()
925 "4: stq_u %1,0(%5)\n" in do_entUnaUser()
926 "5:\n" in do_entUnaUser()
927 EXC(1b,5b,%2,%0) in do_entUnaUser()
928 EXC(2b,5b,%1,%0) in do_entUnaUser()
929 EXC(3b,5b,$31,%0) in do_entUnaUser()
930 EXC(4b,5b,$31,%0) in do_entUnaUser()
949 regs->pc -= 4; /* make pc point to faulting insn */ in do_entUnaUser()
957 struct mm_struct *mm = current->mm; in do_entUnaUser()
969 regs->pc -= 4; in do_entUnaUser()
977 /* Tell PAL-code what global pointer we want in the kernel. */ in trap_init()
987 wrent(entMM, 2); in trap_init()
990 wrent(entSys, 5); in trap_init()