summaryrefslogtreecommitdiffstats
path: root/dx
diff options
context:
space:
mode:
authorjeffhao <jeffhao@google.com>2010-02-23 12:29:47 -0800
committerjeffhao <jeffhao@google.com>2010-02-23 12:29:47 -0800
commitb0d01b0178081c98b8cdb2fba2d84f275a0c595e (patch)
treee36c38d9b7318a14d93a417b841a7ae21496db90 /dx
parent05c9d91a7fd80fef3141b832fc8caeef44612c86 (diff)
downloadandroid_dalvik-b0d01b0178081c98b8cdb2fba2d84f275a0c595e.tar.gz
android_dalvik-b0d01b0178081c98b8cdb2fba2d84f275a0c595e.tar.bz2
android_dalvik-b0d01b0178081c98b8cdb2fba2d84f275a0c595e.zip
Fixed bug 2438465, prevented blocks with move-result from being combined.
Diffstat (limited to 'dx')
-rw-r--r--dx/src/com/android/dx/ssa/back/IdenticalBlockCombiner.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/dx/src/com/android/dx/ssa/back/IdenticalBlockCombiner.java b/dx/src/com/android/dx/ssa/back/IdenticalBlockCombiner.java
index a639af561..e9974c0fd 100644
--- a/dx/src/com/android/dx/ssa/back/IdenticalBlockCombiner.java
+++ b/dx/src/com/android/dx/ssa/back/IdenticalBlockCombiner.java
@@ -21,6 +21,7 @@ import com.android.dx.rop.code.BasicBlockList;
import com.android.dx.rop.code.CstInsn;
import com.android.dx.rop.code.Insn;
import com.android.dx.rop.code.InsnList;
+import com.android.dx.rop.code.RegOps;
import com.android.dx.rop.code.RopMethod;
import com.android.dx.rop.code.SwitchInsn;
import com.android.dx.util.IntList;
@@ -92,6 +93,8 @@ public class IdenticalBlockCombiner {
BasicBlock jBlock = blocks.labelToBlock(jLabel);
if (jBlock.getSuccessors().size() == 1
+ && iBlock.getFirstInsn().getOpcode().getOpcode() !=
+ RegOps.MOVE_RESULT
&& compareInsns(iBlock, jBlock)) {
toCombine.add(jLabel);