summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ABI
Commit message (Collapse)AuthorAgeFilesLines
...
* *** This commit represents a complete reformatting of the LLDB source codeKate Stone2016-09-0626-11358/+18957
| | | | | | | | | | | | | | | | | | | | | | | *** to conform to clang-format’s LLVM style. This kind of mass change has *** two obvious implications: Firstly, merging this particular commit into a downstream fork may be a huge effort. Alternatively, it may be worth merging all changes up to this commit, performing the same reformatting operation locally, and then discarding the merge for this particular commit. The commands used to accomplish this reformatting were as follows (with current working directory as the root of the repository): find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} + find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ; The version of clang-format used was 3.9.0, and autopep8 was 1.2.4. Secondly, “blame” style tools will generally point to this commit instead of a meaningful prior commit. There are alternatives available that will attempt to look through this change and find the appropriate prior commit. YMMV. llvm-svn: 280751
* Revert "Intel(R) Memory Protection Extensions (Intel(R) MPX) support."Dimitar Vlahovski2016-09-062-25/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit rL280668 because the register tests fail on i386 Linux. I investigated a little bit what causes the failure - there are missing registers when running 'register read -a'. This is the output I got at the bottom: """ ... Memory Protection Extensions: bnd0 = {0x0000000000000000 0x0000000000000000} bnd1 = {0x0000000000000000 0x0000000000000000} bnd2 = {0x0000000000000000 0x0000000000000000} bnd3 = {0x0000000000000000 0x0000000000000000} unknown: 2 registers were unavailable. """ Also looking at the packets exchanged between the client and server: """ ... history[308] tid=0x7338 < 19> send packet: $qRegisterInfo4a#d7 history[309] tid=0x7338 < 130> read packet: $name:bnd0;bitsize:128;offset:1032;encoding:vector;format:vector-uint64;set:Memory Protection Extensions;ehframe:101;dwarf:101;#48 history[310] tid=0x7338 < 19> send packet: $qRegisterInfo4b#d8 history[311] tid=0x7338 < 130> read packet: $name:bnd1;bitsize:128;offset:1048;encoding:vector;format:vector-uint64;set:Memory Protection Extensions;ehframe:102;dwarf:102;#52 history[312] tid=0x7338 < 19> send packet: $qRegisterInfo4c#d9 history[313] tid=0x7338 < 130> read packet: $name:bnd2;bitsize:128;offset:1064;encoding:vector;format:vector-uint64;set:Memory Protection Extensions;ehframe:103;dwarf:103;#53 history[314] tid=0x7338 < 19> send packet: $qRegisterInfo4d#da history[315] tid=0x7338 < 130> read packet: $name:bnd3;bitsize:128;offset:1080;encoding:vector;format:vector-uint64;set:Memory Protection Extensions;ehframe:104;dwarf:104;#54 history[316] tid=0x7338 < 19> send packet: $qRegisterInfo4e#db history[317] tid=0x7338 < 76> read packet: $name:bndcfgu;bitsize:64;offset:1096;encoding:vector;format:vector-uint8;#99 history[318] tid=0x7338 < 19> send packet: $qRegisterInfo4f#dc history[319] tid=0x7338 < 78> read packet: $name:bndstatus;bitsize:64;offset:1104;encoding:vector;format:vector-uint8;#8e ... """ The bndcfgu and bndstatus registers don't have the 'Memory Protections Extension' set. I looked at the code and it seems that that is set correctly. So I'm not sure what's the problem or where does it come from. Also there is a second failure related to something like this in the tests: """ registerSet.GetName().lower() """ For some reason the registerSet.GetName() returns None. llvm-svn: 280703
* Added the "frame diagnose" command and use its output to make crash info better.Sean Callanan2016-09-064-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When a process stops due to a crash, we get the crashing instruction and the crashing memory location (if there is one). From the user's perspective it is often unclear what the reason for the crash is in a symbolic sense. To address this, I have added new fuctionality to StackFrame to parse the disassembly and reconstruct the sequence of dereferneces and offsets that were applied to a known variable (or fuction retrn value) to obtain the invalid pointer. This makes use of enhancements in the disassembler, as well as new information provided by the DWARF expression infrastructure, and is exposed through a "frame diagnose" command. It is also used to provide symbolic information, when available, in the event of a crash. The algorithm is very rudimentary, and it needs a bunch of work, including - better parsing for assembly, preferably with help from LLVM - support for non-Apple platforms - cleanup of the algorithm core, preferably to make it all work in terms of Operands instead of register/offset pairs - improvement of the GetExpressioPath() logic to make prettier expression paths, and - better handling of vtables. I welcome all suggestios, improvements, and testcases. llvm-svn: 280692
* Intel(R) Memory Protection Extensions (Intel(R) MPX) support.Valentina Giusti2016-09-052-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: The Intel(R) Memory Protection Extensions (Intel(R) MPX) associates pointers to bounds, against which the software can check memory references to prevent out of bound memory access. This patch allows accessing the MPX registers: * bnd0-3: 128-bit registers to hold the bound values, * bndcfgu, bndstatus: 64-bit configuration registers, This patch also adds read/write tests for the MPX registers in the register command tests and adds a new subdirectory for MPX specific tests. Signed-off-by: Valentina Giusti <valentina.giusti@intel.com> Reviewers: labath, granata.enrico, lldb-commits, clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D24187 llvm-svn: 280668
* Fix more RegisterInfo initialization issues and quiet hundreds of warnings.Greg Clayton2016-08-089-631/+631
| | | | llvm-svn: 278063
* Fix RegisterInfo initializers to have all the required initializers after ↵Greg Clayton2016-08-084-193/+193
| | | | | | recent changes. This quiets a few hundred warnings on MacOSX. llvm-svn: 278060
* Typo corrections identified by codespellEd Maste2016-07-191-1/+1
| | | | | | | | | Submitted by giffunip@yahoo.com; I fixed a couple of nearby errors and incorrect changes in the patch. llvm.org/pr27634 llvm-svn: 275983
* Made templates that have Enumeration values as arguments work correctly.Greg Clayton2016-06-2412-32/+32
| | | | | | | | | | We were checking for integer types only before this. So I added the ability for CompilerType objects to check for integer and enum types. Then I searched for places that were using the CompilerType::IsIntegerType(...) function. Many of these places also wanted to be checking for enumeration types as well, so I have fixed those places. These are in the ABI plug-ins where we are figuring out which arguments would go in where in regisers/stack when making a function call, or determining where the return value would live. The real fix for this is to use clang to compiler a CGFunctionInfo and then modify the code to be able to take the IR and a calling convention and have the backend answer the questions correctly for us so we don't need to create a really bad copy of the ABI in each plug-in, but that is beyond the scope of this bug fix. Also added a test case to ensure this doesn't regress in the future. llvm-svn: 273750
* Revert r273524, it may have been the cause of a linux testbot failureJason Molenda2016-06-233-3/+3
| | | | | | | | for TestNamespaceLookup.py; didn't see anything obviously wrong so I'll need to look at this more closely before re-committing. (passed OK on macOS ;) llvm-svn: 273531
* Do some minor renames of "Mac OS X" to "macOS".Jason Molenda2016-06-233-3/+3
| | | | | | | | | There's uses of "macosx" that will be more tricky to change, like in triples (e.g. "x86_64-apple-macosx10.11") - for now I'm just updating source comments and strings printed for humans. llvm-svn: 273524
* [LLDB][MIPS] Fix floating point handling in case of thread step-outSagar Thakur2016-05-244-36/+181
| | | | | | | | | | | Patch by Nitesh Jain. Summary: These patch fix thread step-out for hard and soft float. Reviewers: jaydeep, bhushan, clayborg Differential Revision: http://reviews.llvm.org/D20416 llvm-svn: 270564
* Revert rL270207: "[LLDB][MIPS] Fix floating point handling in case of thread ↵Tamas Berghammer2016-05-204-181/+36
| | | | | | | | | | step-out" The CL causes a build breakage on platforms where sizeof(double) == sizeof(long double) and it incorrectly assumes that sizeof(double) and sizeof(long double) is the same on the host and the target. llvm-svn: 270214
* [LLDB][MIPS] Fix floating point handling in case of thread step-outSagar Thakur2016-05-204-36/+181
| | | | | | | | | | | Patch by Nitesh Jain. Summary: These patch fix thread step-out for hard and soft float. Reviewers: clayborg, bhushan, jaydeep Subscribers: mohit.bhakkad, sagar, sdardis Differential: D20416 llvm-svn: 270207
* Fix ABISysV_s390x::GetArgumentValuesUlrich Weigand2016-04-151-2/+1
| | | | | | | | This routine contained a stray "return false;" making part of the code never executed. Also, the stack offset where to find on-stack arguments was incorrect. llvm-svn: 266417
* Support Linux on SystemZ as platformUlrich Weigand2016-04-144-0/+932
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Linux on SystemZ: - A new ArchSpec value of eCore_s390x_generic - A new directory Plugins/ABI/SysV-s390x providing an ABI implementation - Register context support - Native Linux support including watchpoint support - ELF core file support - Misc. support throughout the code base (e.g. breakpoint opcodes) - Test case updates to support the platform This should provide complete support for debugging the SystemZ platform. Not yet supported are optional features like transaction support (zEC12) or SIMD vector support (z13). There is no instruction emulation, since our ABI requires that all code provide correct DWARF CFI at all PC locations in .eh_frame to support unwinding (i.e. -fasynchronous-unwind-tables is on by default). The implementation follows existing platforms in a mostly straightforward manner. A couple of things that are different: - We do not use PTRACE_PEEKUSER / PTRACE_POKEUSER to access single registers, since some registers (access register) reside at offsets in the user area that are multiples of 4, but the PTRACE_PEEKUSER interface only allows accessing aligned 8-byte blocks in the user area. Instead, we use a s390 specific ptrace interface PTRACE_PEEKUSR_AREA / PTRACE_POKEUSR_AREA that allows accessing a whole block of the user area in one go, so in effect allowing to treat parts of the user area as register sets. - SystemZ hardware does not provide any means to implement read watchpoints, only write watchpoints. In fact, we can only support a *single* write watchpoint (but this can span a range of arbitrary size). In LLDB this means we support only a single watchpoint. I've set all test cases that require read watchpoints (or multiple watchpoints) to expected failure on the platform. [ Note that there were two test cases that install a read/write watchpoint even though they nowhere rely on the "read" property. I've changed those to simply use plain write watchpoints. ] Differential Revision: http://reviews.llvm.org/D18978 llvm-svn: 266308
* Add/Improve complex, vector, aggregate types handling for SysV ARM ↵Omair Javaid2016-02-291-58/+122
| | | | | | | | | | (hard/soft) ABI. For details see: Differential revision: http://reviews.llvm.org/D17708 llvm-svn: 262218
* Fix Clang-tidy modernize-use-nullptr warnings in remaining files in ↵Eugene Zelenko2016-02-267-477/+447
| | | | | | source/Plugins/ABI; other minor fixes. llvm-svn: 262082
* Fix Clang-tidy modernize-use-nullptr warnings in some files in ↵Eugene Zelenko2016-02-265-602/+618
| | | | | | source/Plugins/ABI; other minor fixes. llvm-svn: 261952
* Fix all of the unannotated switch cases to annotate the fall through or do ↵Greg Clayton2016-02-264-38/+13
| | | | | | the right thing and break. llvm-svn: 261950
* Handle floating-point type homogeneous aggregate return values in ABISysV_armOmair Javaid2016-02-111-0/+76
| | | | | | | | For details refer to review link given below. Differential revision: http://reviews.llvm.org/D16975 llvm-svn: 260512
* [LLDB][MIPS] Fix TestExpressionInSyscall.py for MIPSBhushan D. Attarde2016-02-082-4/+26
| | | | | | | | | | | | SUMMARY: This patch fixes TestExpressionInSyscall.py and solves bug 23659 for MIPS. Corrected indentation at couple of places. Reviewers: clayborg Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits Differential Revision: http://reviews.llvm.org/D16916 llvm-svn: 260072
* Add support to detect arm hard float ABI based binaries for ABISysV_armOmair Javaid2016-02-052-7/+47
| | | | | | | | This patch adds logic to detect if underlying binary is using arm hard float abi and use that information while handling return values in ABISysV_arm. Differential revision: http://reviews.llvm.org/D16627 llvm-svn: 259885
* Remove autoconf support from source directories.Eugene Zelenko2016-01-2812-168/+0
| | | | | | Differential revision: http://reviews.llvm.org/D16662 llvm-svn: 259098
* [LLDB][MIPS] Handle PIC calling convention for MIPS64Bhushan D. Attarde2016-01-121-0/+8
| | | | | | | | | | | | SUMMARY: This patch sets up register r25 with the address of function to be called in PrepareTrivialCall(). This is required as per MIPS PIC calling convention. Reviewers: clayborg Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits Differential Revision: http://reviews.llvm.org/D16046 llvm-svn: 257441
* Include IR/DerivedTypes.h instead of IR/Type.h so to match llvm change r256406.Craig Topper2015-12-251-1/+1
| | | | llvm-svn: 256407
* Remove hardcoded registers from Hexagon ABITed Woodward2015-12-111-10/+21
| | | | | | | | | | | | Summary: The Hexagon ABI plugin uses hardcoded registers when setting up function calls. This is OK for the Hexagon simulator, but the register numbers are different on the gdbserver running on hardware. Change the hardcoded registers to LLDB generic registers. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D15457 llvm-svn: 255374
* [LLDB][MIPS] Handle PIC calling convention for MIPS32Bhushan D. Attarde2015-12-081-6/+37
| | | | | | | | | | | | SUMMARY: - PrepareTrivialCall() to setup register r25 with the address of function to be called. - RegisterIsCalleeSaved() to use name of a register instead of its byte_offset. Reviewers: clayborg Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits Differential Revision: http://reviews.llvm.org/D15273 llvm-svn: 255005
* The MacOSXi386 ABI should be used for watchos simulator debug sessions.Jason Molenda2015-11-101-1/+1
| | | | | | | | | | Also, add an async error message if the dyld solib loaded callback function can't find an ABI (which results in no solibs being loaded in the process). This is a big error and we should call attention to it. <rdar://problem/23471384> llvm-svn: 252581
* Add support for the armv7k ABI which has some smallJason Molenda2015-11-052-2/+112
| | | | | | changes from the normal armv7 ABI used on darwin. llvm-svn: 252225
* [LLDB] Fix Clang-tidy modernize-use-override warnings in source/Plugins/ABI; ↵Eugene Zelenko2015-10-1612-420/+435
| | | | | | | | other minor fixes. Differential Revision: http://reviews.llvm.org/D13684 llvm-svn: 250538
* Remove unused virtuals from ABISysV_ppc*Bruce Mitchener2015-10-072-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The StackUsesFrames and FunctionCallsChangeCFA virtual functions aren't used anywhere and aren't overridden by anything. They were introduced when the ABISysV_ppc* code was added and weren't used at the time. The review for the commit that added them can be found at http://reviews.llvm.org/D5988 The commit comment notes that backtraces don't yet work: Backtraces don't work. This is due to PowerPC ABI using a backchain pointer in memory, instead of a dedicated frame pointer register for the backchain. So there is a possibility these were added with the intent of using them in the future. Reviewers: clayborg, jingham, jhibbits, emaste Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13506 llvm-svn: 249563
* Remove GetShortPluginName.Bruce Mitchener2015-10-062-10/+0
| | | | | | | | | | | | Summary: This was deprecated and removed. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13463 llvm-svn: 249452
* [MIPS] Emulate microMIPS instructionsBhushan D. Attarde2015-10-061-6/+4
| | | | | | | | | | | | | | | | | | | | | | SUMMARY: This patch includes: 1. Emulation of prologue/epilogue and branch instructions for microMIPS. 2. Setting up alternate disassembler (to be used for microMIPS). So there will be two disassembler instances, one for microMIPS and other for MIPS. Appropriate disassembler will be used based on the address class of instruction address. 3. Some of the branch instructions does not have fixed sized delay slot, that means delay slot instruction can be of 2-byte or 4-byte. For this "m_next_inst_size" has been introduced which stores the size of next instruction (i.e size of delay slot instruction in case of branch). This can be used wherever the size of next instruction is required. 4. A minor change to use mips32 register names instead of mips64 names. Reviewers: clayborg, tberghammer Subscribers: mohit.bhakkad, sagar, jaydeep, nitesh.jain, lldb-commits Differential Revision: http://reviews.llvm.org/D13282 llvm-svn: 249381
* Rename clang_type -> compiler_type for variables.Bruce Mitchener2015-09-2412-240/+240
| | | | | | | | | | Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13102 llvm-svn: 248461
* Further reduction of Clang-related header inclusion.Bruce Mitchener2015-09-2112-12/+1
| | | | | | | | | | Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13018 llvm-svn: 248176
* Clean up register naming conventions inside lldb. Jason Molenda2015-09-1511-1296/+928
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "gcc" register numbers are now correctly referred to as "ehframe" register numbers. In almost all cases, ehframe and dwarf register numbers are identical (the one exception is i386 darwin where ehframe regnums were incorrect). The old "gdb" register numbers, which I incorrectly thought were stabs register numbers, are now referred to as "Process Plugin" register numbers. This is the register numbering scheme that the remote process controller stub (lldb-server, gdbserver, core file support, kdp server, remote jtag devices, etc) uses to refer to the registers. The process plugin register numbers may not be contiguous - there are remote jtag devices that have gaps in their register numbering schemes. I removed all of the enums for "gdb" register numbers that we had in lldb - these were meaningless - and I put LLDB_INVALID_REGNUM in all of the register tables for the Process Plugin regnum slot. This change is almost entirely mechnical; the one actual change in here is to ProcessGDBRemote.cpp's ParseRegisters() which parses the qXfer:features:read:target.xml response. As it parses register definitions from the xml, it will assign sequential numbers as the eRegisterKindLLDB numbers (the lldb register numberings must be sequential, without any gaps) and if the xml file specifies register numbers, those will be used as the eRegisterKindProcessPlugin register numbers (and those may have gaps). A J-Link jtag device's target.xml does contain a gap in register numbers, and it only specifies the register numbers for the registers after that gap. The device supports many different ARM boards and probably selects different part of its register file as appropriate. http://reviews.llvm.org/D12791 <rdar://problem/22623262> llvm-svn: 247741
* Use LLVM casting for TypeSystem so you can cast it to subclasses.Greg Clayton2015-09-081-6/+0
| | | | | | | | | | | | | | This will keep our code cleaner and it removes the need for intrusive additions to TypeSystem like: class TypeSystem { virtual ClangASTContext * AsClangASTContext() = 0; } As you can now just use the llvm::dyn_cast and other casts. llvm-svn: 247041
* SysV ABI for i386 ArchitectureAbhishek Aggarwal2015-09-041-2/+143
| | | | | | | | | | | | | | | | | | Summary: - Capability to force return user specified values from inside of a function on lldb command terminal - Support for Integral, Pointer and Floating Point values Signed-off-by: Abhishek Aggarwal <abhishek.a.aggarwal@intel.com> Reviewers: jingham, clayborg Subscribers: tberghammer Differential Revision: http://reviews.llvm.org/D12595 llvm-svn: 246841
* Change the (internal to this file only) enum names from gcc_ toJason Molenda2015-09-041-116/+116
| | | | | | | | | | | | | ehframe_ & from gdb_ to stabs_ for clarity. Also document the fact that i386 eh_frame on Darwin has the register numbers swapped for ebp/esp from the DWARF register numbers so no one copies these defines for other i386 ABI plugins. This bug only ever existed on Darwin. No code changes, just renaming variables. llvm-svn: 246834
* [cmake] Remove LLVM_NO_RTTI.Bruce Mitchener2015-09-0312-24/+0
| | | | | | | | | | | | | | Summary: This doesn't exist in other LLVM projects any longer and doesn't do anything. Reviewers: chaoren, labath Subscribers: emaste, tberghammer, lldb-commits, danalbert Differential Revision: http://reviews.llvm.org/D12586 llvm-svn: 246749
* Remove ABIMacOSX_i386::PrepareNormalCall().Bruce Mitchener2015-09-012-185/+0
| | | | | | | | | | | | | | | Summary: This was removed from the other ABI plugins long ago. This removes a warning that was happening in this unused code as a result of adding 2 new types to Scalar.h (e_uint128 and e_sint128). Reviewers: clayborg Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12514 llvm-svn: 246608
* Final bit of type system cleanup that abstracts declaration contexts into ↵Greg Clayton2015-08-2411-37/+33
| | | | | | | | | | | | | | | | | | | | lldb_private::CompilerDeclContext and renames ClangType to CompilerType in many accessors and functions. Create a new "lldb_private::CompilerDeclContext" class that will replace all direct uses of "clang::DeclContext" when used in compiler agnostic code, yet still allow for conversion to clang::DeclContext subclasses by clang specific code. This completes the abstraction of type parsing by removing all "clang::" references from the SymbolFileDWARF. The new "lldb_private::CompilerDeclContext" class abstracts decl contexts found in compiler type systems so they can be used in internal API calls. The TypeSystem is required to support CompilerDeclContexts with new pure virtual functions that start with "DeclContext" in the member function names. Converted all code that used lldb_private::ClangNamespaceDecl over to use the new CompilerDeclContext class and removed the ClangNamespaceDecl.cpp and ClangNamespaceDecl.h files. Removed direct use of clang APIs from SBType and now use the abstract type systems to correctly explore types. Bulk renames for things that used to return a ClangASTType which is now CompilerType: "Type::GetClangFullType()" to "Type::GetFullCompilerType()" "Type::GetClangLayoutType()" to "Type::GetLayoutCompilerType()" "Type::GetClangForwardType()" to "Type::GetForwardCompilerType()" "Value::GetClangType()" to "Value::GetCompilerType()" "Value::SetClangType (const CompilerType &)" to "Value::SetCompilerType (const CompilerType &)" "ValueObject::GetClangType ()" to "ValueObject::GetCompilerType()" many more renames that are similar. llvm-svn: 245905
* A messy bit of cleanup: Move towards more descriptive namesJason Molenda2015-08-159-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for eh_frame and stabs register numberings. This is not complete but it's a step in the right direction. It's almost entirely mechanical. lldb informally uses "gcc register numbering" to mean eh_frame. Why? Probably because there's a notorious bug with gcc on i386 darwin where the register numbers in eh_frame were incorrect. In all other cases, eh_frame register numbering is identical to dwarf. lldb informally uses "gdb register numbering" to mean stabs. There are no official definitions of stabs register numbers for different architectures, so the implementations of gdb and gcc are the de facto reference source. There were some incorrect uses of these register number types in lldb already. I fixed the ones that I saw as I made this change. This commit changes all references to "gcc" and "gdb" register numbers in lldb to "eh_frame" and "stabs" to make it clear what is actually being represented. lldb cannot parse the stabs debug format, and given that no one is using stabs any more, it is unlikely that it ever will. A more comprehensive cleanup would remove the stabs register numbers altogether - it's unnecessary cruft / complication to all of our register structures. In ProcessGDBRemote, when we get register definitions from the gdb-remote stub, we expect to see "gcc:" (qRegisterInfo) or "gcc_regnum" (qXfer:features:read: packet to get xml payload). This patch changes ProcessGDBRemote to also accept "ehframe:" and "ehframe_regnum" from these remotes. I did not change GDBRemoteCommunicationServerLLGS or debugserver to send these new packets. I don't know what kind of interoperability constraints we might be working under. At some point in the future we should transition to using the more descriptive names. Throughout lldb we're still using enum names like "gcc_r0" and "gdb_r0", for eh_frame and stabs register numberings. These should be cleaned up eventually too. The sources link cleanly on macosx native with xcode build. I don't think we'll see problems on other platforms but please let me know if I broke anyone. llvm-svn: 245141
* Fixed build failures caused by rL245026. Changed occurrences of ClangASTType ↵Bhushan D. Attarde2015-08-141-3/+3
| | | | | | to CompilerType. llvm-svn: 245033
* Handle floating point and aggregate return types in SysV-mips64 ABIBhushan D. Attarde2015-08-141-15/+300
| | | | | | | | | | | SUMMARY: This patch adds support of floating point and aggregate return types in GetReturnValueObjectImpl() for mips64. Reviewers: clayborg, jingham Subscribers: mohit.bhakkad, nitesh.jain, sagar, jaydeep, lldb-commits Differential Revision: http://reviews.llvm.org/D11641 llvm-svn: 245026
* [MIPS]Handle floating point and aggregate return types in SysV-mips [32 bit] ABIBhushan D. Attarde2015-08-141-3/+50
| | | | | | | | | | | SUMMARY: This patch adds support of floating point and aggregate return types in GetReturnValueObjectImpl() for mips32 Reviewers: clayborg Subscribers: mohit.bhakkad, nitesh.jain, sagar, jaydeep, lldb-commits Differential Revision: http://reviews.llvm.org/D11930 llvm-svn: 245020
* ClangASTType is now CompilerType.Greg Clayton2015-08-1124-71/+71
| | | | | | This is more preparation for multiple different kinds of types from different compilers (clang, Pascal, Go, RenderScript, Swift, etc). llvm-svn: 244689
* First step in getting LLDB ready to support multiple different type systems.Greg Clayton2015-08-112-5/+2
| | | | | | | | This is the work done by Ryan Brown from http://reviews.llvm.org/D8712 that makes a TypeSystem class and abstracts types to be able to use a type system. All tests pass on MacOSX and passed on linux the last time this was submitted. llvm-svn: 244679
* Fix TestReturnValue.py after 242903 changes that added vector register ↵Greg Clayton2015-07-222-14/+83
| | | | | | | | return value tests. These were failing on x86_64 and i386. It also pointed out an error in our return values where the ABI only relies on xmm registers, not ymm registers for vector return types. llvm-svn: 242972
* Improve SysV ABI for ARM to handle return values with vector return typeTamas Berghammer2015-07-221-10/+39
| | | | | | | | | | | This is required to print out the rerun value of funcions returning types with the following attributes: __attribute__((__vector_size__(8))); __attribute__((ext_vector_type(2))); Differential revision: http://reviews.llvm.org/D11416 llvm-svn: 242903
OpenPOWER on IntegriCloud