Move GetControlFlowKind's logic to DisassemblerLLVMC.cppThis diff move the logic of `GetControlFlowKind()` from Disassembler.cpp to DisassemblerLLVMC.cpp.Here's details:- Actual logic of GetContr
Move GetControlFlowKind's logic to DisassemblerLLVMC.cppThis diff move the logic of `GetControlFlowKind()` from Disassembler.cpp to DisassemblerLLVMC.cpp.Here's details:- Actual logic of GetControlFlowKind() move to `DisassemblerLLVMC.cpp`, and we can check underlying architecture using `DisassemblerScope` there.- With this change, passing 'triple' to `GetControlFlowKind()` is no more required.Reviewed By: wallaceDifferential Revision: https://reviews.llvm.org/D130320
show more ...
[trace] Add a flag to the decoder to output the instruction typeTo build complex binding upon instruction trace, additional metadata 'instruction type' is needed.This diff has followings: - Add
[trace] Add a flag to the decoder to output the instruction typeTo build complex binding upon instruction trace, additional metadata 'instruction type' is needed.This diff has followings: - Add a flag -k / --kind for instruction dump - Remove SetGranularity and SetIgnoreErros from Trace cursorSample output:```(lldb) thread trace dump instruction -kthread #1: tid = 3198805 libc.so.6`_IO_puts + 356 2107: 0x00007ffff7163594 ( return) retq 2106: 0x00007ffff7163592 ( other) popq %r13 2105: 0x00007ffff7163590 ( other) popq %r12 2104: 0x00007ffff716358f ( other) popq %rbp 2103: 0x00007ffff716358e ( other) popq %rbx 2102: 0x00007ffff716358c ( other) movl %ebx, %eax 2101: 0x00007ffff7163588 ( other) addq $0x8, %rsp 2100: 0x00007ffff7163570 ( cond jump) je 0x89588 ; <+344> 2099: 0x00007ffff716356e ( other) decl (%rdx) 2098: 0x00007ffff7163565 ( cond jump) je 0x8956e ; <+318> 2097: 0x00007ffff716355e ( other) cmpl $0x0, 0x33c02b(%rip) ; __libc_multiple_threads 2096: 0x00007ffff7163556 ( other) movq $0x0, 0x8(%rdx) 2095: 0x00007ffff7163554 ( cond jump) jne 0x89588 ; <+344> 2094: 0x00007ffff7163550 ( other) subl $0x1, 0x4(%rdx) 2093: 0x00007ffff7163549 ( other) movq 0x88(%rbp), %rdx 2092: 0x00007ffff7163547 ( cond jump) jne 0x89588 ; <+344> 2091: 0x00007ffff7163540 ( other) testl $0x8000, (%rbp) ; imm = 0x8000 2090: 0x00007ffff716353c ( other) cmovaq %rax, %rbx 2089: 0x00007ffff7163535 ( other) cmpq $0x7fffffff, %rbx ; imm = 0x7FFFFFFF 2088: 0x00007ffff7163530 ( other) movl $0x7fffffff, %eax ; imm = 0x7FFFFFFF```Reviewed By: wallaceDifferential Revision: https://reviews.llvm.org/D128477
[lldb/Plugins] Rename lldbPluginDisassemblerLLVM (NFC)
Revert "[lldb/CMake] Auto-generate the Initialize and Terminate calls for plugin"This is still failing spectacularly on the Windows bot and I still haveno clue what's going on.
Re-land "[lldb/CMake] Auto-generate the Initialize and Terminate calls for plugin"This patch changes the way we initialize and terminate the plugins inthe system initializer. It uses an approach s
Re-land "[lldb/CMake] Auto-generate the Initialize and Terminate calls for plugin"This patch changes the way we initialize and terminate the plugins inthe system initializer. It uses an approach similar to LLVM'sTARGETS_TO_BUILD with a def file that enumerates the plugins.The previously landed patch got reverted because it was lacking: (1) A plugin definition for the Objective-C language runtime, (2) The dependency between the Static and WASM dynamic loader, (3) Explicit initialization of ScriptInterpreterNone for lldb-test.All issues have been addressed in this patch.Differential revision: https://reviews.llvm.org/D73067
Revert "[lldb/CMake] Auto-generate the Initialize and Terminate calls for plugin"This temporarily reverts commit 7d6da329dee1eda1761430d9097d1323f32c4c0cbecause it's causing test failures on the b
Revert "[lldb/CMake] Auto-generate the Initialize and Terminate calls for plugin"This temporarily reverts commit 7d6da329dee1eda1761430d9097d1323f32c4c0cbecause it's causing test failures on the bots.
[lldb/CMake] Auto-generate the Initialize and Terminate calls for pluginThis patch changes the way we initialize and terminate the plugins inthe system initializer. It uses an approach similar to
[lldb/CMake] Auto-generate the Initialize and Terminate calls for pluginThis patch changes the way we initialize and terminate the plugins inthe system initializer. It uses an approach similar to LLVM'sTARGETS_TO_BUILD with a def file that enumerates the plugins.Differential revision: https://reviews.llvm.org/D73067
[lldb][NFC] Fix all formatting errors in .cpp file headersSummary:A *.cpp file header in LLDB (and in LLDB) should like this:```//===-- TestUtilities.cpp ----------------------------------------
[lldb][NFC] Fix all formatting errors in .cpp file headersSummary:A *.cpp file header in LLDB (and in LLDB) should like this:```//===-- TestUtilities.cpp -------------------------------------------------===//```However in LLDB most of our source files have arbitrary changes to this format andthese changes are spreading through LLDB as folks usually just use the existingsource files as templates for their new files (most notably the unnecessaryeditor language indicator `-*- C++ -*-` is spreading and in every reviewsomeone is pointing out that this is wrong, resulting in people pointing out that thisis done in the same way in other files).This patch removes most of these inconsistencies including the editor language indicators,all the different missing/additional '-' characters, files that center the file name, missingtrailing `===//` (mostly caused by clang-format breaking the line).Reviewers: aprantl, espindola, jfb, shafik, JDevlieghereReviewed By: JDevlieghereSubscribers: dexonsmith, wuzish, emaste, sdardis, nemanjai, kbarton, MaskRay, atanasyan, arphaman, jfb, abidh, jsji, JDevlieghere, usaxena95, lldb-commitsTags: #lldbDifferential Revision: https://reviews.llvm.org/D73258
[lldb/Plugin] Move DisassemblerLLVMC for consistency with plugin (NFC)Rename the DisassemblerLLVMC directory from llvm to LLVMC to match theplugin name.
When disassembling Aarch64 target and vendor Apple, set the cpu to"apple-latest" which llvm uses to indicate the newest supported ISA.Add a unit test; I'm only testing an armv8.1 instruction in thi
When disassembling Aarch64 target and vendor Apple, set the cpu to"apple-latest" which llvm uses to indicate the newest supported ISA.Add a unit test; I'm only testing an armv8.1 instruction in thisunit test which would already be disassembled correctly because weset the disassembler to ARM v8.2 mode, but it ensures that nothinghas been broken by adding this cpu spec.<rdar://problem/38714781> llvm-svn: 355578
Update the file headers across all of the LLVM projects in the monorepoto reflect the new license.We understand that people may be surprised that we're moving the headerentirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepoto reflect the new license.We understand that people may be surprised that we're moving the headerentirely to discuss the new license. We checked this carefully with theFoundation's lawyer and we believe this is the correct approach.Essentially, all code in the project is now made available by the LLVMproject under our new license, so you will see that the license headersinclude that license only. Some of our contributors have contributedcode under our old license, and accordingly, we have retained a copy ofour old license notice in the top-level files in each project andrepository.llvm-svn: 351636
If we fail to get an armv7em-- disassembler from llvm, skip thetests and don't mark this as a failure. This happens when we'velinked against an llvm without the ARM target built in. Davideadded
If we fail to get an armv7em-- disassembler from llvm, skip thetests and don't mark this as a failure. This happens when we'velinked against an llvm without the ARM target built in. Davideadded some cmake conditionals to avoid building this test when thetarget was absent from llvm's build, but we're still finding somebots that manage to get in this situation.<rdar://problem/44270082> llvm-svn: 342072
[NFC] Fix compiler warning in TestArmv7Disassembly.cppThe warning is comparison of integers of different signs: 'const int' and 'const unsigned long'and triggered by EXPECT_EQ (num_of_inst
[NFC] Fix compiler warning in TestArmv7Disassembly.cppThe warning is comparison of integers of different signs: 'const int' and 'const unsigned long'and triggered by EXPECT_EQ (num_of_instructions, inst_list.GetSize());as num_of_instructions is an int in this comparison (and the RHS is size_t).llvm-svn: 341931
[Disassembler] Run ARM-specific tests only if the ARM backend is built.<rdar://problem/44239070>llvm-svn: 341714
Enable the fp-armv8 disassembler feature when disassembling Cortex-Mcode. This will enable disassembly of the optional subset ofneon that some Cortex cores support. Add a unit test to checkthat
Enable the fp-armv8 disassembler feature when disassembling Cortex-Mcode. This will enable disassembly of the optional subset ofneon that some Cortex cores support. Add a unit test to checkthat a few of these instructions disassemble as expected.<rdar://problem/26674303> llvm-svn: 341623