Lines Matching refs:stackptr
118 i386_validate_stackptr(vm_offset_t stackptr)
122 if (!stackptr || (stackptr & 0x3))
127 if (!kvtophys(stackptr))
133 if (((PAGE_SIZE - (stackptr & PAGE_MASK)) < i386_RETURN_OFFSET) &&
134 !kvtophys(stackptr + i386_RETURN_OFFSET))
152 vm_offset_t stackptr, stackptr_prev;
156 __asm__ volatile("mflr %0" : "=r" (stackptr));
157 bt[i++] = (void *) stackptr;
159 __asm__ volatile("mr %0,r1" : "=r" (stackptr));
161 // Validate we have a reasonable stackptr
162 if ( !(minstackaddr <= stackptr && stackptr < maxstackaddr)
163 || (stackptr & 3))
166 stackptr_prev = stackptr;
167 stackptr = mem[stackptr_prev >> 2];
168 if ((stackptr_prev ^ stackptr) > 8 * 1024) // Sanity check
171 vm_offset_t addr = mem[(stackptr >> 2) + 2];
182 vm_offset_t stackptr, stackptr_prev, raddr;
185 __asm__ volatile("movl %%ebp, %0" : "=m" (stackptr));
187 if (!i386_validate_stackptr(stackptr))
190 raddr = *((vm_offset_t *) (stackptr + i386_RETURN_OFFSET));
198 stackptr_prev = stackptr;
199 stackptr = *((vm_offset_t *) stackptr_prev);
201 if (!i386_validate_stackptr(stackptr))
204 if (stackptr < stackptr_prev)
207 if ((stackptr_prev ^ stackptr) > SANE_i386_FRAME_SIZE)
210 raddr = *((vm_offset_t *) (stackptr + i386_RETURN_OFFSET));