- clarify operator precedence (needed by MSVC)

- defined symbol BOCHSAPI_MSVCONLY for special cases in MSVC
This commit is contained in:
Volker Ruppert 2005-06-09 17:42:34 +00:00
parent 96767b28b6
commit 821ff1e87c
4 changed files with 23 additions and 13 deletions

View File

@ -426,6 +426,16 @@
#define BOCHSAPI_CYGONLY /*empty*/
#endif
#if defined(_MSC_VER)
// Make BOCHSAPI_MSVCONLY exactly the same as BOCHSAPI. This symbol
// will be used for any cases where VC++ requires a special tag
// but Cygwin does not.
#define BOCHSAPI_MSVCONLY BOCHSAPI
#else
// define the symbol to be empty
#define BOCHSAPI_MSVCONLY /*empty*/
#endif
#define BX_DEFAULT_CONFIG_INTERFACE "defined_by_configure"
#define BX_DEFAULT_DISPLAY_LIBRARY "defined_by_configure"

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: apic.cc,v 1.55 2005-06-07 05:54:51 sshwarts Exp $
// $Id: apic.cc,v 1.56 2005-06-09 17:42:34 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -88,7 +88,7 @@ char *bx_generic_apic_c::get_name ()
bx_bool bx_generic_apic_c::is_selected (bx_address addr, Bit32u len)
{
if ((addr & ~0xfff) == get_base ()) {
if ((addr & 0xf != 0) || (len != 4))
if (((addr & 0xf) != 0) || (len != 4))
BX_INFO(("warning: misaligned or wrong-size APIC access. addr=" FMT_ADDRX " len=%d", addr, len));
return 1;
}

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: i387.h,v 1.30 2005-06-06 20:14:49 vruppert Exp $
// $Id: i387.h,v 1.31 2005-06-09 17:42:34 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2004 Stanislav Shwartsman
@ -47,7 +47,7 @@ extern int FPU_tagof(const floatx80 &reg);
//
// Minimal i387 structure
//
struct BOCHSAPI i387_t
struct BOCHSAPI_MSVCONLY i387_t
{
i387_t() {}

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: sse_move.cc,v 1.36 2005-05-12 18:07:44 sshwarts Exp $
// $Id: sse_move.cc,v 1.37 2005-06-09 17:42:34 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2003 Stanislav Shwartsman
@ -103,14 +103,14 @@ void BX_CPU_C::FXSAVE(bxInstruction_c *i)
xmm.xmm16u(0) = BX_CPU_THIS_PTR the_i387.get_control_word();
xmm.xmm16u(1) = BX_CPU_THIS_PTR the_i387.get_status_word ();
if(twd & 0x0003 != 0x0003) tag_byte |= 0x0100;
if(twd & 0x000c != 0x000c) tag_byte |= 0x0200;
if(twd & 0x0030 != 0x0030) tag_byte |= 0x0400;
if(twd & 0x00c0 != 0x00c0) tag_byte |= 0x0800;
if(twd & 0x0300 != 0x0300) tag_byte |= 0x1000;
if(twd & 0x0c00 != 0x0c00) tag_byte |= 0x2000;
if(twd & 0x3000 != 0x3000) tag_byte |= 0x4000;
if(twd & 0xc000 != 0xc000) tag_byte |= 0x8000;
if((twd & 0x0003) != 0x0003) tag_byte |= 0x0100;
if((twd & 0x000c) != 0x000c) tag_byte |= 0x0200;
if((twd & 0x0030) != 0x0030) tag_byte |= 0x0400;
if((twd & 0x00c0) != 0x00c0) tag_byte |= 0x0800;
if((twd & 0x0300) != 0x0300) tag_byte |= 0x1000;
if((twd & 0x0c00) != 0x0c00) tag_byte |= 0x2000;
if((twd & 0x3000) != 0x3000) tag_byte |= 0x4000;
if((twd & 0xc000) != 0xc000) tag_byte |= 0x8000;
xmm.xmm16u(2) = tag_byte;