Lines Matching refs:inst

573 	unsigned short inst = 0;  in is_dsp_inst()  local
582 get_user(inst, ((unsigned short *) regs->pc)); in is_dsp_inst()
584 inst &= 0xf000; in is_dsp_inst()
587 if ((inst == 0xf000) || (inst == 0x4000)) in is_dsp_inst()
621 unsigned short inst = 0; in do_reserved_inst() local
624 get_user(inst, (unsigned short*)regs->pc); in do_reserved_inst()
626 err = do_fpu_inst(inst, regs); in do_reserved_inst()
628 regs->pc += instruction_size(inst); in do_reserved_inst()
653 static int emulate_branch(unsigned short inst, struct pt_regs *regs) in emulate_branch() argument
666 if (((inst & 0xf000) == 0xb000) || /* bsr */ in emulate_branch()
667 ((inst & 0xf0ff) == 0x0003) || /* bsrf */ in emulate_branch()
668 ((inst & 0xf0ff) == 0x400b)) /* jsr */ in emulate_branch()
671 if ((inst & 0xfd00) == 0x8d00) { /* bfs, bts */ in emulate_branch()
672 regs->pc += SH_PC_8BIT_OFFSET(inst); in emulate_branch()
676 if ((inst & 0xe000) == 0xa000) { /* bra, bsr */ in emulate_branch()
677 regs->pc += SH_PC_12BIT_OFFSET(inst); in emulate_branch()
681 if ((inst & 0xf0df) == 0x0003) { /* braf, bsrf */ in emulate_branch()
682 regs->pc += regs->regs[(inst & 0x0f00) >> 8] + 4; in emulate_branch()
686 if ((inst & 0xf0df) == 0x400b) { /* jmp, jsr */ in emulate_branch()
687 regs->pc = regs->regs[(inst & 0x0f00) >> 8]; in emulate_branch()
691 if ((inst & 0xffff) == 0x000b) { /* rts */ in emulate_branch()
703 unsigned long inst; in do_illegal_slot_inst() local
710 get_user(inst, (unsigned short *)regs->pc + 1); in do_illegal_slot_inst()
711 if (!do_fpu_inst(inst, regs)) { in do_illegal_slot_inst()
712 get_user(inst, (unsigned short *)regs->pc); in do_illegal_slot_inst()
713 if (!emulate_branch(inst, regs)) in do_illegal_slot_inst()
720 inst = lookup_exception_vector(); in do_illegal_slot_inst()
724 die_if_no_fixup("illegal slot instruction", regs, inst); in do_illegal_slot_inst()