提交 d26025d1 创建 作者: Russ Cox's avatar Russ Cox

can set just %gs now.

上级 7e0cc8e3
...@@ -72,10 +72,9 @@ ksegment(void) ...@@ -72,10 +72,9 @@ ksegment(void)
c->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0); c->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0);
c->gdt[SEG_KCPU] = SEG(STA_W, &c->cpu, 8, 0); c->gdt[SEG_KCPU] = SEG(STA_W, &c->cpu, 8, 0);
lgdt(c->gdt, sizeof(c->gdt)); lgdt(c->gdt, sizeof(c->gdt));
loadfsgs(SEG_KCPU << 3); loadgs(SEG_KCPU << 3);
// Initialize cpu-local storage. // Initialize cpu-local storage.
asm volatile(""); // Do not let gcc reorder across this line.
cpu = c; cpu = c;
proc = 0; proc = 0;
} }
......
...@@ -104,9 +104,8 @@ xchg(volatile uint *addr, uint newval) ...@@ -104,9 +104,8 @@ xchg(volatile uint *addr, uint newval)
} }
static inline void static inline void
loadfsgs(ushort v) loadgs(ushort v)
{ {
asm volatile("movw %0, %%fs" : : "r" (v));
asm volatile("movw %0, %%gs" : : "r" (v)); asm volatile("movw %0, %%gs" : : "r" (v));
} }
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论