sp                 31 kernel/exec.c    uint64 argc, sz = 0, sp, ustack[MAXARG], stackbase;
sp                 93 kernel/exec.c    sp = sz;
sp                 94 kernel/exec.c    stackbase = sp - USERSTACK*PGSIZE;
sp                101 kernel/exec.c      sp -= strlen(argv[argc]) + 1;
sp                102 kernel/exec.c      sp -= sp % 16; // riscv sp must be 16-byte aligned
sp                103 kernel/exec.c      if(sp < stackbase)
sp                105 kernel/exec.c      if(copyout(pagetable, sp, argv[argc], strlen(argv[argc]) + 1) < 0)
sp                107 kernel/exec.c      ustack[argc] = sp;
sp                112 kernel/exec.c    sp -= (argc+1) * sizeof(uint64);
sp                113 kernel/exec.c    sp -= sp % 16;
sp                114 kernel/exec.c    if(sp < stackbase)
sp                116 kernel/exec.c    if(copyout(pagetable, sp, (char *)ustack, (argc+1)*sizeof(uint64)) < 0)
sp                122 kernel/exec.c    p->trapframe->a1 = sp;
sp                135 kernel/exec.c    p->trapframe->sp = sp; // initial stack pointer
sp                147 kernel/proc.c    p->context.sp = p->kstack + PGSIZE;
sp                  4 kernel/proc.h    uint64 sp;
sp                 50 kernel/proc.h    /*  48 */ uint64 sp;
sp               2415 user/usertests.c     char *sp = (char *) r_sp();
sp               2416 user/usertests.c     sp -= USERSTACK*PGSIZE;
sp               2418 user/usertests.c     printf("%s: stacktest: read below stack %d\n", s, *sp);