1616 + sizeof (GPR_PPC64))
1717#define VMX_PPC64_OFFSET (regname ) (offsetof(VMX_PPC64, regname) \
1818 + sizeof (GPR_PPC64) + sizeof (FPR_PPC64))
19+ #define VSX_PPC64_OFFSET (regname ) \
20+ (offsetof(VSX_PPC64, regname) + sizeof (GPR_PPC64) + sizeof (FPR_PPC64) + \
21+ sizeof (VMX_PPC64))
1922#define GPR_PPC64_SIZE (regname ) (sizeof (((GPR_PPC64 *)NULL )->regname))
2023
2124#include " Utility/PPC64_DWARF_Registers.h"
5255 NULL , NULL , NULL , \
5356 }
5457
58+ #define DEFINE_VSX_PPC64 (reg, lldb_kind ) \
59+ { \
60+ #reg, \
61+ NULL , \
62+ 16 , \
63+ VSX_PPC64_OFFSET (reg), \
64+ lldb::eEncodingVector, \
65+ lldb::eFormatVectorOfUInt32, \
66+ {ppc64_dwarf::dwarf_##reg##_ppc64, ppc64_dwarf::dwarf_##reg##_ppc64, \
67+ lldb_kind, LLDB_INVALID_REGNUM, vsx_##reg##_ppc64}, \
68+ NULL , \
69+ NULL , \
70+ NULL , \
71+ }
72+
5573// General purpose registers.
5674// EH_Frame, Generic, Process Plugin
5775#define PPC64_REGS \
194212 NULL , \
195213 NULL , \
196214 NULL , \
197- }, /* */
215+ }, \
216+ DEFINE_VSX_PPC64 (vs0, LLDB_INVALID_REGNUM), \
217+ DEFINE_VSX_PPC64(vs1, LLDB_INVALID_REGNUM), \
218+ DEFINE_VSX_PPC64(vs2, LLDB_INVALID_REGNUM), \
219+ DEFINE_VSX_PPC64(vs3, LLDB_INVALID_REGNUM), \
220+ DEFINE_VSX_PPC64(vs4, LLDB_INVALID_REGNUM), \
221+ DEFINE_VSX_PPC64(vs5, LLDB_INVALID_REGNUM), \
222+ DEFINE_VSX_PPC64(vs6, LLDB_INVALID_REGNUM), \
223+ DEFINE_VSX_PPC64(vs7, LLDB_INVALID_REGNUM), \
224+ DEFINE_VSX_PPC64(vs8, LLDB_INVALID_REGNUM), \
225+ DEFINE_VSX_PPC64(vs9, LLDB_INVALID_REGNUM), \
226+ DEFINE_VSX_PPC64(vs10, LLDB_INVALID_REGNUM), \
227+ DEFINE_VSX_PPC64(vs11, LLDB_INVALID_REGNUM), \
228+ DEFINE_VSX_PPC64(vs12, LLDB_INVALID_REGNUM), \
229+ DEFINE_VSX_PPC64(vs13, LLDB_INVALID_REGNUM), \
230+ DEFINE_VSX_PPC64(vs14, LLDB_INVALID_REGNUM), \
231+ DEFINE_VSX_PPC64(vs15, LLDB_INVALID_REGNUM), \
232+ DEFINE_VSX_PPC64(vs16, LLDB_INVALID_REGNUM), \
233+ DEFINE_VSX_PPC64(vs17, LLDB_INVALID_REGNUM), \
234+ DEFINE_VSX_PPC64(vs18, LLDB_INVALID_REGNUM), \
235+ DEFINE_VSX_PPC64(vs19, LLDB_INVALID_REGNUM), \
236+ DEFINE_VSX_PPC64(vs20, LLDB_INVALID_REGNUM), \
237+ DEFINE_VSX_PPC64(vs21, LLDB_INVALID_REGNUM), \
238+ DEFINE_VSX_PPC64(vs22, LLDB_INVALID_REGNUM), \
239+ DEFINE_VSX_PPC64(vs23, LLDB_INVALID_REGNUM), \
240+ DEFINE_VSX_PPC64(vs24, LLDB_INVALID_REGNUM), \
241+ DEFINE_VSX_PPC64(vs25, LLDB_INVALID_REGNUM), \
242+ DEFINE_VSX_PPC64(vs26, LLDB_INVALID_REGNUM), \
243+ DEFINE_VSX_PPC64(vs27, LLDB_INVALID_REGNUM), \
244+ DEFINE_VSX_PPC64(vs28, LLDB_INVALID_REGNUM), \
245+ DEFINE_VSX_PPC64(vs29, LLDB_INVALID_REGNUM), \
246+ DEFINE_VSX_PPC64(vs30, LLDB_INVALID_REGNUM), \
247+ DEFINE_VSX_PPC64(vs31, LLDB_INVALID_REGNUM), \
248+ DEFINE_VSX_PPC64(vs32, LLDB_INVALID_REGNUM), \
249+ DEFINE_VSX_PPC64(vs33, LLDB_INVALID_REGNUM), \
250+ DEFINE_VSX_PPC64(vs34, LLDB_INVALID_REGNUM), \
251+ DEFINE_VSX_PPC64(vs35, LLDB_INVALID_REGNUM), \
252+ DEFINE_VSX_PPC64(vs36, LLDB_INVALID_REGNUM), \
253+ DEFINE_VSX_PPC64(vs37, LLDB_INVALID_REGNUM), \
254+ DEFINE_VSX_PPC64(vs38, LLDB_INVALID_REGNUM), \
255+ DEFINE_VSX_PPC64(vs39, LLDB_INVALID_REGNUM), \
256+ DEFINE_VSX_PPC64(vs40, LLDB_INVALID_REGNUM), \
257+ DEFINE_VSX_PPC64(vs41, LLDB_INVALID_REGNUM), \
258+ DEFINE_VSX_PPC64(vs42, LLDB_INVALID_REGNUM), \
259+ DEFINE_VSX_PPC64(vs43, LLDB_INVALID_REGNUM), \
260+ DEFINE_VSX_PPC64(vs44, LLDB_INVALID_REGNUM), \
261+ DEFINE_VSX_PPC64(vs45, LLDB_INVALID_REGNUM), \
262+ DEFINE_VSX_PPC64(vs46, LLDB_INVALID_REGNUM), \
263+ DEFINE_VSX_PPC64(vs47, LLDB_INVALID_REGNUM), \
264+ DEFINE_VSX_PPC64(vs48, LLDB_INVALID_REGNUM), \
265+ DEFINE_VSX_PPC64(vs49, LLDB_INVALID_REGNUM), \
266+ DEFINE_VSX_PPC64(vs50, LLDB_INVALID_REGNUM), \
267+ DEFINE_VSX_PPC64(vs51, LLDB_INVALID_REGNUM), \
268+ DEFINE_VSX_PPC64(vs52, LLDB_INVALID_REGNUM), \
269+ DEFINE_VSX_PPC64(vs53, LLDB_INVALID_REGNUM), \
270+ DEFINE_VSX_PPC64(vs54, LLDB_INVALID_REGNUM), \
271+ DEFINE_VSX_PPC64(vs55, LLDB_INVALID_REGNUM), \
272+ DEFINE_VSX_PPC64(vs56, LLDB_INVALID_REGNUM), \
273+ DEFINE_VSX_PPC64(vs57, LLDB_INVALID_REGNUM), \
274+ DEFINE_VSX_PPC64(vs58, LLDB_INVALID_REGNUM), \
275+ DEFINE_VSX_PPC64(vs59, LLDB_INVALID_REGNUM), \
276+ DEFINE_VSX_PPC64(vs60, LLDB_INVALID_REGNUM), \
277+ DEFINE_VSX_PPC64(vs61, LLDB_INVALID_REGNUM), \
278+ DEFINE_VSX_PPC64(vs62, LLDB_INVALID_REGNUM), \
279+ DEFINE_VSX_PPC64(vs63, LLDB_INVALID_REGNUM), /* */
198280
199281typedef struct _GPR_PPC64 {
200282 uint64_t r0;
@@ -312,6 +394,72 @@ typedef struct _VMX_PPC64 {
312394 uint32_t vrsave;
313395} VMX_PPC64;
314396
397+ typedef struct _VSX_PPC64 {
398+ uint32_t vs0[4 ];
399+ uint32_t vs1[4 ];
400+ uint32_t vs2[4 ];
401+ uint32_t vs3[4 ];
402+ uint32_t vs4[4 ];
403+ uint32_t vs5[4 ];
404+ uint32_t vs6[4 ];
405+ uint32_t vs7[4 ];
406+ uint32_t vs8[4 ];
407+ uint32_t vs9[4 ];
408+ uint32_t vs10[4 ];
409+ uint32_t vs11[4 ];
410+ uint32_t vs12[4 ];
411+ uint32_t vs13[4 ];
412+ uint32_t vs14[4 ];
413+ uint32_t vs15[4 ];
414+ uint32_t vs16[4 ];
415+ uint32_t vs17[4 ];
416+ uint32_t vs18[4 ];
417+ uint32_t vs19[4 ];
418+ uint32_t vs20[4 ];
419+ uint32_t vs21[4 ];
420+ uint32_t vs22[4 ];
421+ uint32_t vs23[4 ];
422+ uint32_t vs24[4 ];
423+ uint32_t vs25[4 ];
424+ uint32_t vs26[4 ];
425+ uint32_t vs27[4 ];
426+ uint32_t vs28[4 ];
427+ uint32_t vs29[4 ];
428+ uint32_t vs30[4 ];
429+ uint32_t vs31[4 ];
430+ uint32_t vs32[4 ];
431+ uint32_t vs33[4 ];
432+ uint32_t vs34[4 ];
433+ uint32_t vs35[4 ];
434+ uint32_t vs36[4 ];
435+ uint32_t vs37[4 ];
436+ uint32_t vs38[4 ];
437+ uint32_t vs39[4 ];
438+ uint32_t vs40[4 ];
439+ uint32_t vs41[4 ];
440+ uint32_t vs42[4 ];
441+ uint32_t vs43[4 ];
442+ uint32_t vs44[4 ];
443+ uint32_t vs45[4 ];
444+ uint32_t vs46[4 ];
445+ uint32_t vs47[4 ];
446+ uint32_t vs48[4 ];
447+ uint32_t vs49[4 ];
448+ uint32_t vs50[4 ];
449+ uint32_t vs51[4 ];
450+ uint32_t vs52[4 ];
451+ uint32_t vs53[4 ];
452+ uint32_t vs54[4 ];
453+ uint32_t vs55[4 ];
454+ uint32_t vs56[4 ];
455+ uint32_t vs57[4 ];
456+ uint32_t vs58[4 ];
457+ uint32_t vs59[4 ];
458+ uint32_t vs60[4 ];
459+ uint32_t vs61[4 ];
460+ uint32_t vs62[4 ];
461+ uint32_t vs63[4 ];
462+ } VSX_PPC64;
315463
316464static lldb_private::RegisterInfo g_register_infos_ppc64[] = {
317465 PPC64_REGS
@@ -325,5 +473,6 @@ static_assert((sizeof(g_register_infos_ppc64) /
325473#undef DEFINE_FPR_PPC64
326474#undef DEFINE_GPR_PPC64
327475#undef DEFINE_VMX_PPC64
476+ #undef DEFINE_VSX_PPC64
328477
329478#endif // DECLARE_REGISTER_INFOS_PPC64_STRUCT
0 commit comments