summaryrefslogtreecommitdiff
path: root/src/core/arm/arm_interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/arm/arm_interface.cpp')
-rw-r--r--src/core/arm/arm_interface.cpp24
1 files changed, 4 insertions, 20 deletions
diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp
index adc6aa5c5..d2295ed90 100644
--- a/src/core/arm/arm_interface.cpp
+++ b/src/core/arm/arm_interface.cpp
@@ -147,18 +147,10 @@ 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({ 150 out.push_back({"", 0, lr, 0});
151 .module = "", 151 if (!fp) {
152 .address = 0,
153 .original_address = lr,
154 .offset = 0,
155 .name = "",
156 });
157
158 if (fp == 0) {
159 break; 152 break;
160 } 153 }
161
162 lr = memory.Read64(fp + 8) - 4; 154 lr = memory.Read64(fp + 8) - 4;
163 fp = memory.Read64(fp); 155 fp = memory.Read64(fp);
164 } 156 }
@@ -211,18 +203,10 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Interface::GetBacktrace() const {
211 auto fp = GetReg(29); 203 auto fp = GetReg(29);
212 auto lr = GetReg(30); 204 auto lr = GetReg(30);
213 while (true) { 205 while (true) {
214 out.push_back({ 206 out.push_back({"", 0, lr, 0, ""});
215 .module = "", 207 if (!fp) {
216 .address = 0,
217 .original_address = lr,
218 .offset = 0,
219 .name = "",
220 });
221
222 if (fp == 0) {
223 break; 208 break;
224 } 209 }
225
226 lr = memory.Read64(fp + 8) - 4; 210 lr = memory.Read64(fp + 8) - 4;
227 fp = memory.Read64(fp); 211 fp = memory.Read64(fp);
228 } 212 }