aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalter van Niftrik2010-01-27 03:37:56 +0000
committerWalter van Niftrik2010-01-27 03:37:56 +0000
commit3f7b6f9472aa288f26500a049b95e6562c042485 (patch)
treee42712349e333572583561f00dffce0120cd3f60
parent7c0dcf108cf3327525507b7784dbc725bd02b059 (diff)
downloadscummvm-rg350-3f7b6f9472aa288f26500a049b95e6562c042485.tar.gz
scummvm-rg350-3f7b6f9472aa288f26500a049b95e6562c042485.tar.bz2
scummvm-rg350-3f7b6f9472aa288f26500a049b95e6562c042485.zip
SCI: Restore pointer checks removed in r47585.
svn-id: r47587
-rw-r--r--engines/sci/engine/vm.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp
index b993cf84d9..e921d0f8fc 100644
--- a/engines/sci/engine/vm.cpp
+++ b/engines/sci/engine/vm.cpp
@@ -854,7 +854,7 @@ void run_vm(EngineState *s, int restoring) {
// FIXME: Add a warning when pointers in different segments are compared
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset > s->r_acc.offset);
} else
- s->r_acc = ACC_ARITHMETIC_L(r_temp.toSint16() > (int16)/*acc*/);
+ s->r_acc = ACC_ARITHMETIC_L((int16)validate_arithmetic(r_temp) > (int16)/*acc*/);
break;
case 0x10: // ge?
@@ -863,7 +863,7 @@ void run_vm(EngineState *s, int restoring) {
if (r_temp.segment && s->r_acc.segment)
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset >= s->r_acc.offset);
else
- s->r_acc = ACC_ARITHMETIC_L(r_temp.toSint16() >= (int16)/*acc*/);
+ s->r_acc = ACC_ARITHMETIC_L((int16)validate_arithmetic(r_temp) >= (int16)/*acc*/);
break;
case 0x11: // lt?
@@ -872,7 +872,7 @@ void run_vm(EngineState *s, int restoring) {
if (r_temp.segment && s->r_acc.segment)
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset < s->r_acc.offset);
else
- s->r_acc = ACC_ARITHMETIC_L(r_temp.toSint16() < (int16)/*acc*/);
+ s->r_acc = ACC_ARITHMETIC_L((int16)validate_arithmetic(r_temp) < (int16)/*acc*/);
break;
case 0x12: // le?
@@ -881,7 +881,7 @@ void run_vm(EngineState *s, int restoring) {
if (r_temp.segment && s->r_acc.segment)
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset <= s->r_acc.offset);
else
- s->r_acc = ACC_ARITHMETIC_L(r_temp.toSint16() <= (int16)/*acc*/);
+ s->r_acc = ACC_ARITHMETIC_L((int16)validate_arithmetic(r_temp) <= (int16)/*acc*/);
break;
case 0x13: // ugt?