summaryrefslogtreecommitdiff
path: root/src/arch/x86/linux
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-12-01 23:00:15 -0800
committerGabe Black <gblack@eecs.umich.edu>2007-12-01 23:00:15 -0800
commitbfc62d1a7035dfdbad405c0ddbd897ea1174360d (patch)
tree1fa01d23200823c1e162d28303254b81bccea6f3 /src/arch/x86/linux
parent7433032b39828ccff9ad5ed0e3ed95f752fc269a (diff)
downloadgem5-bfc62d1a7035dfdbad405c0ddbd897ea1174360d.tar.xz
X86: Separate the effective seg base and the "hidden" seg base.
--HG-- extra : convert_revision : 5fcb8d94dbab7a7d6fe797277a5856903c885ad4
Diffstat (limited to 'src/arch/x86/linux')
-rw-r--r--src/arch/x86/linux/syscalls.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/arch/x86/linux/syscalls.cc b/src/arch/x86/linux/syscalls.cc
index c6b2fbb66..ae2ac243b 100644
--- a/src/arch/x86/linux/syscalls.cc
+++ b/src/arch/x86/linux/syscalls.cc
@@ -103,6 +103,7 @@ archPrctlFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
//Each of these valid options should actually check addr.
case SetFS:
tc->setMiscRegNoEffect(MISCREG_FS_BASE, addr);
+ tc->setMiscRegNoEffect(MISCREG_FS_EFF_BASE, addr);
return 0;
case GetFS:
fsBase = tc->readMiscRegNoEffect(MISCREG_FS_BASE);
@@ -110,6 +111,7 @@ archPrctlFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
return 0;
case SetGS:
tc->setMiscRegNoEffect(MISCREG_GS_BASE, addr);
+ tc->setMiscRegNoEffect(MISCREG_GS_EFF_BASE, addr);
return 0;
case GetGS:
gsBase = tc->readMiscRegNoEffect(MISCREG_GS_BASE);