diff options
| author | 2014-06-06 18:38:49 -0700 | |
|---|---|---|
| committer | 2014-06-07 12:48:28 -0700 | |
| commit | a014776f4474579d4dfc72e3374ba45c6f6e5f35 (patch) | |
| tree | 8bd1d35267d7d727178d81ad692fe8bab7e26e2a /compiler/dex/quick/gen_common.cc | |
| parent | 4211b72e48ee73eb551e883e1580a4cbdfc3f481 (diff) | |
x86_64: Add long bytecode supports (2/2)
This patch adds implementation of math and complex long bytcodes,
and basic long arithmetic.
Change-Id: I811397d7e0ee8ad0d12b23d32ba58314d479d714
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Diffstat (limited to 'compiler/dex/quick/gen_common.cc')
| -rw-r--r-- | compiler/dex/quick/gen_common.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/dex/quick/gen_common.cc b/compiler/dex/quick/gen_common.cc index 62c81d05bb..69ca7154e4 100644 --- a/compiler/dex/quick/gen_common.cc +++ b/compiler/dex/quick/gen_common.cc @@ -1959,7 +1959,7 @@ static void GenArithOpLongImpl(Mir2Lir* mir_to_lir, CompilationUnit* cu, Instruc switch (opcode) { case Instruction::NOT_LONG: - if (cu->instruction_set == kArm64) { + if (cu->instruction_set == kArm64 || cu->instruction_set == kX86_64) { mir_to_lir->GenNotLong(rl_dest, rl_src2); return; } @@ -2009,7 +2009,7 @@ static void GenArithOpLongImpl(Mir2Lir* mir_to_lir, CompilationUnit* cu, Instruc break; case Instruction::DIV_LONG: case Instruction::DIV_LONG_2ADDR: - if (cu->instruction_set == kArm64) { + if (cu->instruction_set == kArm64 || cu->instruction_set == kX86_64) { mir_to_lir->GenDivRemLong(opcode, rl_dest, rl_src1, rl_src2, /*is_div*/ true); return; } @@ -2020,7 +2020,7 @@ static void GenArithOpLongImpl(Mir2Lir* mir_to_lir, CompilationUnit* cu, Instruc break; case Instruction::REM_LONG: case Instruction::REM_LONG_2ADDR: - if (cu->instruction_set == kArm64) { + if (cu->instruction_set == kArm64 || cu->instruction_set == kX86_64) { mir_to_lir->GenDivRemLong(opcode, rl_dest, rl_src1, rl_src2, /*is_div*/ false); return; } |