Lines Matching refs:regs

151 static unsigned long fetch_reg(unsigned int reg, struct pt_regs *regs)
156 return (!reg ? 0 : regs->u_regs[reg]);
158 fp = regs->u_regs[UREG_FP];
160 if (regs->tstate & TSTATE_PRIV) {
177 struct pt_regs *regs)
179 unsigned long fp = regs->u_regs[UREG_FP];
182 BUG_ON(regs->tstate & TSTATE_PRIV);
196 struct pt_regs *regs)
199 BUG_ON(regs->tstate & TSTATE_PRIV);
201 return &regs->u_regs[reg];
204 static void store_reg(struct pt_regs *regs, unsigned long val, unsigned long rd)
207 unsigned long *rd_kern = __fetch_reg_addr_kern(rd, regs);
211 unsigned long __user *rd_user = __fetch_reg_addr_user(rd, regs);
213 if (!test_thread_64bit_stack(regs->u_regs[UREG_FP]))
226 return *(unsigned long *) &f->regs[insn_regnum];
235 return (unsigned long *) &f->regs[insn_regnum];
241 return f->regs[insn_regnum];
247 return &f->regs[insn_regnum];
294 static void edge(struct pt_regs *regs, unsigned int insn, unsigned int opf)
300 orig_rs1 = rs1 = fetch_reg(RS1(insn), regs);
301 orig_rs2 = rs2 = fetch_reg(RS2(insn), regs);
350 store_reg(regs, rd_val, RD(insn));
366 tstate = regs->tstate & ~(TSTATE_XCC | TSTATE_ICC);
367 regs->tstate = tstate | (ccr << 32UL);
372 static void array(struct pt_regs *regs, unsigned int insn, unsigned int opf)
378 rs1 = fetch_reg(RS1(insn), regs);
379 rs2 = fetch_reg(RS2(insn), regs);
403 store_reg(regs, rd_val, RD(insn));
406 static void bmask(struct pt_regs *regs, unsigned int insn)
411 rs1 = fetch_reg(RS1(insn), regs);
412 rs2 = fetch_reg(RS2(insn), regs);
415 store_reg(regs, rd_val, RD(insn));
422 static void bshuffle(struct pt_regs *regs, unsigned int insn)
448 static void pdist(struct pt_regs *regs, unsigned int insn)
477 static void pformat(struct pt_regs *regs, unsigned int insn, unsigned int opf)
589 static void pmul(struct pt_regs *regs, unsigned int insn, unsigned int opf)
705 static void pcmp(struct pt_regs *regs, unsigned int insn, unsigned int opf)
798 store_reg(regs, rd_val, RD(insn));
804 int vis_emul(struct pt_regs *regs, unsigned int insn)
806 unsigned long pc = regs->tpc;
809 BUG_ON(regs->tstate & TSTATE_PRIV);
811 perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, regs, 0);
832 pformat(regs, insn, opf);
843 pmul(regs, insn, opf);
855 pcmp(regs, insn, opf);
871 edge(regs, insn, opf);
876 pdist(regs, insn);
883 array(regs, insn, opf);
888 bmask(regs, insn);
892 bshuffle(regs, insn);
896 regs->tpc = regs->tnpc;
897 regs->tnpc += 4;