summaryrefslogtreecommitdiff
path: root/src/compiler_llvm/method_compiler.h
diff options
context:
space:
mode:
author Logan Chien <loganchien@google.com> 2012-04-02 14:36:55 +0800
committer Shih-wei Liao <sliao@google.com> 2012-04-02 10:08:35 -0700
commit5539ad0fe3ac455ac3f8b051f3b4502729f0ba53 (patch)
treee5c8527ff74eadca9382dc20eaea28c3419ae591 /src/compiler_llvm/method_compiler.h
parent2d7021776f10fe666ecd197713bcf88507851c37 (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.h15
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,