aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/CodegenFactory.cpp
diff options
context:
space:
mode:
authorXin Qi <xqi@codeaurora.org>2011-11-27 23:27:29 -0800
committerLinux Build Service Account <lnxbuild@localhost>2013-10-31 19:37:29 -0600
commit337a595d746d34ade52e3aba2c739455dfd3cf57 (patch)
tree9e7c1286bc68b26dd445603118132e359ec28e58 /vm/compiler/codegen/CodegenFactory.cpp
parent6e21232cf2bca0e73bd418413564cb140ab9ccbd (diff)
dalvik: dalvik device extension pack.
Add support for customer device extension Change-Id: I0402a630ba212d1c5e81cda110f61210f7b60384 (cherry picked from commit 11499df326462bfe25890a35c6abbf019ff7784e) (cherry picked from commit e03b8f8da9cf4eef64cedf39ce9ca90d26ce5124) (cherry picked from commit fb360be406f35b9591f12c61936657f03cc5880f)
Diffstat (limited to 'vm/compiler/codegen/CodegenFactory.cpp')
-rw-r--r--vm/compiler/codegen/CodegenFactory.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/vm/compiler/codegen/CodegenFactory.cpp b/vm/compiler/codegen/CodegenFactory.cpp
index f42ae746b..2bf27f5ab 100644
--- a/vm/compiler/codegen/CodegenFactory.cpp
+++ b/vm/compiler/codegen/CodegenFactory.cpp
@@ -133,9 +133,18 @@ static RegLocation loadValue(CompilationUnit *cUnit, RegLocation rlSrc,
return rlSrc;
}
+__attribute__((weak)) bool storeValueThumb2(CompilationUnit *cUnit, RegLocation rlDest,
+ RegLocation rlSrc)
+{
+ return false;
+}
+
static void storeValue(CompilationUnit *cUnit, RegLocation rlDest,
RegLocation rlSrc)
{
+ if(storeValueThumb2(cUnit, rlDest, rlSrc))
+ return;
+
LIR *defStart;
LIR *defEnd;
assert(!rlDest.wide);
@@ -204,9 +213,18 @@ static RegLocation loadValueWide(CompilationUnit *cUnit, RegLocation rlSrc,
return rlSrc;
}
+__attribute__((weak)) bool storeValueWideThumb2(CompilationUnit *cUnit, RegLocation rlDest,
+ RegLocation rlSrc)
+{
+ return false;
+}
+
static void storeValueWide(CompilationUnit *cUnit, RegLocation rlDest,
RegLocation rlSrc)
{
+ if(storeValueWideThumb2(cUnit, rlDest, rlSrc))
+ return;
+
LIR *defStart;
LIR *defEnd;
assert(FPREG(rlSrc.lowReg)==FPREG(rlSrc.highReg));