Lines Matching refs:regs
28 return state->regs ? &state->regs->ip : state->bp + 1;
167 unsigned long regs = (unsigned long)bp;
169 if (!(regs & 0x1))
172 return (struct pt_regs *)(regs & ~0x1);
177 unsigned long regs = (unsigned long)bp;
179 if (regs & 0x80000000)
182 return (struct pt_regs *)(regs | 0x80000000);
191 struct pt_regs *regs;
195 if (state->regs)
196 prev_frame_end = (void *)state->regs + sizeof(*state->regs);
201 regs = decode_frame_pointer(next_bp);
202 if (regs) {
203 frame = (unsigned long *)regs;
204 len = sizeof(*regs);
229 if (regs) {
230 state->regs = regs;
234 state->regs = NULL;
238 if (state->regs && user_mode(state->regs))
256 struct pt_regs *regs;
263 if (state->regs && user_mode(state->regs))
267 regs = task_pt_regs(state->task);
271 * partial regs at the end of their stack which were placed
272 * there by copy_thread(). But the regs don't have any
280 if (!user_mode(regs))
285 * syscall regs frame. Entry code doesn't encode the regs
288 state->regs = regs;
298 } else if (state->regs) {
299 next_bp = (unsigned long *)state->regs->bp;
329 if (state->regs &&
330 state->regs->sp >= (unsigned long)last_aligned_frame(state) &&
331 state->regs->sp < (unsigned long)task_pt_regs(state->task))
344 if (state->regs) {
346 "WARNING: kernel stack regs at %p in %s:%d has bad 'bp' value %p\n",
347 state->regs, state->task->comm,
364 struct pt_regs *regs, unsigned long *first_frame)
370 state->got_irq = (regs);
372 /* Don't even attempt to start from user mode regs: */
373 if (regs && user_mode(regs)) {
378 bp = get_frame_pointer(task, regs);
389 if (regs && regs->ip == 0 && (unsigned long *)regs->sp >= first_frame) {
391 bp = ((unsigned long *)regs->sp) - 1;
401 * (first_frame) or indirectly (regs->sp) to indicate which stack frame