- fix broken range checks in shadow params when you use x86-64 and wxWindows.

The problem is that bx_param_num_c values are signed 64 bit, but it's
  shadowing a 64 bit unsigned variable.
This commit is contained in:
Bryce Denney 2002-11-21 19:12:31 +00:00
parent 7fde35e253
commit 6868c681e9

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: siminterface.cc,v 1.85 2002-11-19 09:27:38 bdenney Exp $ // $Id: siminterface.cc,v 1.86 2002-11-21 19:12:31 bdenney Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// See siminterface.h for description of the siminterface concept. // See siminterface.h for description of the siminterface concept.
@ -817,7 +817,7 @@ bx_param_num_c::set (Bit64s newval)
// just set the value. This code does not check max/min. // just set the value. This code does not check max/min.
val.number = newval; val.number = newval;
} }
if (val.number < min || val.number > max) if ((val.number < min || val.number > max) && max != BX_MAX_BIT64U)
BX_PANIC (("numerical parameter %s was set to %lld, which is out of range %lld to %lld", get_name (), val.number, min, max)); BX_PANIC (("numerical parameter %s was set to %lld, which is out of range %lld to %lld", get_name (), val.number, min, max));
if (dependent_list != NULL) update_dependents (); if (dependent_list != NULL) update_dependents ();
} }
@ -995,7 +995,7 @@ void
bx_shadow_num_c::set (Bit64s newval) bx_shadow_num_c::set (Bit64s newval)
{ {
Bit64u tmp = 0; Bit64u tmp = 0;
if (newval < min || newval > max) if ((newval < min || newval > max) && max != BX_MAX_BIT64U)
BX_PANIC (("numerical parameter %s was set to %lld, which is out of range %lld to %lld", get_name (), newval, min, max)); BX_PANIC (("numerical parameter %s was set to %lld, which is out of range %lld to %lld", get_name (), newval, min, max));
switch (varsize) { switch (varsize) {
case 8: case 8: