diff options
| author | 2020-10-20 19:19:12 -0400 | |
|---|---|---|
| committer | 2020-10-20 19:19:12 -0400 | |
| commit | 88d5140cf2f80d51dc297af3a128a4212215149f (patch) | |
| tree | cd524e8ab111fba79f75a48cc672cb875251a32f /src/core/arm/arm_interface.cpp | |
| parent | Merge pull request #4390 from ogniK5377/get-applet-inf-stub (diff) | |
| parent | core: Fix clang build (diff) | |
| download | yuzu-88d5140cf2f80d51dc297af3a128a4212215149f.tar.gz yuzu-88d5140cf2f80d51dc297af3a128a4212215149f.tar.xz yuzu-88d5140cf2f80d51dc297af3a128a4212215149f.zip | |
Merge pull request #4796 from lioncash/clang
core: Fix clang build
Diffstat (limited to 'src/core/arm/arm_interface.cpp')
| -rw-r--r-- | src/core/arm/arm_interface.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp index d2295ed90..adc6aa5c5 100644 --- a/src/core/arm/arm_interface.cpp +++ b/src/core/arm/arm_interface.cpp | |||
| @@ -147,10 +147,18 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Interface::GetBacktraceFromContex | |||
| 147 | auto fp = ctx.cpu_registers[29]; | 147 | auto fp = ctx.cpu_registers[29]; |
| 148 | auto lr = ctx.cpu_registers[30]; | 148 | auto lr = ctx.cpu_registers[30]; |
| 149 | while (true) { | 149 | while (true) { |
| 150 | out.push_back({"", 0, lr, 0}); | 150 | out.push_back({ |
| 151 | if (!fp) { | 151 | .module = "", |
| 152 | .address = 0, | ||
| 153 | .original_address = lr, | ||
| 154 | .offset = 0, | ||
| 155 | .name = "", | ||
| 156 | }); | ||
| 157 | |||
| 158 | if (fp == 0) { | ||
| 152 | break; | 159 | break; |
| 153 | } | 160 | } |
| 161 | |||
| 154 | lr = memory.Read64(fp + 8) - 4; | 162 | lr = memory.Read64(fp + 8) - 4; |
| 155 | fp = memory.Read64(fp); | 163 | fp = memory.Read64(fp); |
| 156 | } | 164 | } |
| @@ -203,10 +211,18 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Interface::GetBacktrace() const { | |||
| 203 | auto fp = GetReg(29); | 211 | auto fp = GetReg(29); |
| 204 | auto lr = GetReg(30); | 212 | auto lr = GetReg(30); |
| 205 | while (true) { | 213 | while (true) { |
| 206 | out.push_back({"", 0, lr, 0, ""}); | 214 | out.push_back({ |
| 207 | if (!fp) { | 215 | .module = "", |
| 216 | .address = 0, | ||
| 217 | .original_address = lr, | ||
| 218 | .offset = 0, | ||
| 219 | .name = "", | ||
| 220 | }); | ||
| 221 | |||
| 222 | if (fp == 0) { | ||
| 208 | break; | 223 | break; |
| 209 | } | 224 | } |
| 225 | |||
| 210 | lr = memory.Read64(fp + 8) - 4; | 226 | lr = memory.Read64(fp + 8) - 4; |
| 211 | fp = memory.Read64(fp); | 227 | fp = memory.Read64(fp); |
| 212 | } | 228 | } |