# HG changeset patch # User Paul Boddie # Date 1106065033 -3600 # Node ID b220be071851b6f5a78938713776be09f6e8e398 # Parent e82008ab3e712ec4d43f2136641c4b1b112ef804 Fixed signed constant loading in bipush and sipush. diff -r e82008ab3e71 -r b220be071851 bytecode.py --- a/bytecode.py Fri Jan 14 01:34:24 2005 +0100 +++ b/bytecode.py Tue Jan 18 17:17:13 2005 +0100 @@ -634,6 +634,9 @@ else: return value +def signed1(value): + return signed(value, 0x80) + def signed2(value): return signed(value, 0x8000) @@ -1161,7 +1164,7 @@ bastore = aastore def bipush(self, arguments, program): - program.load_const(arguments[0]) + program.load_const(signed1(arguments[0])) caload = aaload castore = aastore @@ -1872,7 +1875,7 @@ sastore = lastore def sipush(self, arguments, program): - program.load_const((arguments[0] << 8) + arguments[1]) + program.load_const(signed2((arguments[0] << 8) + arguments[1])) def swap(self, arguments, program): program.rot_two()