dbghelp: Implement arm_fetch_context_reg.

This commit is contained in:
André Hentschel 2011-04-15 19:34:32 +02:00 committed by Alexandre Julliard
parent 1bae92b9bb
commit bdcc47d9e7
1 changed files with 24 additions and 1 deletions

View File

@ -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;
}