Chromium Code Reviews| Index: src/disassembler.cc | 
| diff --git a/src/disassembler.cc b/src/disassembler.cc | 
| index bedff451e9f87d0e4bcaae5a21c5b4ed9b6d34b3..54f5740522827f7011d8f625ae7320520abbcff7 100644 | 
| --- a/src/disassembler.cc | 
| +++ b/src/disassembler.cc | 
| @@ -85,11 +85,14 @@ static int DecodeIt(Isolate* isolate, std::ostream* os, | 
| } else { | 
| // No relocation information when printing code stubs. | 
| } | 
| +#if !V8_TARGET_ARCH_PPC | 
| int constants = -1; // no constants being decoded at the start | 
| +#endif | 
| while (pc < end) { | 
| // First decode instruction so that we know its length. | 
| byte* prev_pc = pc; | 
| +#if !V8_TARGET_ARCH_PPC | 
| if (constants > 0) { | 
| SNPrintF(decode_buffer, | 
| "%08x constant", | 
| @@ -114,6 +117,22 @@ static int DecodeIt(Isolate* isolate, std::ostream* os, | 
| ptr - begin); | 
| pc += 4; | 
| } else { | 
| +#elif ABI_USES_FUNCTION_DESCRIPTORS || V8_OOL_CONSTANT_POOL | 
| + // V8_TARGET_ARCH_PPC | 
| + { | 
| + // Function descriptors are specially decoded and skipped. | 
| + // Other internal references (load of ool constant pool pointer) | 
| + // are not since they are a encoded as a regular mov sequence. | 
| + int skip; | 
| + if (it != NULL && !it->done() && it->rinfo()->pc() == pc && | 
| + it->rinfo()->rmode() == RelocInfo::INTERNAL_REFERENCE && | 
| + (skip = Assembler::DecodeInternalReference(decode_buffer, pc))) { | 
| + pc += skip; | 
| + } else { | 
| +#else | 
| 
 
Sven Panne
2015/01/27 11:47:06
Could you restructure these #if/#elif/#else/#endif
 
michael_dawson
2015/01/29 00:08:29
Will do
 
 | 
| + { | 
| + { | 
| +#endif | 
| decode_buffer[0] = '\0'; | 
| pc += d.InstructionDecode(decode_buffer, pc); | 
| } |