summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2014-03-31 18:10:53 -0700
committerAndreas Gampe <agampe@google.com>2014-03-31 18:10:53 -0700
commit7aca91db1571594cdb7e0a9ee704530b09c066e4 (patch)
treede2cf12b3410680e3972902f22c3b156186f2283
parentcfd5acf281b0c509f86b13d73c6a8dfa3ea9922c (diff)
downloadart-7aca91db1571594cdb7e0a9ee704530b09c066e4.tar.gz
art-7aca91db1571594cdb7e0a9ee704530b09c066e4.tar.bz2
art-7aca91db1571594cdb7e0a9ee704530b09c066e4.zip
Fix instruction printing for filled-new-array
Only print the registers that are actually used. The rest is garbage. Change-Id: Ic9f03a51f81b95f7c70cf3e19122c8980003ae36
-rw-r--r--runtime/dex_instruction.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/runtime/dex_instruction.cc b/runtime/dex_instruction.cc
index 8fccd6da3..754624538 100644
--- a/runtime/dex_instruction.cc
+++ b/runtime/dex_instruction.cc
@@ -551,6 +551,20 @@ std::string Instruction::DumpString(const DexFile* file) const {
uint32_t arg[5];
GetArgs(arg);
switch (Opcode()) {
+ case FILLED_NEW_ARRAY:
+ {
+ const int32_t a = VRegA_35c();
+ os << opcode << " {";
+ for (int i = 0; i < a; ++i) {
+ if (i > 0) {
+ os << ", ";
+ }
+ os << "v" << arg[i];
+ }
+ os << "}, type@" << VRegB_35c();
+ }
+ break;
+
case INVOKE_VIRTUAL:
case INVOKE_SUPER:
case INVOKE_DIRECT: