Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index a0e5d347aeca43aef081c5a46291e698c0575720..f7fe416865b991f857c10b2fc0b9756c64d28f70 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -11603,7 +11603,6 @@ void BytecodeArray::Disassemble(std::ostream& os) { |
for (int i = 0; i < this->length(); i += bytes) { |
interpreter::Bytecode bytecode = interpreter::Bytecodes::FromByte(get(i)); |
bytes = interpreter::Bytecodes::Size(bytecode); |
- |
SNPrintF(buf, "%p : ", GetFirstBytecodeAddress() + i); |
os << buf.start(); |
for (int j = 0; j < bytes; j++) { |
@@ -11613,7 +11612,26 @@ void BytecodeArray::Disassemble(std::ostream& os) { |
for (int j = bytes; j < interpreter::Bytecodes::MaximumSize(); j++) { |
os << " "; |
} |
- os << bytecode << "\n"; |
+ os << bytecode << " "; |
+ for (int j = 1; j < bytes; j++) { |
+ interpreter::OperandType op_type = |
+ interpreter::Bytecodes::GetOperandType(bytecode, j - 1); |
+ uint8_t operand = get(i + j); |
+ switch (op_type) { |
+ case interpreter::OperandType::kNone: |
+ break; |
+ case interpreter::OperandType::kImm8: |
+ os << "#" << static_cast<int>(operand); |
+ break; |
+ case interpreter::OperandType::kReg: |
+ os << "r" << static_cast<int>(operand); |
+ break; |
+ } |
+ if (j + 1 < bytes) { |
+ os << ", "; |
+ } |
+ } |
+ os << "\n"; |
} |
} |