diff -r 4c2b92281cdc -r e606853325f1 vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java Thu Jan 31 20:19:38 2013 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java Thu Jan 31 20:37:12 2013 +0100 @@ -275,6 +275,36 @@ ); } + @Test public void longXor1() throws Exception { + final long res = 0x00fa37d7763e0ca1l ^ 0xa7b3432fff00123el; + assertExec("Long binary XOR", + Numbers.class, "xorL__J_3B_3B", + Double.valueOf(res), + new byte[] { (byte)0x00, (byte)0xfa, (byte)0x37, (byte)0xd7, (byte)0x76, (byte)0x3e, (byte)0x0c, (byte)0xa1 }, + new byte[] { (byte)0xa7, (byte)0xb3, (byte)0x43, (byte)0x2f, (byte)0xff, (byte)0x00, (byte)0x12, (byte)0x3e } + ); + } + + @Test public void longXor2() throws Exception { + final long res = 0x00fa37d7763e0ca1l ^ 0x00000000ff00123el; + assertExec("Long binary XOR", + Numbers.class, "xorL__J_3B_3B", + Double.valueOf(res), + new byte[] { (byte)0x00, (byte)0xfa, (byte)0x37, (byte)0xd7, (byte)0x76, (byte)0x3e, (byte)0x0c, (byte)0xa1 }, + new byte[] { (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0xff, (byte)0x00, (byte)0x12, (byte)0x3e } + ); + } + + @Test public void longXor3() throws Exception { + final long res = 0x00000000763e0ca1l ^ 0x00000000ff00123el; + assertExec("Long binary XOR", + Numbers.class, "xorL__J_3B_3B", + Double.valueOf(res), + new byte[] { (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x76, (byte)0x3e, (byte)0x0c, (byte)0xa1 }, + new byte[] { (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0xff, (byte)0x00, (byte)0x12, (byte)0x3e } + ); + } + private static CharSequence codeSeq; private static Invocable code;