You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2007/03/02 12:40:45 UTC

svn commit: r513713 - in /harmony/enhanced/drlvm/trunk: src/test/regression/H3285/ src/test/regression/H3285/Test.java src/test/regression/H3285/run.test.xml vm/jitrino/src/codegenerator/ia32/Ia32I8Lowerer.cpp

Author: varlax
Date: Fri Mar  2 03:40:44 2007
New Revision: 513713

URL: http://svn.apache.org/viewvc?view=rev&rev=513713
Log:
Fixed HARMONY-3285 [drlvm][jit][opt] segfault in i8l

Added:
    harmony/enhanced/drlvm/trunk/src/test/regression/H3285/
    harmony/enhanced/drlvm/trunk/src/test/regression/H3285/Test.java
    harmony/enhanced/drlvm/trunk/src/test/regression/H3285/run.test.xml
Modified:
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32I8Lowerer.cpp

Added: harmony/enhanced/drlvm/trunk/src/test/regression/H3285/Test.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/H3285/Test.java?view=auto&rev=513713
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/H3285/Test.java (added)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/H3285/Test.java Fri Mar  2 03:40:44 2007
@@ -0,0 +1,19 @@
+package org.apache.harmony.drlvm.tests.regression.h3285;
+
+import junit.framework.TestCase;
+
+public class Test extends TestCase {
+
+    public void test() throws Exception {
+        process(123L);
+    }
+
+    void process(long ll) {
+        boolean flag = false;
+
+        if(ll >= 0L && ll > 0L && ll > 10L)
+        {
+            flag = true;        
+        }   
+    }
+}

Added: harmony/enhanced/drlvm/trunk/src/test/regression/H3285/run.test.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/H3285/run.test.xml?view=auto&rev=513713
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/H3285/run.test.xml (added)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/H3285/run.test.xml Fri Mar  2 03:40:44 2007
@@ -0,0 +1,9 @@
+<project name="RUN HARMONY-3285 Regression Test">
+    <target name="run-test">
+        <run-junit-test 
+             test="org.apache.harmony.drlvm.tests.regression.h3285.Test"
+             vmarg="-Xem:opt">
+        </run-junit-test>
+    </target>
+</project>
+

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32I8Lowerer.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32I8Lowerer.cpp?view=diff&rev=513713&r1=513712&r2=513713
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32I8Lowerer.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32I8Lowerer.cpp Fri Mar  2 03:40:44 2007
@@ -451,11 +451,10 @@
             {
                 assert(src1 && src2);
                 Inst * condInst = inst->getNextInst();
-                Mnemonic mnem = getBaseConditionMnemonic(condInst->getMnemonic());
-                if (condInst->getMnemonic() == Mnemonic_MOV) {
+                while (condInst && condInst->getMnemonic() == Mnemonic_MOV) {
                     condInst = condInst->getNextInst();
-                    mnem = getBaseConditionMnemonic(condInst->getMnemonic());
                 }
+                Mnemonic mnem = condInst ? getBaseConditionMnemonic(condInst->getMnemonic()) : Mnemonic_NULL;
                 if (mnem != Mnemonic_NULL) {
                             if(condInst->hasKind(Inst::Kind_BranchInst)) {
                                 buildJumpSubGraph(inst,src1_1,src1_2,src2_1,src2_2,condInst);