diff options
| author | 2012-04-02 14:36:55 +0800 | |
|---|---|---|
| committer | 2012-04-02 10:08:35 -0700 | |
| commit | 5539ad0fe3ac455ac3f8b051f3b4502729f0ba53 (patch) | |
| tree | e5c8527ff74eadca9382dc20eaea28c3419ae591 /src/compiler_llvm/method_compiler.h | |
| parent | 2d7021776f10fe666ecd197713bcf88507851c37 (diff) | |
Fix SHL, SHR, USHR implementation bug.
Change-Id: I506469f69087759b4ae30fad084f9fe3c559c2d6
Diffstat (limited to 'src/compiler_llvm/method_compiler.h')
| -rw-r--r-- | src/compiler_llvm/method_compiler.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/compiler_llvm/method_compiler.h b/src/compiler_llvm/method_compiler.h index 31274474ef..7e5604605a 100644 --- a/src/compiler_llvm/method_compiler.h +++ b/src/compiler_llvm/method_compiler.h @@ -112,6 +112,9 @@ class MethodCompiler { kIntArithm_And, kIntArithm_Or, kIntArithm_Xor, + }; + + enum IntShiftArithmKind { kIntArithm_Shl, kIntArithm_Shr, kIntArithm_UShr, @@ -222,6 +225,12 @@ class MethodCompiler { 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 @@ class MethodCompiler { 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, |