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/01/11 14:44:54 UTC

svn commit: r495216 - /harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Inst.cpp

Author: varlax
Date: Thu Jan 11 05:44:53 2007
New Revision: 495216

URL: http://svn.apache.org/viewvc?view=rev&rev=495216
Log:
Applied HARMONY-2325 [drlvm][jit][opt] Inst::getPureDefProperty method works incorrectly with extended instruction form.
Tested on SLES9@ia32

Modified:
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Inst.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Inst.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Inst.cpp?view=diff&rev=495216&r1=495215&r2=495216
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Inst.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Inst.cpp Thu Jan 11 05:44:53 2007
@@ -341,13 +341,15 @@
 
 bool Inst::getPureDefProperty() const {
     if (getProperties() & Properties_PureDef) {
+        assert(getOpndCount(OpndRole_InstLevel|OpndRole_Use)==2);
         Opnd * use = NULL;
         for (uint32 i=0, n=getOpndCount(); i<n; i++){
-            if(!use) {
-                use = getOpnd(i);
-            } else if (getOpndRoles(i)&OpndRole_Use) {
-                assert(getOpndCount(OpndRole_InstLevel|OpndRole_Use)==2);
-                return use == getOpnd(i);
+            if (getOpndRoles(i)&OpndRole_Use) {
+                if(!use) {
+                   use = getOpnd(i);
+                } else {            
+                    return use == getOpnd(i);
+                }
             }
         }
     }