rename accessor for opcodeReg() in instruction

This commit is contained in:
Stanislav Shwartsman 2010-12-06 21:45:56 +00:00
parent fab6cfdf98
commit d60b7c0919
18 changed files with 123 additions and 61 deletions

View File

@ -1,3 +1,73 @@
Changes after 2.4.5 release:
- CPU and internal debugger
- Implemented Process Context ID (PCID) feature
- Implemented FS/GS BASE access instructions support
(according to document from http://software.intel.com/en-us/avx/)
- Bugfixes for CPU emulation correctness and stability
- Fixed failures on Big Endian hosts !
- Print detailed page walk information and attributes in
internal debugger 'page' command
- Updated/Fixed instrumentation callbacks
- Configure and compile
- Added ability to configure CPUID stepping through .bochsrc.
The default stepping value is 3.
- Added ability to disable MONITOR/MWAIT support through .bochsrc
CPUID option. The option is available only if compiled with
--enable-monitor-mwait configure option.
- Determine and select max physical address size automatically at
configure time:
- 32-bit physical address for 386/486 guests
- 36-bit physical address for PSE-36 enabled Pentium guest
- 40-bit physical address for PAE enabled P6 or later guests
- Update config.guess/config.sub scripts to May 2010 revisions.
- Added Bochs compilation timestamp after Bochs version string.
- GUI and display libraries (Volker)
- Added new .bochsrc option to select mouse capture toggle method.
In addition to the default Bochs method using the CTRL key and the
middle mouse button there are now the choices:
- CTRL+F10 (like DOSBox)
- CTRL+ALT (like QEMU)
- F12 (replaces win32 'legacyF12' option)
- ROM BIOS
- Support for up to 2M ROM BIOS images
- I/O Devices
- Fixes for emulated DHCP in eth_vnet (patch from @SF tracker)
- Added write protect option for floppy drives (based on @SF patch by Ben Lunt)
- SF patches applied
[1539417] write protect for floppy drives by Ben Lunt
[2862322] fixes for emulated DHCP in eth_vnet
- these S.F. bugs were closed/fixed
[3111577] No "back" option in log settings
[3108422] Timing window in NE2K emulation
[3084390] Bochs won't load floppy plugin right on startup
[3043174] Docbook use of '_' build failure
[3085140] Ia_arpl_Ew_Rw definition of error
[3078995] ROL/ROR/SHL/SHR modeling wrong when dest reg is 32 bit
[2864794] BX_INSTR_OPCODE in "cpu_loop" causes crash in x86_64 host
[2884071] [AIX host] prefetch: EIP [00010000] > CS.limit [0000ffff]
[3053542] 64 bit mode: far-jmp instruction is error
[3011112] error compile vs2008/2010 with X2APIC
[3002017] compile error with vs 2010
[3009767] guest RFLAGS.IF blocks externel interrupt in VMX guest mode
[2964655] VMX not enabled in MSR IA32_FEATURE_CONTROL
[3005865] IDT show bug
[3001637] CMOS MAP register meaning error
[2994370] Cannot build with 3DNow support
- these S.F. feature requests were closed/implemented
[1062553] select mouse (de)activation in bochsrc
[2930633] legacy mouse capture key : not specific enough
[2930679] Let user change mouse capture control key
[2803538] Show flags for pages when using "info tab"
-------------------------------------------------------------------------
Changes in 2.4.5 (April 25, 2010): Changes in 2.4.5 (April 25, 2010):
Brief summary : Brief summary :

View File

@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: access.cc,v 1.128 2010-10-18 22:19:44 sshwarts Exp $ // $Id: access.cc,v 1.129 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2005-2009 The Bochs Project // Copyright (C) 2005-2010 The Bochs Project
// //
// This library is free software; you can redistribute it and/or // This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public // modify it under the terms of the GNU Lesser General Public

View File

@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: access32.cc,v 1.29 2010-05-02 17:01:15 sshwarts Exp $ // $Id: access32.cc,v 1.30 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2008-2009 Stanislav Shwartsman // Copyright (c) 2008-2010 Stanislav Shwartsman
// Written by Stanislav Shwartsman [sshwarts at sourceforge net] // Written by Stanislav Shwartsman [sshwarts at sourceforge net]
// //
// This library is free software; you can redistribute it and/or // This library is free software; you can redistribute it and/or

View File

@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: access64.cc,v 1.27 2010-03-14 15:51:26 sshwarts Exp $ // $Id: access64.cc,v 1.28 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2008-2009 Stanislav Shwartsman // Copyright (c) 2008-2010 Stanislav Shwartsman
// Written by Stanislav Shwartsman [sshwarts at sourceforge net] // Written by Stanislav Shwartsman [sshwarts at sourceforge net]
// //
// This library is free software; you can redistribute it and/or // This library is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: arith16.cc,v 1.74 2010-02-26 11:44:50 sshwarts Exp $ // $Id: arith16.cc,v 1.75 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -26,13 +26,13 @@
void BX_CPP_AttrRegparmN(1) BX_CPU_C::INC_RX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::INC_RX(bxInstruction_c *i)
{ {
Bit16u rx = ++BX_READ_16BIT_REG(i->opcodeReg()); Bit16u rx = ++BX_READ_16BIT_REG(i->rm());
SET_FLAGS_OSZAPC_INC_16(rx); SET_FLAGS_OSZAPC_INC_16(rx);
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::DEC_RX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::DEC_RX(bxInstruction_c *i)
{ {
Bit16u rx = --BX_READ_16BIT_REG(i->opcodeReg()); Bit16u rx = --BX_READ_16BIT_REG(i->rm());
SET_FLAGS_OSZAPC_DEC_16(rx); SET_FLAGS_OSZAPC_DEC_16(rx);
} }

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: arith32.cc,v 1.86 2010-03-14 15:51:26 sshwarts Exp $ // $Id: arith32.cc,v 1.87 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -32,16 +32,16 @@
void BX_CPP_AttrRegparmN(1) BX_CPU_C::INC_ERX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::INC_ERX(bxInstruction_c *i)
{ {
Bit32u erx = ++BX_READ_32BIT_REG(i->opcodeReg()); Bit32u erx = ++BX_READ_32BIT_REG(i->rm());
SET_FLAGS_OSZAPC_INC_32(erx); SET_FLAGS_OSZAPC_INC_32(erx);
BX_CLEAR_64BIT_HIGH(i->opcodeReg()); BX_CLEAR_64BIT_HIGH(i->rm());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::DEC_ERX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::DEC_ERX(bxInstruction_c *i)
{ {
Bit32u erx = --BX_READ_32BIT_REG(i->opcodeReg()); Bit32u erx = --BX_READ_32BIT_REG(i->rm());
SET_FLAGS_OSZAPC_DEC_32(erx); SET_FLAGS_OSZAPC_DEC_32(erx);
BX_CLEAR_64BIT_HIGH(i->opcodeReg()); BX_CLEAR_64BIT_HIGH(i->rm());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::ADD_EdGdM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::ADD_EdGdM(bxInstruction_c *i)

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: bit.cc,v 1.69 2010-09-20 20:43:16 sshwarts Exp $ // $Id: bit.cc,v 1.70 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -239,22 +239,22 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::SETNLE_EbR(bxInstruction_c *i)
void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_RX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_RX(bxInstruction_c *i)
{ {
BX_ERROR(("BSWAP with 16-bit opsize: undefined behavior !")); BX_ERROR(("BSWAP with 16-bit opsize: undefined behavior !"));
BX_WRITE_16BIT_REG(i->opcodeReg(), 0); BX_WRITE_16BIT_REG(i->rm(), 0);
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_ERX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_ERX(bxInstruction_c *i)
{ {
Bit32u val32 = BX_READ_32BIT_REG(i->opcodeReg()); Bit32u val32 = BX_READ_32BIT_REG(i->rm());
BX_WRITE_32BIT_REGZ(i->opcodeReg(), bx_bswap32(val32)); BX_WRITE_32BIT_REGZ(i->rm(), bx_bswap32(val32));
} }
#if BX_SUPPORT_X86_64 #if BX_SUPPORT_X86_64
void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_RRX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_RRX(bxInstruction_c *i)
{ {
Bit64u val64 = BX_READ_64BIT_REG(i->opcodeReg()); Bit64u val64 = BX_READ_64BIT_REG(i->rm());
BX_WRITE_64BIT_REG(i->opcodeReg(), bx_bswap64(val64)); BX_WRITE_64BIT_REG(i->rm(), bx_bswap64(val64));
} }
#endif #endif

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: data_xfer16.cc,v 1.69 2010-05-02 15:11:39 sshwarts Exp $ // $Id: data_xfer16.cc,v 1.70 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -26,14 +26,14 @@
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RXIw(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RXIw(bxInstruction_c *i)
{ {
BX_WRITE_16BIT_REG(i->opcodeReg(), i->Iw()); BX_WRITE_16BIT_REG(i->rm(), i->Iw());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_RXAX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_RXAX(bxInstruction_c *i)
{ {
Bit16u temp16 = AX; Bit16u temp16 = AX;
AX = BX_READ_16BIT_REG(i->opcodeReg()); AX = BX_READ_16BIT_REG(i->rm());
BX_WRITE_16BIT_REG(i->opcodeReg(), temp16); BX_WRITE_16BIT_REG(i->rm(), temp16);
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_EwGwM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_EwGwM(bxInstruction_c *i)

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: data_xfer32.cc,v 1.66 2010-02-26 11:44:50 sshwarts Exp $ // $Id: data_xfer32.cc,v 1.67 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -32,18 +32,18 @@
void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_ERXEAX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_ERXEAX(bxInstruction_c *i)
{ {
#if BX_SUPPORT_X86_64 #if BX_SUPPORT_X86_64
if (i->opcodeReg() == 0) // 'xchg eax, eax' is NOP even in 64-bit mode if (i->rm() == 0) // 'xchg eax, eax' is NOP even in 64-bit mode
return; return;
#endif #endif
Bit32u temp32 = EAX; Bit32u temp32 = EAX;
RAX = BX_READ_32BIT_REG(i->opcodeReg()); RAX = BX_READ_32BIT_REG(i->rm());
BX_WRITE_32BIT_REGZ(i->opcodeReg(), temp32); BX_WRITE_32BIT_REGZ(i->rm(), temp32);
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_ERXId(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_ERXId(bxInstruction_c *i)
{ {
BX_WRITE_32BIT_REGZ(i->opcodeReg(), i->Id()); BX_WRITE_32BIT_REGZ(i->rm(), i->Id());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV32_EdGdM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV32_EdGdM(bxInstruction_c *i)

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: data_xfer64.cc,v 1.44 2009-12-04 16:53:12 sshwarts Exp $ // $Id: data_xfer64.cc,v 1.45 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -29,13 +29,13 @@
void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_RRXRAX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_RRXRAX(bxInstruction_c *i)
{ {
Bit64u temp64 = RAX; Bit64u temp64 = RAX;
RAX = BX_READ_64BIT_REG(i->opcodeReg()); RAX = BX_READ_64BIT_REG(i->rm());
BX_WRITE_64BIT_REG(i->opcodeReg(), temp64); BX_WRITE_64BIT_REG(i->rm(), temp64);
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RRXIq(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RRXIq(bxInstruction_c *i)
{ {
BX_WRITE_64BIT_REG(i->opcodeReg(), i->Iq()); BX_WRITE_64BIT_REG(i->rm(), i->Iq());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV64_GdEdM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV64_GdEdM(bxInstruction_c *i)

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: data_xfer8.cc,v 1.47 2010-09-24 21:15:16 sshwarts Exp $ // $Id: data_xfer8.cc,v 1.48 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -26,12 +26,12 @@
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RLIb(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RLIb(bxInstruction_c *i)
{ {
BX_WRITE_8BIT_REGx(i->opcodeReg(), i->extend8bitL(), i->Ib()); BX_WRITE_8BIT_REGx(i->rm(), i->extend8bitL(), i->Ib());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RHIb(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RHIb(bxInstruction_c *i)
{ {
BX_WRITE_8BIT_REGH(i->opcodeReg() & 0x03, i->Ib()); BX_WRITE_8BIT_REGH(i->rm() & 0x03, i->Ib());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_EbGbM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_EbGbM(bxInstruction_c *i)

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode.cc,v 1.281 2010-10-18 22:19:45 sshwarts Exp $ // $Id: fetchdecode.cc,v 1.282 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2010 The Bochs Project // Copyright (C) 2001-2010 The Bochs Project
@ -2669,7 +2669,7 @@ modrm_done:
OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix-1]); OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix-1]);
ia_opcode = OpcodeInfoPtr->IA; ia_opcode = OpcodeInfoPtr->IA;
i->setOpcodeReg(b1 & 7); i->setRm(b1 & 7);
} }
if (lock) { // lock prefix invalid opcode if (lock) { // lock prefix invalid opcode

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode64.cc,v 1.277 2010-10-18 22:19:45 sshwarts Exp $ // $Id: fetchdecode64.cc,v 1.278 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2010 The Bochs Project // Copyright (C) 2001-2010 The Bochs Project
@ -3608,7 +3608,7 @@ modrm_done:
OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix-1]); OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix-1]);
ia_opcode = OpcodeInfoPtr->IA; ia_opcode = OpcodeInfoPtr->IA;
i->setOpcodeReg((b1 & 7) | rex_b); i->setRm((b1 & 7) | rex_b);
} }
} }

View File

@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: instr.h,v 1.30 2010-10-18 22:19:45 sshwarts Exp $ // $Id: instr.h,v 1.31 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2008-2009 Stanislav Shwartsman // Copyright (c) 2008-2010 Stanislav Shwartsman
// Written by Stanislav Shwartsman [sshwarts at sourceforge net] // Written by Stanislav Shwartsman [sshwarts at sourceforge net]
// //
// This library is free software; you can redistribute it and/or // This library is free software; you can redistribute it and/or
@ -116,14 +116,6 @@ public:
BX_CPP_INLINE void setB1(unsigned b1) { BX_CPP_INLINE void setB1(unsigned b1) {
metaData[BX_INSTR_METADATA_B1] = b1 & 0xff; metaData[BX_INSTR_METADATA_B1] = b1 & 0xff;
} }
BX_CPP_INLINE void setOpcodeReg(unsigned opreg) {
// The opcodeReg form (low 3 bits of the opcode byte
// (extended by REX.B on x86-64)
metaData[BX_INSTR_METADATA_RM] = opreg;
}
BX_CPP_INLINE unsigned opcodeReg() const {
return metaData[BX_INSTR_METADATA_RM];
}
BX_CPP_INLINE void setModRM(unsigned modrm) { BX_CPP_INLINE void setModRM(unsigned modrm) {
metaData[BX_INSTR_METADATA_MODRM] = modrm; metaData[BX_INSTR_METADATA_MODRM] = modrm;
} }

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: stack16.cc,v 1.47 2009-12-04 16:53:12 sshwarts Exp $ // $Id: stack16.cc,v 1.48 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -31,7 +31,7 @@
void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_RX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_RX(bxInstruction_c *i)
{ {
push_16(BX_READ_16BIT_REG(i->opcodeReg())); push_16(BX_READ_16BIT_REG(i->rm()));
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH16_CS(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH16_CS(bxInstruction_c *i)
@ -123,7 +123,7 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP16_SS(bxInstruction_c *i)
void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_RX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_RX(bxInstruction_c *i)
{ {
BX_WRITE_16BIT_REG(i->opcodeReg(), pop_16()); BX_WRITE_16BIT_REG(i->rm(), pop_16());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_EwM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_EwM(bxInstruction_c *i)

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: stack32.cc,v 1.66 2010-11-23 14:59:35 sshwarts Exp $ // $Id: stack32.cc,v 1.67 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -47,12 +47,12 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_EdM(bxInstruction_c *i)
void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_ERX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_ERX(bxInstruction_c *i)
{ {
push_32(BX_READ_32BIT_REG(i->opcodeReg())); push_32(BX_READ_32BIT_REG(i->rm()));
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_ERX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_ERX(bxInstruction_c *i)
{ {
BX_WRITE_32BIT_REGZ(i->opcodeReg(), pop_32()); BX_WRITE_32BIT_REGZ(i->rm(), pop_32());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH32_CS(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH32_CS(bxInstruction_c *i)

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: stack64.cc,v 1.47 2010-04-30 09:12:52 sshwarts Exp $ // $Id: stack64.cc,v 1.48 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001-2009 The Bochs Project // Copyright (C) 2001-2009 The Bochs Project
@ -44,12 +44,12 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_EqM(bxInstruction_c *i)
void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_RRX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_RRX(bxInstruction_c *i)
{ {
push_64(BX_READ_64BIT_REG(i->opcodeReg())); push_64(BX_READ_64BIT_REG(i->rm()));
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_RRX(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_RRX(bxInstruction_c *i)
{ {
BX_WRITE_64BIT_REG(i->opcodeReg(), pop_64()); BX_WRITE_64BIT_REG(i->rm(), pop_64());
} }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH64_FS(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH64_FS(bxInstruction_c *i)

View File

@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: vmx.h,v 1.32 2010-11-11 21:41:03 sshwarts Exp $ // $Id: vmx.h,v 1.33 2010-12-06 21:45:56 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2009 Stanislav Shwartsman // Copyright (c) 2009-2010 Stanislav Shwartsman
// Written by Stanislav Shwartsman [sshwarts at sourceforge net] // Written by Stanislav Shwartsman [sshwarts at sourceforge net]
// //
// This library is free software; you can redistribute it and/or // This library is free software; you can redistribute it and/or