You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
794 B
42 lines
794 B
# Context switch |
|
# |
|
# void swtch(struct context *old, struct context *new); |
|
# |
|
# Save current registers in old. Load from new. |
|
|
|
|
|
.globl swtch |
|
swtch: |
|
sd ra, 0(a0) |
|
sd sp, 8(a0) |
|
sd s0, 16(a0) |
|
sd s1, 24(a0) |
|
sd s2, 32(a0) |
|
sd s3, 40(a0) |
|
sd s4, 48(a0) |
|
sd s5, 56(a0) |
|
sd s6, 64(a0) |
|
sd s7, 72(a0) |
|
sd s8, 80(a0) |
|
sd s9, 88(a0) |
|
sd s10, 96(a0) |
|
sd s11, 104(a0) |
|
|
|
ld ra, 0(a1) |
|
ld sp, 8(a1) |
|
ld s0, 16(a1) |
|
ld s1, 24(a1) |
|
ld s2, 32(a1) |
|
ld s3, 40(a1) |
|
ld s4, 48(a1) |
|
ld s5, 56(a1) |
|
ld s6, 64(a1) |
|
ld s7, 72(a1) |
|
ld s8, 80(a1) |
|
ld s9, 88(a1) |
|
ld s10, 96(a1) |
|
ld s11, 104(a1) |
|
|
|
ret |
|
|
|
|
|
|