Lines Matching refs:regs
13 static inline uint32_t get_ptreg(struct pt_regs *regs, uint32_t rx)
15 return rx == 15 ? regs->lr : *((uint32_t *)&(regs->a0) - 2 + rx);
18 static inline void put_ptreg(struct pt_regs *regs, uint32_t rx, uint32_t val)
21 regs->lr = val;
23 *((uint32_t *)&(regs->a0) - 2 + rx) = val;
95 static int ldh_c(struct pt_regs *regs, uint32_t rz, uint32_t addr)
106 put_ptreg(regs, rz, byte0);
117 static int sth_c(struct pt_regs *regs, uint32_t rz, uint32_t addr)
121 byte0 = byte1 = get_ptreg(regs, rz);
142 static int ldw_c(struct pt_regs *regs, uint32_t rz, uint32_t addr)
165 put_ptreg(regs, rz, byte0);
176 static int stw_c(struct pt_regs *regs, uint32_t rz, uint32_t addr)
180 byte0 = byte1 = byte2 = byte3 = get_ptreg(regs, rz);
205 extern int fixup_exception(struct pt_regs *regs);
212 void csky_alignment(struct pt_regs *regs)
222 if (!user_mode(regs))
232 ret = get_user(tmp, (uint16_t *)instruction_pointer(regs));
248 tmp = *(uint16_t *)instruction_pointer(regs);
263 addr = get_ptreg(regs, rx) + (imm << 1);
264 ret = ldh_c(regs, rz, addr);
267 addr = get_ptreg(regs, rx) + (imm << 2);
268 ret = ldw_c(regs, rz, addr);
271 addr = get_ptreg(regs, rx) + (imm << 1);
272 ret = sth_c(regs, rz, addr);
275 addr = get_ptreg(regs, rx) + (imm << 2);
276 ret = stw_c(regs, rz, addr);
283 regs->pc += 2;
288 if (!user_mode(regs)) {
289 if (fixup_exception(regs))
295 show_regs(regs);