# HG changeset patch # User Michael Pavone # Date 1419720628 28800 # Node ID 097c172839d4f8d2d961054ce6f884f0c314c5db # Parent f838bc0aeb7c120f42af80b3632a57ff1121f1db Don't use out of bounds displacements in indexed mode even if our targeted address is out of RAM range diff -r f838bc0aeb7c -r 097c172839d4 gentests.py --- a/gentests.py Fri Dec 26 21:26:25 2014 -0800 +++ b/gentests.py Sat Dec 27 14:50:28 2014 -0800 @@ -178,9 +178,17 @@ self.disp -= (address & 0xFFFFFF) else: self.disp += 0xE00000-(address & 0xFFFFFF) + if self.disp > 127: + self.disp = 127 + elif self.disp < -128: + self.disp = -128 address = base + index + self.disp elif (address & 0xFFFFFF) > 0xFFFFFC: self.disp -= (address & 0xFFFFFF) - 0xFFFFFC + if self.disp > 127: + self.disp = 127 + elif self.disp < -128: + self.disp = -128 address = base + index + self.disp if size != 'b' and address & 1: self.disp = self.disp ^ 1