From 6dd4b57987aeb74366261834d865ee0fbefb15f6 Mon Sep 17 00:00:00 2001 From: Aidan Dodds Date: Thu, 10 Mar 2016 17:37:02 +0000 Subject: [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 llvm-svn: 263131 --- .../RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp') diff --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp index d636178d47e7..1d8ea656f09c 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) -- cgit v1.2.3