diff options
author | Robert Morris <[email protected]> | 2019-06-05 11:42:03 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-06-05 11:42:03 -0400 |
commit | f1a727b971a59bab6025b4c4111342c27356ca40 (patch) | |
tree | d22d52c613bfc003e6fb75b5d137aeff9d954201 /entry.S | |
parent | ec3d3a1fceee437c640f9c5c05fc517edfb1899e (diff) | |
download | xv6-labs-f1a727b971a59bab6025b4c4111342c27356ca40.tar.gz xv6-labs-f1a727b971a59bab6025b4c4111342c27356ca40.tar.bz2 xv6-labs-f1a727b971a59bab6025b4c4111342c27356ca40.zip |
start at support for multiple CPUs
Diffstat (limited to 'entry.S')
-rw-r--r-- | entry.S | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -10,12 +10,15 @@ .section .text .globl _entry _entry: - # set up a stack for C; stack0 is declared in start. + # set up a stack for C. + # stack0 is declared in start, + # with 4096 bytes per CPU. la sp, stack0 - addi sp, sp, 1024 - addi sp, sp, 1024 - addi sp, sp, 1024 - addi sp, sp, 1024 + li a0, 1024*4 + csrr a1, mhartid + addi a1, a1, 1 + mul a0, a0, a1 + add sp, sp, a0 # jump to mstart() in start.c call mstart junk: |