Lines Matching defs:inst
619 unsigned short inst = 0;
628 get_user(inst, ((unsigned short *) regs->pc));
630 inst &= 0xf000;
633 if ((inst == 0xf000) || (inst == 0x4000))
671 unsigned short inst = 0;
674 get_user(inst, (unsigned short*)regs->pc);
676 err = do_fpu_inst(inst, regs);
678 regs->pc += instruction_size(inst);
681 /* not a FPU inst. */
703 static int emulate_branch(unsigned short inst, struct pt_regs *regs)
716 if (((inst & 0xf000) == 0xb000) || /* bsr */
717 ((inst & 0xf0ff) == 0x0003) || /* bsrf */
718 ((inst & 0xf0ff) == 0x400b)) /* jsr */
721 if ((inst & 0xfd00) == 0x8d00) { /* bfs, bts */
722 regs->pc += SH_PC_8BIT_OFFSET(inst);
726 if ((inst & 0xe000) == 0xa000) { /* bra, bsr */
727 regs->pc += SH_PC_12BIT_OFFSET(inst);
731 if ((inst & 0xf0df) == 0x0003) { /* braf, bsrf */
732 regs->pc += regs->regs[(inst & 0x0f00) >> 8] + 4;
736 if ((inst & 0xf0df) == 0x400b) { /* jmp, jsr */
737 regs->pc = regs->regs[(inst & 0x0f00) >> 8];
741 if ((inst & 0xffff) == 0x000b) { /* rts */
755 unsigned long inst;
762 get_user(inst, (unsigned short *)regs->pc + 1);
763 if (!do_fpu_inst(inst, regs)) {
764 get_user(inst, (unsigned short *)regs->pc);
765 if (!emulate_branch(inst, regs))
769 /* not a FPU inst. */
772 inst = lookup_exception_vector();
776 die_if_no_fixup("illegal slot instruction", regs, inst);