c590c679663f093bc74355572ccfa8d40284d065 |
|
07-Aug-2013 |
Daniel Malea <daniel.malea@intel.com> |
New settings: target.use-hex-immediates and target.hex-immediates-style - Immediates can be shown as hex (either Intel or MASM style) - See TestSettings.py for usage examples - Verified to cause no regressions on Linux x86_64 (Ubuntu 12.10) Patch by Richard Mitton! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@187921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
52e92d1fab6d2d5fb4b37ae6f2e882f7644018d7 |
|
23-Jul-2013 |
Jason Molenda <jmolenda@apple.com> |
When a Cortex-M3 target is selected (armv7m), force disassembly to be in thumb mode. <rdar://problem/14107444>, <rdar://problem/14107405> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@186881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
0c4c43c8a598e9c37dcdd00bb77c6d59e083b904 |
|
11-Jul-2013 |
Michael Sartain <mikesart@valvesoftware.com> |
Fix "source list -n printf" on Linux (printf is symbol alias for __printf) Differential Revision: http://llvm-reviews.chandlerc.com/D1109 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@186104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
0b2934b579a75f3813c6167b954da0aa7f65cb81 |
|
18-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Update to new API. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
f2dcf3588ce45980900eb4b5a036aea83f5b8486 |
|
24-May-2013 |
Ashok Thirumurthi <ashok.thirumurthi@intel.com> |
Added a parameter for relocation info to keep lldb in step with llvm due to r182625, which takes a first step towards symbolization of disassembled instructions. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
7bef4e2fdec8c8729688529facd9f5f50a916ea3 |
|
13-May-2013 |
Sylvestre Ledru <sylvestre@debian.org> |
Also pass the MCRegInfo to createMCAsmInfo. Follow the modification introduced in commit r181680 of llvm git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
0e191607adcb0ea8ebd06c278be648a7f5c0097f |
|
10-May-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13854277> <rdar://problem/13594769> Main changes in this patch include: - cleanup plug-in interface and use ConstStrings for plug-in names - Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp - Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging The plug-in interface changes: Modified the lldb_private::PluginInterface class that all plug-ins inherit from: Changed: virtual const char * GetPluginName() = 0; To: virtual ConstString GetPluginName() = 0; Removed: virtual const char * GetShortPluginName() = 0; - Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names. - Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
a828fe30472631280ab10ffbf620cfd244985471 |
|
03-May-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13751683> Make sure to handle all thumb variants correctly. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
102b2c2681c9a830afe25bfea35557421905e42c |
|
19-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
81a96aa6242f7b559770f5dc62316253cb8cb0d4 |
|
18-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Since we use C++11, we should switch over to using std::unique_ptr when C++11 is being used. To do this, we follow what we have done for shared pointers and we define a STD_UNIQUE_PTR macro that can be used and it will "do the right thing". Due to some API differences in std::unique_ptr and due to the fact that we need to be able to compile without C++11, we can't use move semantics so some code needed to change so that it can compile with either C++. Anyone wanting to use a unique_ptr or auto_ptr should now use the "STD_UNIQUE_PTR(TYPE)" macro. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
d4f95f3c9462a977f8c15c5062d30bf62cd49110 |
|
29-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11730263> PC relative loads are missing disassembly comments when disassembled in a live process. This issue was because some sections, like __TEXT and __DATA in libobjc.A.dylib, were being moved when they were put into the dyld shared cache. This could also affect any other system that slides sections individually. The solution is to keep track of wether the bytes we will disassemble are from an executable file (file address), or from a live process (load address). We now do the right thing based off of this input in all cases. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
8741df3f8a430fb5670a4f3c1f468b7a7635721b |
|
13-Mar-2013 |
Jim Ingham <jingham@apple.com> |
DoesBranch needs to compute the instruction if it isn't already done. Handle the "alternate_isa" correctly. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
e5bc8c178390c217a91509e9f1db48cabbd11e33 |
|
12-Mar-2013 |
Matt Kopec <Matt.Kopec@intel.com> |
Misc. clang build warning fixes. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
7d4083837c5a258375fdc185d464b4ed15759a4b |
|
02-Mar-2013 |
Jim Ingham <jingham@apple.com> |
Convert from the C-based LLVM Disassembler shim to the full MC Disassembler API's. Calculate "can branch" using the MC API's rather than our hand-rolled regex'es. As extra credit, allow setting the disassembly flavor for x86 based architectures to intel or att. <rdar://problem/11319574> <rdar://problem/9329275> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
36da2aa6dc5ad9994b638ed09eb81c44cc05540b |
|
25-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13069948> Major fixed to allow reading files that are over 4GB. The main problems were that the DataExtractor was using 32 bit offsets as a data cursor, and since we mmap all of our object files we could run into cases where if we had a very large core file that was over 4GB, we were running into the 4GB boundary. So I defined a new "lldb::offset_t" which should be used for all file offsets. After making this change, I enabled warnings for data loss and for enexpected implicit conversions temporarily and found a ton of things that I fixed. Any functions that take an index internally, should use "size_t" for any indexes and also should return "size_t" for any sizes of collections. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
5f35a4be95aed0e5b2cb36f7d785bcbfc67284ae |
|
29-Nov-2012 |
Daniel Malea <daniel.malea@intel.com> |
Resolve printf formatting warnings on Linux: - use macros from inttypes.h for format strings instead of OS-specific types Patch from Matt Kopec! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@168945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
a53324d018afb71a1a53840c426aab47edb56383 |
|
20-Sep-2012 |
Greg Clayton <gclayton@apple.com> |
A patch that allows for mach-o architectures to be specified as "<number>-<number>" where the first number is the cpu type and the second is the cpu subtype. Also added code to allow use of mach-o architectures that aren't in our tables so that symbolication and static file introspection (crashlogs) can work with them. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
49ce8969d3154e1560106cfe530444c09410f217 |
|
29-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11757916> Make breakpoint setting by file and line much more efficient by only looking for inlined breakpoint locations if we are setting a breakpoint in anything but a source implementation file. Implementing this complex for a many reasons. Turns out that parsing compile units lazily had some issues with respect to how we need to do things with DWARF in .o files. So the fixes in the checkin for this makes these changes: - Add a new setting called "target.inline-breakpoint-strategy" which can be set to "never", "always", or "headers". "never" will never try and set any inlined breakpoints (fastest). "always" always looks for inlined breakpoint locations (slowest, but most accurate). "headers", which is the default setting, will only look for inlined breakpoint locations if the breakpoint is set in what are consudered to be header files, which is realy defined as "not in an implementation source file". - modify the breakpoint setting by file and line to check the current "target.inline-breakpoint-strategy" setting and act accordingly - Modify compile units to be able to get their language and other info lazily. This allows us to create compile units from the debug map and not have to fill all of the details in, and then lazily discover this information as we go on debuggging. This is needed to avoid parsing all .o files when setting breakpoints in implementation only files (no inlines). Otherwise we would need to parse the .o file, the object file (mach-o in our case) and the symbol file (DWARF in the object file) just to see what the compile unit was. - modify the "SymbolFileDWARFDebugMap" to subclass lldb_private::Module so that the virtual "GetObjectFile()" and "GetSymbolVendor()" functions can be intercepted when the .o file contenst are later lazilly needed. Prior to this fix, when we first instantiated the "SymbolFileDWARFDebugMap" class, we would also make modules, object files and symbol files for every .o file in the debug map because we needed to fix up the sections in the .o files with information that is in the executable debug map. Now we lazily do this in the DebugMapModule::GetObjectFile() Cleaned up header includes a bit as well. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
b42f1c8bc38f7af2d687dc1cf5392cf51d6890b4 |
|
07-Aug-2012 |
Sean Callanan <scallanan@apple.com> |
Changed the Opcode::GetData() API so that it didn't require an AddressClass, which is useless at this point since it already knows the distinction between 32-bit Thumb opcodes and 32-bit ARM opcodes. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
3da64aed43196bc49cc90aa4f02e36f9e5655c1f |
|
07-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
Fixed an error in the thumb opcode encoding. We need the 32 bit thumb instructions to be encoded as a 32 bit value for the EmulateARM code. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
1424a5e6a6baa6dc1f8e39139da2ff8b67634c91 |
|
07-Aug-2012 |
Sean Callanan <scallanan@apple.com> |
Improved raw disassembly output for Thumb. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
4f28c31e4b652a842ce6138b70ded44ffb3e8c48 |
|
01-Aug-2012 |
Sean Callanan <scallanan@apple.com> |
Instructions generated by a disassembler can now keep a shared pointer to their disassembler. This is important for the LLVM-C disassembler because it needs to lock its parent in order to disassemble itself. This means that every interface that returned a Disassembler* needs to return a DisassemblerSP, so that the instructions and any external owners share the same reference count on the object. I changed all clients to use this shared pointer, which also plugged a few leaks. <rdar://problem/12002822> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
0fef968c843be422d6facc2e8d54d8471eee88ed |
|
10-May-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11330621> Fixed the DisassemblerLLVMC disassembler to parse more efficiently instead of parsing opcodes over and over. The InstructionLLVMC class now only reads the opcode in the InstructionLLVMC::Decode function. This can be done very efficiently for ARM and architectures that have fixed opcode sizes. For x64 it still calls the disassembler to get the byte size. Moved the lldb_private::Instruction::Dump(...) function up into the lldb_private::Instruction class and it now uses the function that gets the mnemonic, operandes and comments so that all disassembly is using the same code. Added StreamString::FillLastLineToColumn() to allow filling a line up to a column with a character (which is used by the lldb_private::Instruction::Dump(...) function). Modified the Opcode::GetData() fucntion to "do the right thing" for thumb instructions. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
7fb143064009e34dbb7a602924e9807375f72a46 |
|
13-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Expose GetAddressClass() from both the SBAddress and SBInstruction so clients can tell the difference between ARM/Thumb opcodes when disassembling ARM. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
50561699a9a14c716d1099ae1d38be2f31534b67 |
|
11-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Cleaned up code that was getting SBData for an SBInstruction. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
561bf5889d1677d79024928072bf4817640d842f |
|
10-Apr-2012 |
Sean Callanan <scallanan@apple.com> |
Improved detection of ARM branch instructions to cover all possible condition codes. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
eec2f0864b7881b8215a4c438dd6304b474ce40c |
|
06-Apr-2012 |
Sean Callanan <scallanan@apple.com> |
Fixed a leak in the LLVM disassembler where we did not destroy the underlying disassembler in our destructor. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
432fe10975984c396b38720f62a0c4cd72e7821f |
|
06-Apr-2012 |
Bill Wendling <isanbard@gmail.com> |
Order ivar initializers to how they're declared in the class. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
685099b1936ba6021f821323e85dd5be1500f78c |
|
22-Mar-2012 |
Sean Callanan <scallanan@apple.com> |
Resolved two problems in the disassembler: - Addresses with no description were given comments, leading to useless comments like "; , " - Addresses weren't resolved with respect to the correct module. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
501e77a0c2d3c83982d5199bfe4cd8b97f46205c |
|
22-Mar-2012 |
Sean Callanan <scallanan@apple.com> |
Fixed a bug in the disassembler where we did not properly print the load addresses for PC-relative jumps. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
34814d60bdfd681dab4d604b640f2640a8c42630 |
|
22-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
Since we are having issues with the new LLVM MC disassembler, we can have them both installed with the LLVM MC version being the default. I renamed the name of the LLVM MC disassembler plug-in to "llvm-mc" and the LLVM enhanced disassembly plug-in to "llvm-edis" and they can both be installed for now. To use the "llvm-edis" disassembler, you can just specify it while disassembling: (lldb) disassemble --plugin llvm-edis --name main (lldb) disassemble --plugin llvm-mc --name main This will allow us to compare the output of the two disassembler and eventually deprecate the old one when the new one is ready. But it does use the new disassembler by default so we continue to test it on a daily basis. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
5f1b66cb0210d0f84729740faed4952049acb5ed |
|
03-Mar-2012 |
Sean Callanan <scallanan@apple.com> |
Added a function to the disassembler that checks (from the mnemonic) whether an instruction is a branch. This function's result is exposed through DoesBranch(). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
aa12be49067f5bb14cc3c4ba6d2e97b34e1aec35 |
|
24-Feb-2012 |
Sean Callanan <scallanan@apple.com> |
Updated LLVM to take some fixes that make the Intel disassembler usable. Also flipped the switch: we are now exclusively using Disassembler.h instead of EnhancedDisassembly.h for all disassembly in LLDB. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
dd5e3636821e280b43793384fea14bae51a11292 |
|
20-Feb-2012 |
Johnny Chen <johnny.chen@apple.com> |
Fix compile error for DisassemblerLLVMC.cpp. Patch by Dmitry Vyukov <dvyukov@google.com>. Also add the relevant files to the Xcode project. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|
32a56ec72ca8558ff0ef0a129f7ac1ca9b79bde4 |
|
17-Feb-2012 |
Sean Callanan <scallanan@apple.com> |
Added a new disassembler plugin, DisassemblerLLVMC, which uses the Disassembler.h interface to the LLVM disassemblers rather than the EnhancedDisassembly.h interface. Disassembler.h is a better-maintained API and will be stabler in the long term. Currently the output from Disassembler.h does not provide for symbolic disassembly in all the places that the old disassembler did, so I have gated (and disabled) the disassembler. It'll be easy to flip the switch later. In the meantime, to enable the new disassembler, uncomment "#define USE_NEW_DISASSEMBLER" in lldb.cpp. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
|