• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/arch/s390/kernel/

Lines Matching defs:ainsn

48 	if (!(p->ainsn.insn = get_insn_slot()))
51 memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
53 get_instruction_type(&p->ainsn);
79 void __kprobes get_instruction_type(struct arch_specific_insn *ainsn)
82 ainsn->fixup = FIXUP_PSW_NORMAL;
85 ainsn->reg = (*ainsn->insn & 0xf0) >> 4;
88 switch (*(__u8 *) (ainsn->insn) >> 4) {
90 ainsn->ilen = 2;
94 ainsn->ilen = 4;
97 ainsn->ilen = 6;
101 switch (*(__u8 *) ainsn->insn) {
104 ainsn->fixup = FIXUP_RETURN_REGISTER;
106 if ((*ainsn->insn & 0x0f) == 0)
107 ainsn->fixup |= FIXUP_BRANCH_NOT_TAKEN;
111 ainsn->fixup = FIXUP_BRANCH_NOT_TAKEN;
115 ainsn->fixup = FIXUP_RETURN_REGISTER;
121 ainsn->fixup = FIXUP_BRANCH_NOT_TAKEN;
124 ainsn->fixup = FIXUP_NOT_REQUIRED;
127 if (*(((__u8 *) ainsn->insn) + 1) == 0xb2) {
128 ainsn->fixup = FIXUP_NOT_REQUIRED;
132 if ((*ainsn->insn & 0x0f) == 0x05) {
133 ainsn->fixup |= FIXUP_RETURN_REGISTER;
137 if ((*ainsn->insn & 0x0f) == 0x00 /* larl */
138 || (*ainsn->insn & 0x0f) == 0x05) /* brasl */
139 ainsn->fixup |= FIXUP_RETURN_REGISTER;
142 if (*(((__u8 *) ainsn->insn) + 5 ) == 0x44 || /* bxhg */
143 *(((__u8 *) ainsn->insn) + 5) == 0x45) {/* bxleg */
144 ainsn->fixup = FIXUP_BRANCH_NOT_TAKEN;
148 if (*(((__u8 *) ainsn->insn) + 5) == 0x46) {
149 ainsn->fixup = FIXUP_BRANCH_NOT_TAKEN;
222 free_insn_slot(p->ainsn.insn, 0);
231 regs->psw.addr = (unsigned long)p->ainsn.insn | PSW_ADDR_AMODE;
235 kprobe_per_regs[0].starting_addr = (unsigned long)p->ainsn.insn;
236 kprobe_per_regs[0].ending_addr = (unsigned long)p->ainsn.insn + 1;
303 *p->ainsn.insn == BREAKPOINT_INSTRUCTION) {
441 * copy is p->ainsn.insn.
449 if (p->ainsn.fixup & FIXUP_PSW_NORMAL)
452 (unsigned long)p->ainsn.insn);
454 if (p->ainsn.fixup & FIXUP_BRANCH_NOT_TAKEN)
456 (unsigned long)p->ainsn.insn == p->ainsn.ilen)
457 regs->psw.addr = (unsigned long)p->addr + p->ainsn.ilen;
459 if (p->ainsn.fixup & FIXUP_RETURN_REGISTER)
460 regs->gprs[p->ainsn.reg] = ((unsigned long)p->addr +
461 (regs->gprs[p->ainsn.reg] -
462 (unsigned long)p->ainsn.insn))