# HG changeset patch # User David Anderson # Date 1353212616 28800 # Node ID 04ce04a54936f0d7bccc36998ba756b186c40864 # Parent 3a896e9b57e21430dfde519489588db54d0cf232 Add test for bitops and fix a bug in >>> diff -r 3a896e9b57e2 -r 04ce04a54936 src/Interpreter.cpp --- a/src/Interpreter.cpp Sat Nov 17 20:11:05 2012 -0800 +++ b/src/Interpreter.cpp Sat Nov 17 20:23:36 2012 -0800 @@ -636,7 +636,7 @@ case OP_USHR: { - top.sp[-2].i32 = unsigned(top.sp[-2].i32) << unsigned(top.sp[-1].i32); + top.sp[-2].i32 = unsigned(top.sp[-2].i32) >> unsigned(top.sp[-1].i32); top.sp--; break; } diff -r 3a896e9b57e2 -r 04ce04a54936 tests/basic/bitops.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/basic/bitops.out Sat Nov 17 20:23:36 2012 -0800 @@ -0,0 +1,1 @@ +35503 diff -r 3a896e9b57e2 -r 04ce04a54936 tests/basic/bitops.sp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/basic/bitops.sp Sat Nov 17 20:23:36 2012 -0800 @@ -0,0 +1,16 @@ +native PrintNum(num); + +main() +{ + new result = 5192342; + for (new i = 0; i < 1000; i = i + 1) { + result = result | i; + result = result & 9129345; + result = result ^ (i * 73); + + new bit = result & 1; + result = (result >>> 1) | (bit << 31); + result = result | (i >> 6); + } + PrintNum(result); +} diff -r 3a896e9b57e2 -r 04ce04a54936 tests/prototype/bitops.sp --- a/tests/prototype/bitops.sp Sat Nov 17 20:11:05 2012 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -main() -{ - new result = 5192342; - for (new i = 0; i < 100000; i = i + 1) { - result = result | i; - result = result & 9129345; - result = result ^ (i * 73); - - new bit = result & 1; - result = (result >>> 1) | (bit << 31); - result = result | (i >> 6); - } - return result; -}