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

Commit 98b185a8 authored by Ryan Savitski's avatar Ryan Savitski Committed by Gerrit Code Review
Browse files

Merge "unwindstack: RegsArm64: fix harmless off by 1 + iterate GPRs contiguously"

parents d66e442c 92237bad
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -100,8 +100,8 @@ void RegsArm64::IterateRegisters(std::function<void(const char*, uint64_t)> fn)
  fn("x27", regs_[ARM64_REG_R27]);
  fn("x28", regs_[ARM64_REG_R28]);
  fn("x29", regs_[ARM64_REG_R29]);
  fn("sp", regs_[ARM64_REG_SP]);
  fn("lr", regs_[ARM64_REG_LR]);
  fn("sp", regs_[ARM64_REG_SP]);
  fn("pc", regs_[ARM64_REG_PC]);
  fn("pst", regs_[ARM64_REG_PSTATE]);
}
@@ -110,10 +110,10 @@ Regs* RegsArm64::Read(void* remote_data) {
  arm64_user_regs* user = reinterpret_cast<arm64_user_regs*>(remote_data);

  RegsArm64* regs = new RegsArm64();
  memcpy(regs->RawData(), &user->regs[0], (ARM64_REG_R31 + 1) * sizeof(uint64_t));
  memcpy(regs->RawData(), &user->regs[0], (ARM64_REG_R30 + 1) * sizeof(uint64_t));
  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_PC] = user->pc;
  reg_data[ARM64_REG_PSTATE] = user->pstate;
  return regs;
}
+1 −1
Original line number Diff line number Diff line
@@ -111,8 +111,8 @@ std::vector<Register> ExpectedRegisters<RegsArm64>() {
  result.push_back({"x27", ARM64_REG_R27});
  result.push_back({"x28", ARM64_REG_R28});
  result.push_back({"x29", ARM64_REG_R29});
  result.push_back({"sp", ARM64_REG_SP});
  result.push_back({"lr", ARM64_REG_LR});
  result.push_back({"sp", ARM64_REG_SP});
  result.push_back({"pc", ARM64_REG_PC});
  result.push_back({"pst", ARM64_REG_PSTATE});
  return result;