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:
parent
da9091f04a
commit
619942cf9a
@ -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.
|
||||
|
@ -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 },
|
||||
|
Loading…
x
Reference in New Issue
Block a user