summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/builder.h
diff options
context:
space:
mode:
authorCalin Juravle <calin@google.com>2014-11-11 19:07:44 +0000
committerCalin Juravle <calin@google.com>2014-11-12 19:43:32 +0000
commitd6fb6cfb6f2d0d9595f55e8cc18d2753be5d9a13 (patch)
tree2f8192e49c9debeba18e73e28b9c789adf8d2eef /compiler/optimizing/builder.h
parentf97f9fbfdf7f2e23c662f21081fadee6af37809d (diff)
downloadart-d6fb6cfb6f2d0d9595f55e8cc18d2753be5d9a13.tar.gz
art-d6fb6cfb6f2d0d9595f55e8cc18d2753be5d9a13.tar.bz2
art-d6fb6cfb6f2d0d9595f55e8cc18d2753be5d9a13.zip
[optimizing compiler] Add DIV_LONG
- for backends: arm, x86, x86_64 - added cqo, idivq, testq assembly for x64_64 - small cleanups Change-Id: I762ef37880749038ed25d6014370be9a61795200
Diffstat (limited to 'compiler/optimizing/builder.h')
-rw-r--r--compiler/optimizing/builder.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/optimizing/builder.h b/compiler/optimizing/builder.h
index 9cf83055b..b4497bf47 100644
--- a/compiler/optimizing/builder.h
+++ b/compiler/optimizing/builder.h
@@ -102,9 +102,15 @@ class HGraphBuilder : public ValueObject {
void Binop_23x(const Instruction& instruction, Primitive::Type type);
template<typename T>
+ void Binop_23x(const Instruction& instruction, Primitive::Type type, uint32_t dex_pc);
+
+ template<typename T>
void Binop_12x(const Instruction& instruction, Primitive::Type type);
template<typename T>
+ void Binop_12x(const Instruction& instruction, Primitive::Type type, uint32_t dex_pc);
+
+ template<typename T>
void Binop_22b(const Instruction& instruction, bool reverse);
template<typename T>
@@ -119,7 +125,7 @@ class HGraphBuilder : public ValueObject {
void BuildCheckedDiv(uint16_t out_reg,
uint16_t first_reg,
- int32_t second_reg, // can be a constant
+ int64_t second_reg_or_constant,
uint32_t dex_offset,
Primitive::Type type,
bool second_is_lit);