Module: wine Branch: master Commit: f2fc5e6e175ce1132a1d6ecce0099398df75cdd2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f2fc5e6e175ce1132a1d6ecce0...
Author: André Hentschel nerv@dawncrow.de Date: Wed Apr 13 20:43:37 2011 +0200
dbghelp: Implement sparc_get_addr.
---
dlls/dbghelp/cpu_sparc.c | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/dlls/dbghelp/cpu_sparc.c b/dlls/dbghelp/cpu_sparc.c index 1de9436..6a788b9 100644 --- a/dlls/dbghelp/cpu_sparc.c +++ b/dlls/dbghelp/cpu_sparc.c @@ -32,15 +32,18 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp); static unsigned sparc_get_addr(HANDLE hThread, const CONTEXT* ctx, enum cpu_addr ca, ADDRESS64* addr) { - switch (ca) + addr->Mode = AddrModeFlat; + addr->Segment = 0; /* don't need segment */ + switch (ca) { - case cpu_addr_pc: - case cpu_addr_stack: - case cpu_addr_frame: - default: - FIXME("not done for Sparc\n"); +#ifdef __sparc__ + case cpu_addr_pc: addr->Offset = ctx->pc; return TRUE; + case cpu_addr_stack: addr->Offset = ctx->o6; return TRUE; + case cpu_addr_frame: addr->Offset = ctx->i6; return TRUE; +#endif + default: addr->Mode = -1; + return FALSE; } - return FALSE; }
static BOOL sparc_stack_walk(struct cpu_stack_walk* csw, LPSTACKFRAME64 frame, CONTEXT* context)