Some code cleanups and warning fixes

This commit is contained in:
Stanislav Shwartsman 2007-03-14 21:15:15 +00:00
parent 55d2446fe4
commit b8787fd5a7
6 changed files with 43 additions and 38 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: cpu.h,v 1.313 2007-03-06 17:47:18 sshwarts Exp $
// $Id: cpu.h,v 1.314 2007-03-14 21:15:14 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -2147,7 +2147,7 @@ public: // for now...
// Although in implementation, these instructions are aliased to the
// another function, it's nice to have them call a seperate function when
// the decoder is being tested in stand-alone mode.
#ifdef StandAloneDecoder
#ifdef STAND_ALONE_DECODER
BX_SMF void MOVUPD_VpdWpd(bxInstruction_c *);
BX_SMF void MOVUPD_WpdVpd(bxInstruction_c *);
BX_SMF void MOVAPD_VpdWpd(bxInstruction_c *);
@ -2175,14 +2175,21 @@ public: // for now...
BX_SMF void MOVNTPD_MdqVpd(bxInstruction_c *);
BX_SMF void MOVNTDQ_MdqVdq(bxInstruction_c *);
#else
#define MOVUPD_VpdWpd /* 66 0f 10 */ MOVUPS_VpsWps /* 0f 10 */
#define MOVUPD_WpdVpd /* 66 0f 11 */ MOVUPS_WpsVps /* 0f 11 */
#define MOVAPD_VpdWpd /* 66 0f 28 */ MOVAPS_VpsWps /* 0f 28 */
#define MOVAPD_WpdVpd /* 66 0f 29 */ MOVAPS_WpsVps /* 0f 29 */
#define MOVDQU_VdqWdq /* f3 0f 6f */ MOVUPS_VpsWps /* 0f 10 */
#define MOVDQU_WdqVdq /* f3 0f 7f */ MOVUPS_WpsVps /* 0f 11 */
#define MOVDQA_VdqWdq /* 66 0f 6f */ MOVAPS_VpsWps /* 0f 28 */
#define MOVDQA_WdqVdq /* 66 0f 7f */ MOVAPS_WpsVps /* 0f 29 */
#if BX_SUPPORT_SSE >= 2
#define SSE2_ALIAS(i) i
#else
#define SSE2_ALIAS(i) BxError
#endif
#define MOVUPD_VpdWpd /* 66 0f 10 */ SSE2_ALIAS(MOVUPS_VpsWps) /* 0f 10 */
#define MOVUPD_WpdVpd /* 66 0f 11 */ SSE2_ALIAS(MOVUPS_WpsVps) /* 0f 11 */
#define MOVAPD_VpdWpd /* 66 0f 28 */ SSE2_ALIAS(MOVAPS_VpsWps) /* 0f 28 */
#define MOVAPD_WpdVpd /* 66 0f 29 */ SSE2_ALIAS(MOVAPS_WpsVps) /* 0f 29 */
#define MOVDQU_VdqWdq /* f3 0f 6f */ SSE2_ALIAS(MOVUPS_VpsWps) /* 0f 10 */
#define MOVDQU_WdqVdq /* f3 0f 7f */ SSE2_ALIAS(MOVUPS_WpsVps) /* 0f 11 */
#define MOVDQA_VdqWdq /* 66 0f 6f */ SSE2_ALIAS(MOVAPS_VpsWps) /* 0f 28 */
#define MOVDQA_WdqVdq /* 66 0f 7f */ SSE2_ALIAS(MOVAPS_WpsVps) /* 0f 29 */
#define UNPCKHPS_VpsWq /* 0f 15 */ PUNPCKHDQ_VdqWq /* 66 0f 6a */
#define UNPCKLPS_VpsWq /* 0f 14 */ PUNPCKLDQ_VdqWq /* 66 0f 62 */
@ -2199,14 +2206,15 @@ public: // for now...
#define UNPCKHPD_VpdWq /* 66 0f 15 */ PUNPCKHQDQ_VdqWq /* 66 0f 6d */
#define UNPCKLPD_VpdWq /* 66 0f 14 */ PUNPCKLQDQ_VdqWq /* 66 0f 6c */
#define MOVLPD_VsdMq /* 66 0f 12 */ MOVLPS_VpsMq /* 0f 12 */
#define MOVLPD_MqVsd /* 66 0f 13 */ MOVLPS_MqVps /* 0f 13 */
#define MOVHPD_VsdMq /* 66 0f 16 */ MOVHPS_VpsMq /* 0f 16 */
#define MOVHPD_MqVsd /* 66 0f 17 */ MOVHPS_MqVps /* 0f 17 */
#define MOVLPD_VsdMq /* 66 0f 12 */ SSE2_ALIAS(MOVLPS_VpsMq) /* 0f 12 */
#define MOVLPD_MqVsd /* 66 0f 13 */ SSE2_ALIAS(MOVLPS_MqVps) /* 0f 13 */
#define MOVHPD_VsdMq /* 66 0f 16 */ SSE2_ALIAS(MOVHPS_VpsMq) /* 0f 16 */
#define MOVHPD_MqVsd /* 66 0f 17 */ SSE2_ALIAS(MOVHPS_MqVps) /* 0f 17 */
#define MOVNTPD_MdqVpd /* 66 0f 2b */ MOVNTPS_MdqVps /* 0f 2b */
#define MOVNTDQ_MdqVdq /* 66 0f e7 */ MOVNTPD_MdqVpd /* 66 0f 2b */
#endif // #ifdef StandAloneDecoder
#define MOVNTPD_MdqVpd /* 66 0f 2b */ SSE2_ALIAS(MOVNTPS_MdqVps) /* 0f 2b */
#define MOVNTDQ_MdqVdq /* 66 0f e7 */ SSE2_ALIAS(MOVNTPS_MdqVps) /* 66 0f 2b */
#endif // #ifdef STAND_ALONE_DECODER
/* SSE3 */
BX_SMF void MOVDDUP_VpdWq(bxInstruction_c *i);
@ -2222,6 +2230,7 @@ public: // for now...
/* SSE3 */
#if BX_SUPPORT_SSE3E || BX_SUPPORT_SSE >= 4
/* SSE3E */
BX_SMF void PSHUFB_PqQq(bxInstruction_c *i);
BX_SMF void PHADDW_PqQq(bxInstruction_c *i);
BX_SMF void PHADDD_PqQq(bxInstruction_c *i);
@ -2255,6 +2264,7 @@ public: // for now...
BX_SMF void PABSW_VdqWdq(bxInstruction_c *i);
BX_SMF void PABSD_VdqWdq(bxInstruction_c *i);
BX_SMF void PALIGNR_VdqWdqIb(bxInstruction_c *i);
/* SSE3E */
#endif
BX_SMF void CMPXCHG_XBTS(bxInstruction_c *);
@ -2511,7 +2521,6 @@ public: // for now...
BX_SMF void CMPXCHG16B(bxInstruction_c *);
#endif // #if BX_SUPPORT_X86_64
// mch added
BX_SMF void INVLPG(bxInstruction_c *);
BX_SMF void RSM(bxInstruction_c *);
@ -2874,8 +2883,7 @@ public: // for now...
#if BX_SUPPORT_X86_64
BX_SMF void fetch_raw_descriptor64(const bx_selector_t *selector,
Bit32u *dword1, Bit32u *dword2, Bit32u *dword3, unsigned exception_no);
BX_SMF void loadSRegLMNominal(unsigned seg, unsigned selector,
bx_address base, unsigned dpl);
BX_SMF void loadSRegLMNominal(unsigned seg, unsigned selector, unsigned dpl);
#endif
BX_SMF void push_16(Bit16u value16) BX_CPP_AttrRegparmN(1);
BX_SMF void push_32(Bit32u value32);
@ -3313,9 +3321,6 @@ IMPLEMENT_EFLAG_ACCESSOR (TF, 8)
// For decoding...
//
#define BX_REPE_PREFIX 10
#define BX_REPNE_PREFIX 11
#define BX_TASK_FROM_JUMP 10
#define BX_TASK_FROM_CALL_OR_INT 11
#define BX_TASK_FROM_IRET 12

View File

@ -1,5 +1,5 @@
////////////////////////////////////////////////////////////////////////
// $Id: ctrl_xfer_pro.cc,v 1.55 2006-06-12 16:58:26 sshwarts Exp $
// $Id: ctrl_xfer_pro.cc,v 1.56 2007-03-14 21:15:15 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -108,7 +108,7 @@ BX_CPU_C::load_cs(bx_selector_t *selector, bx_descriptor_t *descriptor, Bit8u cp
if (descriptor->u.segment.l) {
BX_CPU_THIS_PTR cpu_mode = BX_MODE_LONG_64;
BX_DEBUG(("Long Mode Activated"));
loadSRegLMNominal(BX_SEG_REG_CS, selector->value, 0, cpl);
loadSRegLMNominal(BX_SEG_REG_CS, selector->value, cpl);
}
else {
BX_DEBUG(("Compatibility Mode Activated"));

View File

@ -1,5 +1,5 @@
////////////////////////////////////////////////////////////////////////
// $Id: iret.cc,v 1.17 2007-02-03 21:36:40 sshwarts Exp $
// $Id: iret.cc,v 1.18 2007-03-14 21:15:15 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -45,8 +45,6 @@ BX_CPU_C::iret_protected(bxInstruction_c *i)
Bit32u dword1, dword2;
bx_descriptor_t cs_descriptor, ss_descriptor;
BX_DEBUG(("IRET PROTECTED"));
#if BX_SUPPORT_X86_64
if (BX_CPU_THIS_PTR msr.lma)
{
@ -603,7 +601,7 @@ BX_CPU_C::long_iret(bxInstruction_c *i)
}
else {
// we are in 64-bit mode !
loadSRegLMNominal(BX_SEG_REG_SS, raw_ss_selector, 0, cs_selector.rpl);
loadSRegLMNominal(BX_SEG_REG_SS, raw_ss_selector, cs_selector.rpl);
}
if (StackAddrSize64()) RSP = new_rsp;

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: protect_ctrl.cc,v 1.56 2007-01-28 21:27:31 sshwarts Exp $
// $Id: protect_ctrl.cc,v 1.57 2007-03-14 21:15:15 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -438,7 +438,7 @@ void BX_CPU_C::LTR_Ew(bxInstruction_c *i)
Bit32u dword3;
access_linear(BX_CPU_THIS_PTR gdtr.base + selector.index*8 + 8, 4, 0, BX_READ, &dword3);
descriptor.u.system.base |= ((Bit64u)dword3 << 32);
BX_INFO(("64 bit TSS base = 0x%08x%08x",
BX_DEBUG(("64 bit TSS base = 0x%08x%08x",
GET32H(descriptor.u.system.base), GET32L(descriptor.u.system.base)));
}
#endif

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: segment_ctrl_pro.cc,v 1.68 2006-08-31 18:18:17 sshwarts Exp $
// $Id: segment_ctrl_pro.cc,v 1.69 2007-03-14 21:15:15 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -246,14 +246,13 @@ BX_CPU_C::load_seg_reg(bx_segment_reg_t *seg, Bit16u new_value)
}
#if BX_SUPPORT_X86_64
void BX_CPU_C::loadSRegLMNominal(unsigned segI, unsigned selector, bx_address base,
unsigned dpl)
void BX_CPU_C::loadSRegLMNominal(unsigned segI, unsigned selector, unsigned dpl)
{
bx_segment_reg_t *seg = & BX_CPU_THIS_PTR sregs[segI];
// Load a segment register in long-mode with nominal values,
// so descriptor cache values are compatible with existing checks.
seg->cache.u.segment.base = base;
seg->cache.u.segment.base = 0;
// I doubt we need limit_scaled. If we do, it should be
// of type bx_addr and be maxed to 64bits, not 32.
seg->cache.u.segment.limit_scaled = 0xffffffff;
@ -645,7 +644,7 @@ BX_CPU_C::load_ss(bx_selector_t *selector, bx_descriptor_t *descriptor, Bit8u cp
#if BX_SUPPORT_X86_64
if (BX_CPU_THIS_PTR cpu_mode == BX_MODE_LONG_64) {
loadSRegLMNominal(BX_SEG_REG_SS, selector->value, 0, cpl);
loadSRegLMNominal(BX_SEG_REG_SS, selector->value, cpl);
return;
}
#endif

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: instrument.cc,v 1.15 2005-11-14 18:25:41 sshwarts Exp $
// $Id: instrument.cc,v 1.16 2007-03-14 21:15:15 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -25,9 +25,10 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "bochs.h"
#if BX_INSTRUMENTATION
void bx_instr_init(unsigned cpu) {}
void bx_instr_shutdown(unsigned cpu) {}
void bx_instr_reset(unsigned cpu) {}
@ -76,3 +77,5 @@ void bx_instr_phy_write(unsigned cpu, bx_address addr, unsigned len) {}
void bx_instr_phy_read(unsigned cpu, bx_address addr, unsigned len) {}
void bx_instr_wrmsr(unsigned cpu, unsigned addr, Bit64u value) {}
#endif