Nice! Please apply.<br><br><div class="gmail_quote">On Mon, Nov 7, 2011 at 9:14 PM, Will Dietz <span dir="ltr"><<a href="mailto:wdietz2@illinois.edu">wdietz2@illinois.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Inlined below.<br>
<br>
The masking logic is already used in LUSHR, FWIW.<br>
<br>
~Will<br>
<br>
>From 029662fa7bd23532d8a5be59793efab715217356 Mon Sep 17 00:00:00 2001<br>
From: Will Dietz <<a href="mailto:w@wdtz.org">w@wdtz.org</a>><br>
Date: Sun, 6 Nov 2011 23:26:17 -0600<br>
Subject: [PATCH] Fix LSHL to mask the shift operand.<br>
<br>
Simple test case illustrating failure:<br>
<br>
class Test {<br>
   public static void main(String[] args) {<br>
     long l = 1;<br>
     System.out.println(l);<br>
     System.out.println(l << 10);<br>
     System.out.println(l << 32);<br>
     System.out.println(l << 64);<br>
     System.out.println(l << 128);<br>
     System.out.println(l << -10);<br>
   }<br>
}<br></blockquote><div><br></div><div>Could you add this test to the tests/ directory? Just do simple comparisons between what is expected and what you get. If they don't match, throw an exception.</div><div><br></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Should produce (java Hotspot 1.6.0_27)<br>
1<br>
1024<br>
4294967296<br>
1<br>
1<br>
18014398509481984<br>
<br>
Before this patch j3 produces:<br>
1<br>
1024<br>
4294967296<br>
4294967296<br>
4294967296<br>
4294967296<br>
<br>
This patch aligns j3 with java's behavior.<br>
Additionally, this causes j3 to pass Mauve's Long tests.<br></blockquote><div><br></div><div>Very nice!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

---<br>
 lib/J3/Compiler/JavaJITOpcodes.cpp |    2 ++<br>
 1 files changed, 2 insertions(+), 0 deletions(-)<br>
<br>
diff --git a/lib/J3/Compiler/JavaJITOpcodes.cpp<br>
b/lib/J3/Compiler/JavaJITOpcodes.cpp<br>
index 4c5e8cd..93b9c3c 100644<br>
--- a/lib/J3/Compiler/JavaJITOpcodes.cpp<br>
+++ b/lib/J3/Compiler/JavaJITOpcodes.cpp<br>
@@ -1185,6 +1185,8 @@ void JavaJIT::compileOpcodes(Reader& reader,<br>
uint32 codeLength) {<br>
<br>
      case LSHL : {<br>
        Value* val2 = new ZExtInst(pop(),<br>
Type::getInt64Ty(*llvmContext), "", currentBlock);<br>
+        Value* mask = ConstantInt::get(Type::getInt64Ty(*llvmContext), 0x3F);<br>
+        val2 = BinaryOperator::CreateAnd(val2, mask, "", currentBlock);<br>
        pop(); // remove the 0 on the stack<br>
        Value* val1 = pop();<br>
        push(BinaryOperator::CreateShl(val1, val2, "", currentBlock),<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.5.1<br>
<br>
_______________________________________________<br>
vmkit-commits mailing list<br>
<a href="mailto:vmkit-commits@cs.uiuc.edu">vmkit-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits</a><br>
</font></span></blockquote></div><br>