Enable SYSENTER/SYSEXIT together with x86-64 support, these instructions used by gentoo amd64 LiveCD image (at least it WRMSR to SYSENTER MSRs).

SYSENTER/SYSEXIT is not recognized in long mode but it could be used i any other mode without problem
This commit is contained in:
Stanislav Shwartsman 2005-03-29 21:59:44 +00:00
parent da9091f04a
commit 619942cf9a
2 changed files with 10 additions and 10 deletions

View File

@ -33,7 +33,7 @@ Changes in 2.2.pre2 (March 25, 2005):
generate #GP(0) (Stanislav)
- several protected mode fixes by Kevin Lawton
- CPU (x86-64) (Stanislav)
- CPU (x86-64)
- fetchdecode fixes for x86-64 and 3DNow! (Stanislav)
- fixed CF flag handling for SHL instruction in x86-64 mode (Stanislav)
- implemented CR8 register (aliased to APIC.TPR[7:4]) (Stanislav)
@ -43,10 +43,10 @@ Changes in 2.2.pre2 (March 25, 2005):
in long mode (Avi Kivity)
- ignore segment bases for all segments (except FS and GS) in long
mode (Avi Kivity)
- allow SYSENTER/SYSEXIT instructions together with x86-64 (Stanislav)
- FPU
- FPU (Stanislav Shwartsman)
- totally rewritten all FPU code based on softfloat library
(Stanislav Shwartsman)
- significantly improved accuracy of all floating point
instructions.
- implemented all missed P6 and PNI floating point instructions.

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode64.cc,v 1.73 2005-03-17 20:50:37 sshwarts Exp $
// $Id: fetchdecode64.cc,v 1.74 2005-03-29 21:59:44 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -812,8 +812,8 @@ static BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
/* 0F 31 */ { 0, &BX_CPU_C::RDTSC },
/* 0F 32 */ { 0, &BX_CPU_C::RDMSR },
/* 0F 33 */ { 0, &BX_CPU_C::RDPMC },
/* 0F 34 */ { 0, &BX_CPU_C::BxError },
/* 0F 35 */ { 0, &BX_CPU_C::BxError },
/* 0F 34 */ { 0, &BX_CPU_C::BxError }, // SYSENTER/SYSEXIT not recognized in long mode
/* 0F 35 */ { 0, &BX_CPU_C::BxError }, // SYSENTER/SYSEXIT not recognized in long mode
/* 0F 36 */ { 0, &BX_CPU_C::BxError },
/* 0F 37 */ { 0, &BX_CPU_C::BxError },
/* 0F 38 */ { 0, &BX_CPU_C::BxError },
@ -1334,8 +1334,8 @@ static BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
/* 0F 31 */ { 0, &BX_CPU_C::RDTSC },
/* 0F 32 */ { 0, &BX_CPU_C::RDMSR },
/* 0F 33 */ { 0, &BX_CPU_C::RDPMC },
/* 0F 34 */ { 0, &BX_CPU_C::BxError },
/* 0F 35 */ { 0, &BX_CPU_C::BxError },
/* 0F 34 */ { 0, &BX_CPU_C::BxError }, // SYSENTER/SYSEXIT not recognized in long mode
/* 0F 35 */ { 0, &BX_CPU_C::BxError }, // SYSENTER/SYSEXIT not recognized in long mode
/* 0F 36 */ { 0, &BX_CPU_C::BxError },
/* 0F 37 */ { 0, &BX_CPU_C::BxError },
/* 0F 38 */ { 0, &BX_CPU_C::BxError },
@ -1856,8 +1856,8 @@ static BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
/* 0F 31 */ { 0, &BX_CPU_C::RDTSC },
/* 0F 32 */ { 0, &BX_CPU_C::RDMSR },
/* 0F 33 */ { 0, &BX_CPU_C::RDPMC },
/* 0F 34 */ { 0, &BX_CPU_C::BxError },
/* 0F 35 */ { 0, &BX_CPU_C::BxError },
/* 0F 34 */ { 0, &BX_CPU_C::BxError }, // SYSENTER/SYSEXIT not recognized in long mode
/* 0F 35 */ { 0, &BX_CPU_C::BxError }, // SYSENTER/SYSEXIT not recognized in long mode
/* 0F 36 */ { 0, &BX_CPU_C::BxError },
/* 0F 37 */ { 0, &BX_CPU_C::BxError },
/* 0F 38 */ { 0, &BX_CPU_C::BxError },