summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
diff options
context:
space:
mode:
authorAidan Dodds <aidan@codeplay.com>2016-03-10 17:37:02 +0000
committerAidan Dodds <aidan@codeplay.com>2016-03-10 17:37:02 +0000
commit6dd4b57987aeb74366261834d865ee0fbefb15f6 (patch)
tree3858cf34d6b699cd684dc3b1733ab0bc2549d0d5 /lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
parent17e07c0ab4820b33df2dd12f2330875d547e8af7 (diff)
downloadbcm5719-llvm-6dd4b57987aeb74366261834d865ee0fbefb15f6.tar.gz
bcm5719-llvm-6dd4b57987aeb74366261834d865ee0fbefb15f6.zip
[Renderscript] Add stack argument reading code for Mipsel 2
This commit implements the reading of stack spilled function arguments for little endian MIPS targets. Committed on behalf of: Dean De Leo <dean@codeplay.com> llvm-svn: 263131
Diffstat (limited to 'lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp')
-rw-r--r--lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
index d636178d47e..1d8ea656f09 100644
--- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
+++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
@@ -364,8 +364,15 @@ GetArgsMipsel(GetArgsCtx &ctx, ArgItem *arg_list, size_t num_args)
// arguments passed on the stack
else
{
- if (log)
- log->Printf("%s - reading arguments spilled to stack not implemented.", __FUNCTION__);
+ const size_t arg_size = sizeof(uint32_t);
+ uint64_t sp = ctx.reg_ctx->GetSP();
+ uint32_t offset = i * arg_size;
+ arg.value = 0;
+ Error error;
+ size_t bytes_read = ctx.process->ReadMemory(sp + offset, &arg.value, arg_size, error);
+ success = (error.Success() && bytes_read == arg_size);
+ if (!success && log)
+ log->Printf ("RenderScriptRuntime::GetArgSimple - error reading Mips stack: %s.", error.AsCString());
}
// fail if we couldn't read this argument
if (!success)
OpenPOWER on IntegriCloud