Fix SHL, SHR, USHR implementation bug.

Change-Id: I506469f69087759b4ae30fad084f9fe3c559c2d6
diff --git a/src/compiler_llvm/method_compiler.h b/src/compiler_llvm/method_compiler.h
index 3127447..7e56046 100644
--- a/src/compiler_llvm/method_compiler.h
+++ b/src/compiler_llvm/method_compiler.h
@@ -112,6 +112,9 @@
     kIntArithm_And,
     kIntArithm_Or,
     kIntArithm_Xor,
+  };
+
+  enum IntShiftArithmKind {
     kIntArithm_Shl,
     kIntArithm_Shr,
     kIntArithm_UShr,
@@ -222,6 +225,12 @@
 
   void EmitInsn_IntArithmImmediate(GEN_INSN_ARGS, IntArithmKind arithm);
 
+  void EmitInsn_IntShiftArithm(GEN_INSN_ARGS, IntShiftArithmKind arithm,
+                               JType op_jty, bool is_2addr);
+
+  void EmitInsn_IntShiftArithmImmediate(GEN_INSN_ARGS,
+                                        IntShiftArithmKind arithm);
+
   void EmitInsn_RSubImmediate(GEN_INSN_ARGS);
 
 
@@ -275,6 +284,12 @@
                                               IntArithmKind arithm,
                                               JType op_jty);
 
+  llvm::Value* EmitIntShiftArithmResultComputation(uint32_t dex_pc,
+                                                   llvm::Value* lhs,
+                                                   llvm::Value* rhs,
+                                                   IntShiftArithmKind arithm,
+                                                   JType op_jty);
+
   llvm::Value* EmitFPArithmResultComputation(uint32_t dex_pc,
                                              llvm::Value* lhs,
                                              llvm::Value* rhs,