public unsafe bool CopyContext(Span <byte> context) { if (context.Length < ArmContext.Size) return(false); fixed(byte *ptr = context) { ArmContext *ctx = (ArmContext *)ptr; ctx->ContextFlags = ArmContext.ContextControl | ArmContext.ContextInteger; ctx->R0 = r0; ctx->R1 = r1; ctx->R2 = r2; ctx->R3 = r3; ctx->R4 = r4; ctx->R5 = r5; ctx->R6 = r6; ctx->R7 = r7; ctx->R8 = r8; ctx->R9 = r9; ctx->R10 = r10; ctx->R11 = fp; ctx->R12 = ip; ctx->Sp = sp; ctx->Lr = lr; ctx->Pc = pc; ctx->Cpsr = cpsr; } return(true); }
public unsafe bool CopyContext(uint contextFlags, uint contextSize, void *context) { if (contextSize != ArmContext.Size) { return(false); } ArmContext *ctx = (ArmContext *)context; ctx->ContextFlags = ArmContext.ContextControl | ArmContext.ContextInteger; ctx->R0 = r0; ctx->R1 = r1; ctx->R2 = r2; ctx->R3 = r3; ctx->R4 = r4; ctx->R5 = r5; ctx->R6 = r6; ctx->R7 = r7; ctx->R8 = r8; ctx->R9 = r9; ctx->R10 = r10; ctx->R11 = fp; ctx->R12 = ip; ctx->Sp = sp; ctx->Lr = lr; ctx->Pc = pc; ctx->Cpsr = cpsr; return(true); }