summaryrefslogtreecommitdiffstats
path: root/sys/amd64/ia32
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2008-07-30 11:30:55 +0000
committerkib <kib@FreeBSD.org>2008-07-30 11:30:55 +0000
commit19bf5e280722ebf99ad48917f4b8d0af5dbd14e1 (patch)
tree4dc6b207d6260804b2d05dffc793c7d0907eeccd /sys/amd64/ia32
parent13b6ce6962eaf8de9b16589dde1fa06b5947d5f8 (diff)
downloadFreeBSD-src-19bf5e280722ebf99ad48917f4b8d0af5dbd14e1.zip
FreeBSD-src-19bf5e280722ebf99ad48917f4b8d0af5dbd14e1.tar.gz
Bring back the save/restore of the %ds, %es, %fs and %gs registers for
the 32bit images on amd64. Change the semantic of the PCB_32BIT pcb flag to request the context switch code to operate on the segment registers. Its previous meaning of saving or restoring the %gs base offset is assigned to the new PCB_GS32BIT flag. FreeBSD 32bit image activator sets the PCB_32BIT flag, while Linux 32bit emulation sets PCB_32BIT | PCB_GS32BIT. Reviewed by: peter MFC after: 2 weeks
Diffstat (limited to 'sys/amd64/ia32')
-rw-r--r--sys/amd64/ia32/ia32_signal.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/amd64/ia32/ia32_signal.c b/sys/amd64/ia32/ia32_signal.c
index 5849d0d..9e98656 100644
--- a/sys/amd64/ia32/ia32_signal.c
+++ b/sys/amd64/ia32/ia32_signal.c
@@ -741,6 +741,6 @@ ia32_setregs(td, entry, stack, ps_strings)
fpstate_drop(td);
/* Return via doreti so that we can change to a different %cs */
- pcb->pcb_flags |= PCB_FULLCTX;
+ pcb->pcb_flags |= PCB_FULLCTX | PCB_32BIT;
td->td_retval[1] = 0;
}
OpenPOWER on IntegriCloud