Lines Matching refs:instr
201 do_alignment_finish_ldst(unsigned long addr, unsigned long instr, in do_alignment_finish_ldst() argument
204 if (!LDST_U_BIT(instr)) in do_alignment_finish_ldst()
207 if (!LDST_P_BIT(instr)) in do_alignment_finish_ldst()
210 if (!LDST_P_BIT(instr) || LDST_W_BIT(instr)) in do_alignment_finish_ldst()
211 regs->uregs[RN_BITS(instr)] = addr; in do_alignment_finish_ldst()
215 do_alignment_ldrhstrh(unsigned long addr, unsigned long instr, in do_alignment_ldrhstrh() argument
218 unsigned int rd = RD_BITS(instr); in do_alignment_ldrhstrh()
221 if ((instr & 0x4b003fe0) == 0x40000120) in do_alignment_ldrhstrh()
224 if (LDST_L_BIT(instr)) { in do_alignment_ldrhstrh()
229 if (instr & 0x80) in do_alignment_ldrhstrh()
241 get32_unaligned_check(regs->uregs[RD_BITS(instr)], addr); in do_alignment_ldrhstrh()
242 put32_unaligned_check(regs->uregs[RM_BITS(instr)], addr); in do_alignment_ldrhstrh()
250 do_alignment_ldrstr(unsigned long addr, unsigned long instr, in do_alignment_ldrstr() argument
253 unsigned int rd = RD_BITS(instr); in do_alignment_ldrstr()
255 if (!LDST_P_BIT(instr) && LDST_W_BIT(instr)) in do_alignment_ldrstr()
258 if (LDST_L_BIT(instr)) in do_alignment_ldrstr()
265 if (LDST_L_BIT(instr)) in do_alignment_ldrstr()
289 do_alignment_ldmstm(unsigned long addr, unsigned long instr, in do_alignment_ldmstm() argument
295 if (LDM_S_BIT(instr)) in do_alignment_ldmstm()
301 nr_regs = hweight16(REGMASK_BITS(instr)) * 4; in do_alignment_ldmstm()
303 rn = RN_BITS(instr); in do_alignment_ldmstm()
306 if (!LDST_U_BIT(instr)) in do_alignment_ldmstm()
309 if (!LDST_U_BIT(instr)) in do_alignment_ldmstm()
312 if (LDST_P_EQ_U(instr)) /* U = P */ in do_alignment_ldmstm()
322 instruction_pointer(regs), instr, addr, eaddr); in do_alignment_ldmstm()
326 if (LDM_H_BIT(instr)) in do_alignment_ldmstm()
331 for (regbits = REGMASK_BITS(instr), rd = 0; regbits; in do_alignment_ldmstm()
334 if (LDST_L_BIT(instr)) in do_alignment_ldmstm()
343 if (LDST_W_BIT(instr)) in do_alignment_ldmstm()
360 unsigned long instr, instrptr; in do_alignment() local
361 int (*handler) (unsigned long addr, unsigned long instr, in do_alignment()
367 instr = *(unsigned long *)instrptr; in do_alignment()
371 : "=&r"(instr) in do_alignment()
377 switch (CODING_BITS(instr)) { in do_alignment()
379 if (LDSTH_I_BIT(instr)) in do_alignment()
380 offset.un = (instr & 0x3e00) >> 4 | (instr & 31); in do_alignment()
382 offset.un = regs->uregs[RM_BITS(instr)]; in do_alignment()
390 offset.un = OFFSET_BITS(instr); in do_alignment()
395 offset.un = regs->uregs[RM_BITS(instr)]; in do_alignment()
397 unsigned int shiftval = SHIFT_BITS(instr); in do_alignment()
399 switch (SHIFT_TYPE(instr)) { in do_alignment()
435 type = handler(addr, instr, regs); in do_alignment()
441 do_alignment_finish_ldst(addr, instr, regs, offset); in do_alignment()
466 if ((instr & 0xe0000000) == CODING_COLS) { in do_alignment()
467 unsigned int fn = COLS_FN_BITS(instr); in do_alignment()
469 if (COLS_L_BITS(instr)) { in do_alignment()
510 "%08lx at [<%08lx>]\n", instr, instrptr); in do_alignment()