From 8e9b449433e304686935f870cde484be3f48b178 Mon Sep 17 00:00:00 2001 From: TDYa127 Date: Tue, 24 Apr 2012 15:50:27 -0700 Subject: Fix run-test 003, llvm method_compiler bug. Change-Id: I87c211d829c41d5406587f491fd55934afc06fd9 --- src/compiler_llvm/method_compiler.cc | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'src/compiler_llvm/method_compiler.cc') diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc index b6711b6913..1253d377c3 100644 --- a/src/compiler_llvm/method_compiler.cc +++ b/src/compiler_llvm/method_compiler.cc @@ -2128,15 +2128,13 @@ void MethodCompiler::EmitInsn_BinaryConditionalBranch(uint32_t dex_pc, EmitGuard_GarbageCollectionSuspend(dex_pc); } - if (src1_reg_cat == kRegZero && src2_reg_cat == kRegZero) { - irb_.CreateBr(GetBasicBlock(dex_pc + branch_offset)); - return; - } - llvm::Value* src1_value; llvm::Value* src2_value; - if (src1_reg_cat != kRegZero && src2_reg_cat != kRegZero) { + if (src1_reg_cat == kRegZero && src2_reg_cat == kRegZero) { + src1_value = irb_.getInt32(0); + src2_value = irb_.getInt32(0); + } else if (src1_reg_cat != kRegZero && src2_reg_cat != kRegZero) { CHECK_EQ(src1_reg_cat, src2_reg_cat); if (src1_reg_cat == kRegCat1nr) { @@ -2196,15 +2194,13 @@ void MethodCompiler::EmitInsn_UnaryConditionalBranch(uint32_t dex_pc, EmitGuard_GarbageCollectionSuspend(dex_pc); } - if (src_reg_cat == kRegZero) { - irb_.CreateBr(GetBasicBlock(dex_pc + branch_offset)); - return; - } - llvm::Value* src1_value; llvm::Value* src2_value; - if (src_reg_cat == kRegCat1nr) { + if (src_reg_cat == kRegZero) { + src1_value = irb_.getInt32(0); + src2_value = irb_.getInt32(0); + } else if (src_reg_cat == kRegCat1nr) { src1_value = EmitLoadDalvikReg(dec_insn.vA, kInt, kAccurate); src2_value = irb_.getInt32(0); } else { -- cgit v1.2.3-59-g8ed1b