Changeset 196729 in webkit for trunk/Source/JavaScriptCore/disassembler
- Timestamp:
- Feb 17, 2016, 4:11:21 PM (9 years ago)
- Location:
- trunk/Source/JavaScriptCore/disassembler
- Files:
-
- 2 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/disassembler/ARM64Disassembler.cpp
r172813 r196729 35 35 namespace JSC { 36 36 37 bool tryToDisassemble(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out , InstructionSubsetHint)37 bool tryToDisassemble(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out) 38 38 { 39 39 A64DOpcode arm64Opcode; -
trunk/Source/JavaScriptCore/disassembler/ARMv7Disassembler.cpp
r163859 r196729 34 34 namespace JSC { 35 35 36 bool tryToDisassemble(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out , InstructionSubsetHint)36 bool tryToDisassemble(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out) 37 37 { 38 38 ARMv7DOpcode armOpcode; -
trunk/Source/JavaScriptCore/disassembler/Disassembler.cpp
r194496 r196729 38 38 namespace JSC { 39 39 40 void disassemble(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out , InstructionSubsetHint subsetHint)40 void disassemble(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out) 41 41 { 42 if (tryToDisassemble(codePtr, size, prefix, out , subsetHint))42 if (tryToDisassemble(codePtr, size, prefix, out)) 43 43 return; 44 44 … … 68 68 size_t size { 0 }; 69 69 const char* prefix { nullptr }; 70 InstructionSubsetHint subsetHint { MacroAssemblerSubset };71 70 }; 72 71 … … 108 107 109 108 dataLog(task->header); 110 disassemble( 111 task->codeRef.code(), task->size, task->prefix, WTF::dataFile(), 112 task->subsetHint); 109 disassemble(task->codeRef.code(), task->size, task->prefix, WTF::dataFile()); 113 110 } 114 111 } … … 132 129 133 130 void disassembleAsynchronously( 134 const CString& header, const MacroAssemblerCodeRef& codeRef, size_t size, const char* prefix, 135 InstructionSubsetHint subsetHint) 131 const CString& header, const MacroAssemblerCodeRef& codeRef, size_t size, const char* prefix) 136 132 { 137 133 std::unique_ptr<DisassemblyTask> task = std::make_unique<DisassemblyTask>(); … … 140 136 task->size = size; 141 137 task->prefix = prefix; 142 task->subsetHint = subsetHint;143 138 144 139 asynchronousDisassembler().enqueue(WTFMove(task)); -
trunk/Source/JavaScriptCore/disassembler/Disassembler.h
r186859 r196729 37 37 class MacroAssemblerCodeRef; 38 38 39 enum InstructionSubsetHint { MacroAssemblerSubset, LLVMSubset };40 41 39 #if ENABLE(DISASSEMBLER) 42 bool tryToDisassemble(const MacroAssemblerCodePtr&, size_t, const char* prefix, PrintStream& , InstructionSubsetHint = MacroAssemblerSubset);40 bool tryToDisassemble(const MacroAssemblerCodePtr&, size_t, const char* prefix, PrintStream&); 43 41 #else 44 inline bool tryToDisassemble(const MacroAssemblerCodePtr&, size_t, const char*, PrintStream& , InstructionSubsetHint = MacroAssemblerSubset)42 inline bool tryToDisassemble(const MacroAssemblerCodePtr&, size_t, const char*, PrintStream&) 45 43 { 46 44 return false; … … 50 48 // Prints either the disassembly, or a line of text indicating that disassembly failed and 51 49 // the range of machine code addresses. 52 void disassemble(const MacroAssemblerCodePtr&, size_t, const char* prefix, PrintStream& out , InstructionSubsetHint = MacroAssemblerSubset);50 void disassemble(const MacroAssemblerCodePtr&, size_t, const char* prefix, PrintStream& out); 53 51 54 52 // Asynchronous disassembly. This happens on another thread, and calls the provided 55 53 // callback when the disassembly is done. 56 54 void disassembleAsynchronously( 57 const CString& header, const MacroAssemblerCodeRef&, size_t, const char* prefix, 58 InstructionSubsetHint = MacroAssemblerSubset); 55 const CString& header, const MacroAssemblerCodeRef&, size_t, const char* prefix); 59 56 60 57 JS_EXPORT_PRIVATE void waitForAsynchronousDisassembly(); -
trunk/Source/JavaScriptCore/disassembler/UDis86Disassembler.cpp
r153256 r196729 1 1 /* 2 * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2012, 2013, 2016 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 namespace JSC { 35 35 36 bool tryToDisassembleWithUDis86(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out , InstructionSubsetHint)36 bool tryToDisassembleWithUDis86(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out) 37 37 { 38 38 ud_t disassembler; -
trunk/Source/JavaScriptCore/disassembler/UDis86Disassembler.h
r153256 r196729 33 33 #if USE(UDIS86) 34 34 35 bool tryToDisassembleWithUDis86(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out , InstructionSubsetHint);35 bool tryToDisassembleWithUDis86(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out); 36 36 37 37 #else // USE(UDIS86) 38 38 39 inline bool tryToDisassembleWithUDis86(const MacroAssemblerCodePtr&, size_t, const char*, PrintStream& , InstructionSubsetHint) { return false; }39 inline bool tryToDisassembleWithUDis86(const MacroAssemblerCodePtr&, size_t, const char*, PrintStream&) { return false; } 40 40 41 41 #endif // USE(UDIS86) -
trunk/Source/JavaScriptCore/disassembler/X86Disassembler.cpp
r164333 r196729 33 33 #include "Options.h" 34 34 #include "UDis86Disassembler.h" 35 #include "LLVMDisassembler.h"36 35 37 36 namespace JSC { … … 44 43 // supports (in which case we go with UDis86) or if he's using the LLVM subset. 45 44 46 bool tryToDisassemble(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out , InstructionSubsetHint subsetHint)45 bool tryToDisassemble(const MacroAssemblerCodePtr& codePtr, size_t size, const char* prefix, PrintStream& out) 47 46 { 48 if (Options::forceUDis86Disassembler()) 49 return tryToDisassembleWithUDis86(codePtr, size, prefix, out, subsetHint); 50 51 if (Options::forceLLVMDisassembler()) 52 return tryToDisassembleWithLLVM(codePtr, size, prefix, out, subsetHint); 53 54 if (subsetHint == MacroAssemblerSubset 55 && tryToDisassembleWithUDis86(codePtr, size, prefix, out, MacroAssemblerSubset)) 56 return true; 57 58 if (subsetHint == LLVMSubset 59 && tryToDisassembleWithLLVM(codePtr, size, prefix, out, LLVMSubset)) 60 return true; 61 62 if (tryToDisassembleWithUDis86(codePtr, size, prefix, out, subsetHint)) 63 return true; 64 if (tryToDisassembleWithLLVM(codePtr, size, prefix, out, subsetHint)) 65 return true; 66 67 RELEASE_ASSERT_NOT_REACHED(); 68 return false; 47 return tryToDisassembleWithUDis86(codePtr, size, prefix, out); 69 48 } 70 49
Note:
See TracChangeset
for help on using the changeset viewer.