llvm-project/lldb/source/Expression
Ewan Crawford 90ff791141 Expression evaluation, a new ThreadPlanCallFunctionUsingABI for executing a function call on target via register manipulation
For Hexagon we want to be able to call functions during debugging, however currently lldb only supports this when there is JIT support. 
Although emulation using IR interpretation is an alternative, it is currently limited in that it can't make function calls.

In this patch we have extended the IR interpreter so that it can execute a function call on the target using register manipulation. 
To do this we need to handle the Call IR instruction, passing arguments to a new thread plan and collecting any return values to pass back into the IR interpreter. 

The new thread plan is needed to call an alternative ABI interface of "ABI::PerpareTrivialCall()", allowing more detailed information about arguments and return values.

Reviewers: jingham, spyffe

Subscribers: emaste, lldb-commits, ted, ADodds, deepak2427

Differential Revision: http://reviews.llvm.org/D9404

llvm-svn: 242137
2015-07-14 10:56:58 +00:00
..
ASTDumper.cpp Revert "Introduce a TypeSystem interface to support adding non-clang languages." 2015-06-08 23:38:06 +00:00
ASTResultSynthesizer.cpp In commit clang r226096, DefinitionRequired has been removed. Do the same in lldb implementation 2015-01-15 11:50:50 +00:00
ASTStructExtractor.cpp In commit clang r226096, DefinitionRequired has been removed. Do the same in lldb implementation 2015-01-15 11:50:50 +00:00
CMakeLists.txt Added CMake support so all the Clang modules code 2014-12-05 01:31:55 +00:00
ClangASTSource.cpp Revert "Introduce a TypeSystem interface to support adding non-clang languages." 2015-06-08 23:38:06 +00:00
ClangExpressionDeclMap.cpp Fixed a problem where variables in modules were not appropriately discovered by 2015-07-10 17:34:23 +00:00
ClangExpressionParser.cpp Expression evaluation, a new ThreadPlanCallFunctionUsingABI for executing a function call on target via register manipulation 2015-07-14 10:56:58 +00:00
ClangExpressionVariable.cpp Add the ability for an SBValue to create a persisted version of itself. 2014-12-08 23:13:56 +00:00
ClangFunction.cpp ClangFunction: Fix destruction order of parser and execution unit 2014-12-10 04:59:18 +00:00
ClangModulesDeclVendor.cpp Fixed the C modules test case on Darwin by streamlining its code. 2015-07-08 00:13:49 +00:00
ClangPersistentVariables.cpp I have brought LLDB up-to-date with top of tree 2012-02-04 08:49:35 +00:00
ClangUserExpression.cpp Expression evaluation, a new ThreadPlanCallFunctionUsingABI for executing a function call on target via register manipulation 2015-07-14 10:56:58 +00:00
ClangUtilityFunction.cpp Reverse out r219169 related to quote handling. 2014-10-10 01:11:39 +00:00
DWARFExpression.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
ExpressionSourceCode.cpp Made macros from modules be injected before our 2015-04-30 21:49:58 +00:00
IRDynamicChecks.cpp Revert "Update for LLVM API change in r221024" 2014-11-12 01:59:53 +00:00
IRExecutionUnit.cpp Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so. 2015-07-08 22:32:23 +00:00
IRForTarget.cpp Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so. 2015-07-08 22:32:23 +00:00
IRInterpreter.cpp Expression evaluation, a new ThreadPlanCallFunctionUsingABI for executing a function call on target via register manipulation 2015-07-14 10:56:58 +00:00
IRMemoryMap.cpp Expression evaluation, a new ThreadPlanCallFunctionUsingABI for executing a function call on target via register manipulation 2015-07-14 10:56:58 +00:00
Makefile remove trailing whitespace + remove some useless comments 2014-07-06 17:54:58 +00:00
Materializer.cpp Resubmitting 240466 after fixing the linux test suite failures. 2015-06-25 21:46:34 +00:00