OSDN Git Service

Add kIntrinsicIsStatic flag for System.arraycopy().
authorVladimir Marko <vmarko@google.com>
Tue, 8 Jul 2014 16:34:04 +0000 (17:34 +0100)
committerVladimir Marko <vmarko@google.com>
Tue, 8 Jul 2014 16:35:59 +0000 (17:35 +0100)
Change-Id: I40ffb07e62474f418eabb7361f129c633022666c

compiler/dex/quick/dex_file_method_inliner.cc

index 1500349..36456bc 100644 (file)
@@ -58,6 +58,7 @@ static constexpr bool kIntrinsicIsStatic[] = {
     false,  // kIntrinsicCas
     false,  // kIntrinsicUnsafeGet
     false,  // kIntrinsicUnsafePut
+    true,   // kIntrinsicSystemArrayCopyCharArray
 };
 COMPILE_ASSERT(arraysize(kIntrinsicIsStatic) == kInlineOpNop, check_arraysize_kIntrinsicIsStatic);
 COMPILE_ASSERT(kIntrinsicIsStatic[kIntrinsicDoubleCvt], DoubleCvt_must_be_static);
@@ -83,6 +84,8 @@ COMPILE_ASSERT(kIntrinsicIsStatic[kIntrinsicPoke], Poke_must_be_static);
 COMPILE_ASSERT(!kIntrinsicIsStatic[kIntrinsicCas], Cas_must_not_be_static);
 COMPILE_ASSERT(!kIntrinsicIsStatic[kIntrinsicUnsafeGet], UnsafeGet_must_not_be_static);
 COMPILE_ASSERT(!kIntrinsicIsStatic[kIntrinsicUnsafePut], UnsafePut_must_not_be_static);
+COMPILE_ASSERT(kIntrinsicIsStatic[kIntrinsicSystemArrayCopyCharArray],
+               SystemArrayCopyCharArray_must_not_be_static);
 
 MIR* AllocReplacementMIR(MIRGraph* mir_graph, MIR* invoke, MIR* move_return) {
   MIR* insn = mir_graph->NewMIR();