@@ -210,8 +210,7 @@ static lldb::UnwindPlanSP GetAArch64TrapHandlerUnwindPlan(ConstString name) {
210
210
if (name != " __kernel_rt_sigreturn" )
211
211
return unwind_plan_sp;
212
212
213
- UnwindPlan::RowSP row = std::make_shared<UnwindPlan::Row>();
214
- row->SetOffset (0 );
213
+ UnwindPlan::Row row;
215
214
216
215
// In the signal trampoline frame, sp points to an rt_sigframe[1], which is:
217
216
// - 128-byte siginfo struct
@@ -235,48 +234,48 @@ static lldb::UnwindPlanSP GetAArch64TrapHandlerUnwindPlan(ConstString name) {
235
234
236
235
// Skip fault address
237
236
offset += 8 ;
238
- row-> GetCFAValue ().SetIsRegisterPlusOffset (arm64_dwarf::sp, offset);
239
-
240
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x0, 0 * 8 , false );
241
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x1, 1 * 8 , false );
242
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x2, 2 * 8 , false );
243
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x3, 3 * 8 , false );
244
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x4, 4 * 8 , false );
245
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x5, 5 * 8 , false );
246
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x6, 6 * 8 , false );
247
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x7, 7 * 8 , false );
248
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x8, 8 * 8 , false );
249
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x9, 9 * 8 , false );
250
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x10, 10 * 8 , false );
251
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x11, 11 * 8 , false );
252
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x12, 12 * 8 , false );
253
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x13, 13 * 8 , false );
254
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x14, 14 * 8 , false );
255
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x15, 15 * 8 , false );
256
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x16, 16 * 8 , false );
257
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x17, 17 * 8 , false );
258
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x18, 18 * 8 , false );
259
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x19, 19 * 8 , false );
260
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x20, 20 * 8 , false );
261
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x21, 21 * 8 , false );
262
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x22, 22 * 8 , false );
263
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x23, 23 * 8 , false );
264
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x24, 24 * 8 , false );
265
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x25, 25 * 8 , false );
266
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x26, 26 * 8 , false );
267
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x27, 27 * 8 , false );
268
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x28, 28 * 8 , false );
269
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::fp, 29 * 8 , false );
270
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x30, 30 * 8 , false );
271
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::sp, 31 * 8 , false );
272
- row-> SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::pc, 32 * 8 , false );
237
+ row. GetCFAValue ().SetIsRegisterPlusOffset (arm64_dwarf::sp, offset);
238
+
239
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x0, 0 * 8 , false );
240
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x1, 1 * 8 , false );
241
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x2, 2 * 8 , false );
242
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x3, 3 * 8 , false );
243
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x4, 4 * 8 , false );
244
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x5, 5 * 8 , false );
245
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x6, 6 * 8 , false );
246
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x7, 7 * 8 , false );
247
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x8, 8 * 8 , false );
248
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x9, 9 * 8 , false );
249
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x10, 10 * 8 , false );
250
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x11, 11 * 8 , false );
251
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x12, 12 * 8 , false );
252
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x13, 13 * 8 , false );
253
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x14, 14 * 8 , false );
254
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x15, 15 * 8 , false );
255
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x16, 16 * 8 , false );
256
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x17, 17 * 8 , false );
257
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x18, 18 * 8 , false );
258
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x19, 19 * 8 , false );
259
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x20, 20 * 8 , false );
260
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x21, 21 * 8 , false );
261
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x22, 22 * 8 , false );
262
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x23, 23 * 8 , false );
263
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x24, 24 * 8 , false );
264
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x25, 25 * 8 , false );
265
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x26, 26 * 8 , false );
266
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x27, 27 * 8 , false );
267
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x28, 28 * 8 , false );
268
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::fp, 29 * 8 , false );
269
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::x30, 30 * 8 , false );
270
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::sp, 31 * 8 , false );
271
+ row. SetRegisterLocationToAtCFAPlusOffset (arm64_dwarf::pc, 32 * 8 , false );
273
272
274
273
// The sigcontext may also contain floating point and SVE registers.
275
274
// However this would require a dynamic unwind plan so they are not included
276
275
// here.
277
276
278
277
unwind_plan_sp = std::make_shared<UnwindPlan>(eRegisterKindDWARF);
279
- unwind_plan_sp->AppendRow (row);
278
+ unwind_plan_sp->AppendRow (std::move ( row) );
280
279
unwind_plan_sp->SetSourceName (" AArch64 Linux sigcontext" );
281
280
unwind_plan_sp->SetSourcedFromCompiler (eLazyBoolYes);
282
281
// Because sp is the same throughout the function
0 commit comments