uintptr_t FIRCLSDwarfUnwindGetRegisterValue()

in Crashlytics/Crashlytics/Unwind/FIRCLSUnwind_arm.c [118:191]


uintptr_t FIRCLSDwarfUnwindGetRegisterValue(const FIRCLSThreadContext* registers, uint64_t num) {
  switch (num) {
    case CLS_DWARF_ARM64_X0:
      return registers->__ss.__x[0];
    case CLS_DWARF_ARM64_X1:
      return registers->__ss.__x[1];
    case CLS_DWARF_ARM64_X2:
      return registers->__ss.__x[2];
    case CLS_DWARF_ARM64_X3:
      return registers->__ss.__x[3];
    case CLS_DWARF_ARM64_X4:
      return registers->__ss.__x[4];
    case CLS_DWARF_ARM64_X5:
      return registers->__ss.__x[5];
    case CLS_DWARF_ARM64_X6:
      return registers->__ss.__x[6];
    case CLS_DWARF_ARM64_X7:
      return registers->__ss.__x[7];
    case CLS_DWARF_ARM64_X8:
      return registers->__ss.__x[8];
    case CLS_DWARF_ARM64_X9:
      return registers->__ss.__x[9];
    case CLS_DWARF_ARM64_X10:
      return registers->__ss.__x[10];
    case CLS_DWARF_ARM64_X11:
      return registers->__ss.__x[11];
    case CLS_DWARF_ARM64_X12:
      return registers->__ss.__x[12];
    case CLS_DWARF_ARM64_X13:
      return registers->__ss.__x[13];
    case CLS_DWARF_ARM64_X14:
      return registers->__ss.__x[14];
    case CLS_DWARF_ARM64_X15:
      return registers->__ss.__x[15];
    case CLS_DWARF_ARM64_X16:
      return registers->__ss.__x[16];
    case CLS_DWARF_ARM64_X17:
      return registers->__ss.__x[17];
    case CLS_DWARF_ARM64_X18:
      return registers->__ss.__x[18];
    case CLS_DWARF_ARM64_X19:
      return registers->__ss.__x[19];
    case CLS_DWARF_ARM64_X20:
      return registers->__ss.__x[20];
    case CLS_DWARF_ARM64_X21:
      return registers->__ss.__x[21];
    case CLS_DWARF_ARM64_X22:
      return registers->__ss.__x[22];
    case CLS_DWARF_ARM64_X23:
      return registers->__ss.__x[23];
    case CLS_DWARF_ARM64_X24:
      return registers->__ss.__x[24];
    case CLS_DWARF_ARM64_X25:
      return registers->__ss.__x[25];
    case CLS_DWARF_ARM64_X26:
      return registers->__ss.__x[26];
    case CLS_DWARF_ARM64_X27:
      return registers->__ss.__x[27];
    case CLS_DWARF_ARM64_X28:
      return registers->__ss.__x[28];
    case CLS_DWARF_ARM64_FP:
      return FIRCLSThreadContextGetFramePointer(registers);
    case CLS_DWARF_ARM64_LR:
      return FIRCLSThreadContextGetLinkRegister(registers);
    case CLS_DWARF_ARM64_SP:
      return FIRCLSThreadContextGetStackPointer(registers);
    default:
      break;
  }

  FIRCLSSDKLog("Error: Unrecognized get register number %llu\n", num);

  return 0;
}