@@ -8196,7 +8196,7 @@ sys/src/9/pc/sdiahci.c - 664 sys sys 1213134393 39005
sys/src/9/pc/sdmv50xx.c - 664 sys sys 1204232564 34031
sys/src/9/pc/sdmylex.c - 664 sys sys 1189229947 28395
sys/src/9/pc/sdscsi.c - 664 sys sys 1186618532 7957
-sys/src/9/pc/trap.c - 664 sys sys 1197062171 21897
+sys/src/9/pc/trap.c - 664 sys sys 1215712014 22027
sys/src/9/pc/uartaxp.c - 664 sys sys 1207419955 18931
sys/src/9/pc/uartaxp.i - 664 sys sys 1155243528 111326
sys/src/9/pc/uarti8250.c - 664 sys sys 1177676872 13957
@@ -20044,3 +20044,4 @@
1215545404 0 c 386/bin/aux/vmware - 775 sys sys 1215545344 532
1215621004 0 c sys/src/cmd/du.c - 664 sys sys 1215620597 5427
1215635404 0 c 386/bin/du - 775 sys sys 1215633035 76279
+1215712804 0 c sys/src/9/pc/trap.c - 664 sys sys 1215712014 22027
@@ -968,16 +968,22 @@ userpc(void)
void
setregisters(Ureg* ureg, char* pureg, char* uva, int n)
{
- ulong flags;
- ulong cs;
- ulong ss;
+ ulong cs, ds, es, flags, fs, gs, ss;
+ ss = ureg->ss;
flags = ureg->flags;
cs = ureg->cs;
- ss = ureg->ss;
+ ds = ureg->ds;
+ es = ureg->es;
+ fs = ureg->fs;
+ gs = ureg->gs;
memmove(pureg, uva, n);
- ureg->flags = (ureg->flags & 0x00FF) | (flags & 0xFF00);
+ ureg->gs = gs;
+ ureg->fs = fs;
+ ureg->es = es;
+ ureg->ds = ds;
ureg->cs = cs;
+ ureg->flags = (ureg->flags & 0x00FF) | (flags & 0xFF00);
ureg->ss = ss;
}