Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 807b5e49 authored by Peter Collingbourne's avatar Peter Collingbourne Committed by android-build-merger
Browse files

Merge "Include PSTATE in tombstones on arm64."

am: ba535169

Change-Id: I9658388821fa4f3c0a12021f932be5613ef7e5e8
parents 0996de54 ba535169
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -428,7 +428,7 @@ void dump_registers(log_t* log, unwindstack::Regs* regs) {
  std::vector<std::pair<std::string, uint64_t>> special_row;

#if defined(__arm__) || defined(__aarch64__)
  static constexpr const char* special_registers[] = {"ip", "lr", "sp", "pc"};
  static constexpr const char* special_registers[] = {"ip", "lr", "sp", "pc", "pst"};
#elif defined(__i386__)
  static constexpr const char* special_registers[] = {"ebp", "esp", "eip"};
#elif defined(__x86_64__)
+2 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ void RegsArm64::IterateRegisters(std::function<void(const char*, uint64_t)> fn)
  fn("sp", regs_[ARM64_REG_SP]);
  fn("lr", regs_[ARM64_REG_LR]);
  fn("pc", regs_[ARM64_REG_PC]);
  fn("pst", regs_[ARM64_REG_PSTATE]);
}

Regs* RegsArm64::Read(void* remote_data) {
@@ -113,6 +114,7 @@ Regs* RegsArm64::Read(void* remote_data) {
  uint64_t* reg_data = reinterpret_cast<uint64_t*>(regs->RawData());
  reg_data[ARM64_REG_PC] = user->pc;
  reg_data[ARM64_REG_SP] = user->sp;
  reg_data[ARM64_REG_PSTATE] = user->pstate;
  return regs;
}

+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ enum Arm64Reg : uint16_t {
  ARM64_REG_R30,
  ARM64_REG_R31,
  ARM64_REG_PC,
  ARM64_REG_PSTATE,
  ARM64_REG_LAST,

  ARM64_REG_SP = ARM64_REG_R31,
+1 −0
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@ std::vector<Register> ExpectedRegisters<RegsArm64>() {
  result.push_back({"sp", ARM64_REG_SP});
  result.push_back({"lr", ARM64_REG_LR});
  result.push_back({"pc", ARM64_REG_PC});
  result.push_back({"pst", ARM64_REG_PSTATE});
  return result;
}