André Hentschel : dbghelp: Implement arm_fetch_context_reg.
Alexandre Julliard
julliard at winehq.org
Mon Apr 18 11:10:56 CDT 2011
Module: wine
Branch: master
Commit: bdcc47d9e75f57fef016bacd4b0b5d563e424fb2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bdcc47d9e75f57fef016bacd4b0b5d563e424fb2
Author: André Hentschel <nerv at dawncrow.de>
Date: Fri Apr 15 19:34:32 2011 +0200
dbghelp: Implement arm_fetch_context_reg.
---
dlls/dbghelp/cpu_arm.c | 25 ++++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/dlls/dbghelp/cpu_arm.c b/dlls/dbghelp/cpu_arm.c
index f201a1d..365caa3 100644
--- a/dlls/dbghelp/cpu_arm.c
+++ b/dlls/dbghelp/cpu_arm.c
@@ -63,7 +63,30 @@ static unsigned arm_map_dwarf_register(unsigned regno)
static void* arm_fetch_context_reg(CONTEXT* ctx, unsigned regno, unsigned* size)
{
- FIXME("not done for ARM\n");
+#ifdef __arm__
+ switch (regno)
+ {
+ case CV_ARM_R0 + 0: *size = sizeof(ctx->R0); return &ctx->R0;
+ case CV_ARM_R0 + 1: *size = sizeof(ctx->R1); return &ctx->R1;
+ case CV_ARM_R0 + 2: *size = sizeof(ctx->R2); return &ctx->R2;
+ case CV_ARM_R0 + 3: *size = sizeof(ctx->R3); return &ctx->R3;
+ case CV_ARM_R0 + 4: *size = sizeof(ctx->R4); return &ctx->R4;
+ case CV_ARM_R0 + 5: *size = sizeof(ctx->R5); return &ctx->R5;
+ case CV_ARM_R0 + 6: *size = sizeof(ctx->R6); return &ctx->R6;
+ case CV_ARM_R0 + 7: *size = sizeof(ctx->R7); return &ctx->R7;
+ case CV_ARM_R0 + 8: *size = sizeof(ctx->R8); return &ctx->R8;
+ case CV_ARM_R0 + 9: *size = sizeof(ctx->R9); return &ctx->R9;
+ case CV_ARM_R0 + 10: *size = sizeof(ctx->R10); return &ctx->R10;
+ case CV_ARM_R0 + 11: *size = sizeof(ctx->Fp); return &ctx->Fp;
+ case CV_ARM_R0 + 12: *size = sizeof(ctx->Ip); return &ctx->Ip;
+
+ case CV_ARM_SP: *size = sizeof(ctx->Sp); return &ctx->Sp;
+ case CV_ARM_LR: *size = sizeof(ctx->Lr); return &ctx->Lr;
+ case CV_ARM_PC: *size = sizeof(ctx->Pc); return &ctx->Pc;
+ case CV_ARM_CPSR: *size = sizeof(ctx->Cpsr); return &ctx->Cpsr;
+ }
+#endif
+ FIXME("Unknown register %x\n", regno);
return NULL;
}
More information about the wine-cvs
mailing list