in Crashlytics/Crashlytics/Components/FIRCLSProcess.c [289:387]
static bool FIRCLSProcessRecordThreadRegisters(FIRCLSThreadContext context, FIRCLSFile *file) {
#if CLS_CPU_ARM
FIRCLSFileWriteHashEntryUint64(file, "r0", context.__ss.__r[0]);
FIRCLSFileWriteHashEntryUint64(file, "r1", context.__ss.__r[1]);
FIRCLSFileWriteHashEntryUint64(file, "r2", context.__ss.__r[2]);
FIRCLSFileWriteHashEntryUint64(file, "r3", context.__ss.__r[3]);
FIRCLSFileWriteHashEntryUint64(file, "r4", context.__ss.__r[4]);
FIRCLSFileWriteHashEntryUint64(file, "r5", context.__ss.__r[5]);
FIRCLSFileWriteHashEntryUint64(file, "r6", context.__ss.__r[6]);
FIRCLSFileWriteHashEntryUint64(file, "r7", context.__ss.__r[7]);
FIRCLSFileWriteHashEntryUint64(file, "r8", context.__ss.__r[8]);
FIRCLSFileWriteHashEntryUint64(file, "r9", context.__ss.__r[9]);
FIRCLSFileWriteHashEntryUint64(file, "r10", context.__ss.__r[10]);
FIRCLSFileWriteHashEntryUint64(file, "r11", context.__ss.__r[11]);
FIRCLSFileWriteHashEntryUint64(file, "ip", context.__ss.__r[12]);
FIRCLSFileWriteHashEntryUint64(file, "sp", context.__ss.__sp);
FIRCLSFileWriteHashEntryUint64(file, "lr", context.__ss.__lr);
FIRCLSFileWriteHashEntryUint64(file, "pc", context.__ss.__pc);
FIRCLSFileWriteHashEntryUint64(file, "cpsr", context.__ss.__cpsr);
#elif CLS_CPU_ARM64
FIRCLSFileWriteHashEntryUint64(file, "x0", context.__ss.__x[0]);
FIRCLSFileWriteHashEntryUint64(file, "x1", context.__ss.__x[1]);
FIRCLSFileWriteHashEntryUint64(file, "x2", context.__ss.__x[2]);
FIRCLSFileWriteHashEntryUint64(file, "x3", context.__ss.__x[3]);
FIRCLSFileWriteHashEntryUint64(file, "x4", context.__ss.__x[4]);
FIRCLSFileWriteHashEntryUint64(file, "x5", context.__ss.__x[5]);
FIRCLSFileWriteHashEntryUint64(file, "x6", context.__ss.__x[6]);
FIRCLSFileWriteHashEntryUint64(file, "x7", context.__ss.__x[7]);
FIRCLSFileWriteHashEntryUint64(file, "x8", context.__ss.__x[8]);
FIRCLSFileWriteHashEntryUint64(file, "x9", context.__ss.__x[9]);
FIRCLSFileWriteHashEntryUint64(file, "x10", context.__ss.__x[10]);
FIRCLSFileWriteHashEntryUint64(file, "x11", context.__ss.__x[11]);
FIRCLSFileWriteHashEntryUint64(file, "x12", context.__ss.__x[12]);
FIRCLSFileWriteHashEntryUint64(file, "x13", context.__ss.__x[13]);
FIRCLSFileWriteHashEntryUint64(file, "x14", context.__ss.__x[14]);
FIRCLSFileWriteHashEntryUint64(file, "x15", context.__ss.__x[15]);
FIRCLSFileWriteHashEntryUint64(file, "x16", context.__ss.__x[16]);
FIRCLSFileWriteHashEntryUint64(file, "x17", context.__ss.__x[17]);
FIRCLSFileWriteHashEntryUint64(file, "x18", context.__ss.__x[18]);
FIRCLSFileWriteHashEntryUint64(file, "x19", context.__ss.__x[19]);
FIRCLSFileWriteHashEntryUint64(file, "x20", context.__ss.__x[20]);
FIRCLSFileWriteHashEntryUint64(file, "x21", context.__ss.__x[21]);
FIRCLSFileWriteHashEntryUint64(file, "x22", context.__ss.__x[22]);
FIRCLSFileWriteHashEntryUint64(file, "x23", context.__ss.__x[23]);
FIRCLSFileWriteHashEntryUint64(file, "x24", context.__ss.__x[24]);
FIRCLSFileWriteHashEntryUint64(file, "x25", context.__ss.__x[25]);
FIRCLSFileWriteHashEntryUint64(file, "x26", context.__ss.__x[26]);
FIRCLSFileWriteHashEntryUint64(file, "x27", context.__ss.__x[27]);
FIRCLSFileWriteHashEntryUint64(file, "x28", context.__ss.__x[28]);
FIRCLSFileWriteHashEntryUint64(file, "fp", FIRCLSThreadContextGetFramePointer(&context));
FIRCLSFileWriteHashEntryUint64(file, "sp", FIRCLSThreadContextGetStackPointer(&context));
FIRCLSFileWriteHashEntryUint64(file, "lr", FIRCLSThreadContextGetLinkRegister(&context));
FIRCLSFileWriteHashEntryUint64(file, "pc", FIRCLSThreadContextGetPC(&context));
FIRCLSFileWriteHashEntryUint64(file, "cpsr", context.__ss.__cpsr);
#elif CLS_CPU_I386
FIRCLSFileWriteHashEntryUint64(file, "eax", context.__ss.__eax);
FIRCLSFileWriteHashEntryUint64(file, "ebx", context.__ss.__ebx);
FIRCLSFileWriteHashEntryUint64(file, "ecx", context.__ss.__ecx);
FIRCLSFileWriteHashEntryUint64(file, "edx", context.__ss.__edx);
FIRCLSFileWriteHashEntryUint64(file, "edi", context.__ss.__edi);
FIRCLSFileWriteHashEntryUint64(file, "esi", context.__ss.__esi);
FIRCLSFileWriteHashEntryUint64(file, "ebp", context.__ss.__ebp);
FIRCLSFileWriteHashEntryUint64(file, "esp", context.__ss.__esp);
FIRCLSFileWriteHashEntryUint64(file, "ss", context.__ss.__ss);
FIRCLSFileWriteHashEntryUint64(file, "eflags", context.__ss.__eflags);
FIRCLSFileWriteHashEntryUint64(file, "eip", context.__ss.__eip);
FIRCLSFileWriteHashEntryUint64(file, "cs", context.__ss.__cs);
FIRCLSFileWriteHashEntryUint64(file, "ds", context.__ss.__ds);
FIRCLSFileWriteHashEntryUint64(file, "es", context.__ss.__es);
FIRCLSFileWriteHashEntryUint64(file, "fs", context.__ss.__fs);
FIRCLSFileWriteHashEntryUint64(file, "gs", context.__ss.__gs);
// how do we get the cr2 register?
#elif CLS_CPU_X86_64
FIRCLSFileWriteHashEntryUint64(file, "rax", context.__ss.__rax);
FIRCLSFileWriteHashEntryUint64(file, "rbx", context.__ss.__rbx);
FIRCLSFileWriteHashEntryUint64(file, "rcx", context.__ss.__rcx);
FIRCLSFileWriteHashEntryUint64(file, "rdx", context.__ss.__rdx);
FIRCLSFileWriteHashEntryUint64(file, "rdi", context.__ss.__rdi);
FIRCLSFileWriteHashEntryUint64(file, "rsi", context.__ss.__rsi);
FIRCLSFileWriteHashEntryUint64(file, "rbp", context.__ss.__rbp);
FIRCLSFileWriteHashEntryUint64(file, "rsp", context.__ss.__rsp);
FIRCLSFileWriteHashEntryUint64(file, "r8", context.__ss.__r8);
FIRCLSFileWriteHashEntryUint64(file, "r9", context.__ss.__r9);
FIRCLSFileWriteHashEntryUint64(file, "r10", context.__ss.__r10);
FIRCLSFileWriteHashEntryUint64(file, "r11", context.__ss.__r11);
FIRCLSFileWriteHashEntryUint64(file, "r12", context.__ss.__r12);
FIRCLSFileWriteHashEntryUint64(file, "r13", context.__ss.__r13);
FIRCLSFileWriteHashEntryUint64(file, "r14", context.__ss.__r14);
FIRCLSFileWriteHashEntryUint64(file, "r15", context.__ss.__r15);
FIRCLSFileWriteHashEntryUint64(file, "rip", context.__ss.__rip);
FIRCLSFileWriteHashEntryUint64(file, "rflags", context.__ss.__rflags);
FIRCLSFileWriteHashEntryUint64(file, "cs", context.__ss.__cs);
FIRCLSFileWriteHashEntryUint64(file, "fs", context.__ss.__fs);
FIRCLSFileWriteHashEntryUint64(file, "gs", context.__ss.__gs);
#endif
return true;
}