1 //===-- RegisterInfos_ppc64le.h ---------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifdef DECLARE_REGISTER_INFOS_PPC64LE_STRUCT 10 11 #include <stddef.h> 12 13 // Computes the offset of the given GPR in the user data area. 14 #define GPR_OFFSET(regname) (offsetof(GPR, regname)) 15 #define FPR_OFFSET(regname) (offsetof(FPR, regname) + sizeof(GPR)) 16 #define VMX_OFFSET(regname) (offsetof(VMX, regname) + sizeof(GPR) + sizeof(FPR)) 17 #define VSX_OFFSET(regname) \ 18 (offsetof(VSX, regname) + sizeof(GPR) + sizeof(FPR) + sizeof(VMX)) 19 #define GPR_SIZE(regname) (sizeof(((GPR *)NULL)->regname)) 20 21 #include "Utility/PPC64LE_DWARF_Registers.h" 22 #include "lldb-ppc64le-register-enums.h" 23 24 // Note that the size and offset will be updated by platform-specific classes. 25 #define DEFINE_GPR(reg, alt, lldb_kind) \ 26 { \ 27 #reg, alt, GPR_SIZE(reg), GPR_OFFSET(reg), lldb::eEncodingUint, \ 28 lldb::eFormatHex, \ 29 {ppc64le_dwarf::dwarf_##reg##_ppc64le,\ 30 ppc64le_dwarf::dwarf_##reg##_ppc64le,\ 31 lldb_kind, \ 32 LLDB_INVALID_REGNUM, \ 33 gpr_##reg##_ppc64le }, \ 34 NULL, NULL, NULL, 0 \ 35 } 36 #define DEFINE_FPR(reg, alt, lldb_kind) \ 37 { \ 38 #reg, alt, 8, FPR_OFFSET(reg), lldb::eEncodingIEEE754, lldb::eFormatFloat, \ 39 {ppc64le_dwarf::dwarf_##reg##_ppc64le, \ 40 ppc64le_dwarf::dwarf_##reg##_ppc64le, lldb_kind, LLDB_INVALID_REGNUM, \ 41 fpr_##reg##_ppc64le }, \ 42 NULL, NULL, NULL, 0 \ 43 } 44 #define DEFINE_VMX(reg, lldb_kind) \ 45 { \ 46 #reg, NULL, 16, VMX_OFFSET(reg), lldb::eEncodingVector, \ 47 lldb::eFormatVectorOfUInt32, \ 48 {ppc64le_dwarf::dwarf_##reg##_ppc64le, \ 49 ppc64le_dwarf::dwarf_##reg##_ppc64le, lldb_kind, LLDB_INVALID_REGNUM, \ 50 vmx_##reg##_ppc64le }, \ 51 NULL, NULL, NULL, 0 \ 52 } 53 #define DEFINE_VSX(reg, lldb_kind) \ 54 { \ 55 #reg, NULL, 16, VSX_OFFSET(reg), lldb::eEncodingVector, \ 56 lldb::eFormatVectorOfUInt32, \ 57 {ppc64le_dwarf::dwarf_##reg##_ppc64le, \ 58 ppc64le_dwarf::dwarf_##reg##_ppc64le, lldb_kind, LLDB_INVALID_REGNUM, \ 59 vsx_##reg##_ppc64le }, \ 60 NULL, NULL, NULL, 0 \ 61 } 62 63 // General purpose registers. 64 // EH_Frame, Generic, Process Plugin 65 #define POWERPC_REGS \ 66 DEFINE_GPR(r0, NULL, LLDB_INVALID_REGNUM) \ 67 , DEFINE_GPR(r1, "sp", LLDB_REGNUM_GENERIC_SP), \ 68 DEFINE_GPR(r2, NULL, LLDB_INVALID_REGNUM), \ 69 DEFINE_GPR(r3, "arg1", LLDB_REGNUM_GENERIC_ARG1), \ 70 DEFINE_GPR(r4, "arg2", LLDB_REGNUM_GENERIC_ARG2), \ 71 DEFINE_GPR(r5, "arg3", LLDB_REGNUM_GENERIC_ARG3), \ 72 DEFINE_GPR(r6, "arg4", LLDB_REGNUM_GENERIC_ARG4), \ 73 DEFINE_GPR(r7, "arg5", LLDB_REGNUM_GENERIC_ARG5), \ 74 DEFINE_GPR(r8, "arg6", LLDB_REGNUM_GENERIC_ARG6), \ 75 DEFINE_GPR(r9, "arg7", LLDB_REGNUM_GENERIC_ARG7), \ 76 DEFINE_GPR(r10, "arg8", LLDB_REGNUM_GENERIC_ARG8), \ 77 DEFINE_GPR(r11, NULL, LLDB_INVALID_REGNUM), \ 78 DEFINE_GPR(r12, NULL, LLDB_INVALID_REGNUM), \ 79 DEFINE_GPR(r13, NULL, LLDB_INVALID_REGNUM), \ 80 DEFINE_GPR(r14, NULL, LLDB_INVALID_REGNUM), \ 81 DEFINE_GPR(r15, NULL, LLDB_INVALID_REGNUM), \ 82 DEFINE_GPR(r16, NULL, LLDB_INVALID_REGNUM), \ 83 DEFINE_GPR(r17, NULL, LLDB_INVALID_REGNUM), \ 84 DEFINE_GPR(r18, NULL, LLDB_INVALID_REGNUM), \ 85 DEFINE_GPR(r19, NULL, LLDB_INVALID_REGNUM), \ 86 DEFINE_GPR(r20, NULL, LLDB_INVALID_REGNUM), \ 87 DEFINE_GPR(r21, NULL, LLDB_INVALID_REGNUM), \ 88 DEFINE_GPR(r22, NULL, LLDB_INVALID_REGNUM), \ 89 DEFINE_GPR(r23, NULL, LLDB_INVALID_REGNUM), \ 90 DEFINE_GPR(r24, NULL, LLDB_INVALID_REGNUM), \ 91 DEFINE_GPR(r25, NULL, LLDB_INVALID_REGNUM), \ 92 DEFINE_GPR(r26, NULL, LLDB_INVALID_REGNUM), \ 93 DEFINE_GPR(r27, NULL, LLDB_INVALID_REGNUM), \ 94 DEFINE_GPR(r28, NULL, LLDB_INVALID_REGNUM), \ 95 DEFINE_GPR(r29, NULL, LLDB_INVALID_REGNUM), \ 96 DEFINE_GPR(r30, NULL, LLDB_INVALID_REGNUM), \ 97 DEFINE_GPR(r31, NULL, LLDB_INVALID_REGNUM), \ 98 DEFINE_GPR(pc, "pc", LLDB_REGNUM_GENERIC_PC), \ 99 DEFINE_GPR(msr, "msr", LLDB_INVALID_REGNUM), \ 100 DEFINE_GPR(origr3, "orig_r3", LLDB_INVALID_REGNUM), \ 101 DEFINE_GPR(ctr, "ctr", LLDB_INVALID_REGNUM), \ 102 DEFINE_GPR(lr, "lr", LLDB_REGNUM_GENERIC_RA), \ 103 DEFINE_GPR(xer, "xer", LLDB_INVALID_REGNUM), \ 104 DEFINE_GPR(cr, "cr", LLDB_REGNUM_GENERIC_FLAGS), \ 105 DEFINE_GPR(softe, "softe", LLDB_INVALID_REGNUM), \ 106 DEFINE_GPR(trap, "trap", LLDB_INVALID_REGNUM), \ 107 DEFINE_FPR(f0, NULL, LLDB_INVALID_REGNUM), \ 108 DEFINE_FPR(f1, NULL, LLDB_INVALID_REGNUM), \ 109 DEFINE_FPR(f2, NULL, LLDB_INVALID_REGNUM), \ 110 DEFINE_FPR(f3, NULL, LLDB_INVALID_REGNUM), \ 111 DEFINE_FPR(f4, NULL, LLDB_INVALID_REGNUM), \ 112 DEFINE_FPR(f5, NULL, LLDB_INVALID_REGNUM), \ 113 DEFINE_FPR(f6, NULL, LLDB_INVALID_REGNUM), \ 114 DEFINE_FPR(f7, NULL, LLDB_INVALID_REGNUM), \ 115 DEFINE_FPR(f8, NULL, LLDB_INVALID_REGNUM), \ 116 DEFINE_FPR(f9, NULL, LLDB_INVALID_REGNUM), \ 117 DEFINE_FPR(f10, NULL, LLDB_INVALID_REGNUM), \ 118 DEFINE_FPR(f11, NULL, LLDB_INVALID_REGNUM), \ 119 DEFINE_FPR(f12, NULL, LLDB_INVALID_REGNUM), \ 120 DEFINE_FPR(f13, NULL, LLDB_INVALID_REGNUM), \ 121 DEFINE_FPR(f14, NULL, LLDB_INVALID_REGNUM), \ 122 DEFINE_FPR(f15, NULL, LLDB_INVALID_REGNUM), \ 123 DEFINE_FPR(f16, NULL, LLDB_INVALID_REGNUM), \ 124 DEFINE_FPR(f17, NULL, LLDB_INVALID_REGNUM), \ 125 DEFINE_FPR(f18, NULL, LLDB_INVALID_REGNUM), \ 126 DEFINE_FPR(f19, NULL, LLDB_INVALID_REGNUM), \ 127 DEFINE_FPR(f20, NULL, LLDB_INVALID_REGNUM), \ 128 DEFINE_FPR(f21, NULL, LLDB_INVALID_REGNUM), \ 129 DEFINE_FPR(f22, NULL, LLDB_INVALID_REGNUM), \ 130 DEFINE_FPR(f23, NULL, LLDB_INVALID_REGNUM), \ 131 DEFINE_FPR(f24, NULL, LLDB_INVALID_REGNUM), \ 132 DEFINE_FPR(f25, NULL, LLDB_INVALID_REGNUM), \ 133 DEFINE_FPR(f26, NULL, LLDB_INVALID_REGNUM), \ 134 DEFINE_FPR(f27, NULL, LLDB_INVALID_REGNUM), \ 135 DEFINE_FPR(f28, NULL, LLDB_INVALID_REGNUM), \ 136 DEFINE_FPR(f29, NULL, LLDB_INVALID_REGNUM), \ 137 DEFINE_FPR(f30, NULL, LLDB_INVALID_REGNUM), \ 138 DEFINE_FPR(f31, NULL, LLDB_INVALID_REGNUM), \ 139 {"fpscr", \ 140 NULL, \ 141 8, \ 142 FPR_OFFSET(fpscr), \ 143 lldb::eEncodingUint, \ 144 lldb::eFormatHex, \ 145 {ppc64le_dwarf::dwarf_fpscr_ppc64le, \ 146 ppc64le_dwarf::dwarf_fpscr_ppc64le, LLDB_INVALID_REGNUM, \ 147 LLDB_INVALID_REGNUM, fpr_fpscr_ppc64le}, \ 148 NULL, \ 149 NULL, \ 150 NULL, \ 151 0}, \ 152 DEFINE_VMX(vr0, LLDB_INVALID_REGNUM), \ 153 DEFINE_VMX(vr1, LLDB_INVALID_REGNUM), \ 154 DEFINE_VMX(vr2, LLDB_INVALID_REGNUM), \ 155 DEFINE_VMX(vr3, LLDB_INVALID_REGNUM), \ 156 DEFINE_VMX(vr4, LLDB_INVALID_REGNUM), \ 157 DEFINE_VMX(vr5, LLDB_INVALID_REGNUM), \ 158 DEFINE_VMX(vr6, LLDB_INVALID_REGNUM), \ 159 DEFINE_VMX(vr7, LLDB_INVALID_REGNUM), \ 160 DEFINE_VMX(vr8, LLDB_INVALID_REGNUM), \ 161 DEFINE_VMX(vr9, LLDB_INVALID_REGNUM), \ 162 DEFINE_VMX(vr10, LLDB_INVALID_REGNUM), \ 163 DEFINE_VMX(vr11, LLDB_INVALID_REGNUM), \ 164 DEFINE_VMX(vr12, LLDB_INVALID_REGNUM), \ 165 DEFINE_VMX(vr13, LLDB_INVALID_REGNUM), \ 166 DEFINE_VMX(vr14, LLDB_INVALID_REGNUM), \ 167 DEFINE_VMX(vr15, LLDB_INVALID_REGNUM), \ 168 DEFINE_VMX(vr16, LLDB_INVALID_REGNUM), \ 169 DEFINE_VMX(vr17, LLDB_INVALID_REGNUM), \ 170 DEFINE_VMX(vr18, LLDB_INVALID_REGNUM), \ 171 DEFINE_VMX(vr19, LLDB_INVALID_REGNUM), \ 172 DEFINE_VMX(vr20, LLDB_INVALID_REGNUM), \ 173 DEFINE_VMX(vr21, LLDB_INVALID_REGNUM), \ 174 DEFINE_VMX(vr22, LLDB_INVALID_REGNUM), \ 175 DEFINE_VMX(vr23, LLDB_INVALID_REGNUM), \ 176 DEFINE_VMX(vr24, LLDB_INVALID_REGNUM), \ 177 DEFINE_VMX(vr25, LLDB_INVALID_REGNUM), \ 178 DEFINE_VMX(vr26, LLDB_INVALID_REGNUM), \ 179 DEFINE_VMX(vr27, LLDB_INVALID_REGNUM), \ 180 DEFINE_VMX(vr28, LLDB_INVALID_REGNUM), \ 181 DEFINE_VMX(vr29, LLDB_INVALID_REGNUM), \ 182 DEFINE_VMX(vr30, LLDB_INVALID_REGNUM), \ 183 DEFINE_VMX(vr31, LLDB_INVALID_REGNUM), \ 184 {"vscr", \ 185 NULL, \ 186 4, \ 187 VMX_OFFSET(vscr), \ 188 lldb::eEncodingUint, \ 189 lldb::eFormatHex, \ 190 {ppc64le_dwarf::dwarf_vscr_ppc64le, ppc64le_dwarf::dwarf_vscr_ppc64le, \ 191 LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, vmx_vscr_ppc64le}, \ 192 NULL, \ 193 NULL, \ 194 NULL, \ 195 0}, \ 196 {"vrsave", \ 197 NULL, \ 198 4, \ 199 VMX_OFFSET(vrsave), \ 200 lldb::eEncodingUint, \ 201 lldb::eFormatHex, \ 202 {ppc64le_dwarf::dwarf_vrsave_ppc64le, \ 203 ppc64le_dwarf::dwarf_vrsave_ppc64le, LLDB_INVALID_REGNUM, \ 204 LLDB_INVALID_REGNUM, vmx_vrsave_ppc64le}, \ 205 NULL, \ 206 NULL, \ 207 NULL, \ 208 0}, \ 209 DEFINE_VSX(vs0, LLDB_INVALID_REGNUM), \ 210 DEFINE_VSX(vs1, LLDB_INVALID_REGNUM), \ 211 DEFINE_VSX(vs2, LLDB_INVALID_REGNUM), \ 212 DEFINE_VSX(vs3, LLDB_INVALID_REGNUM), \ 213 DEFINE_VSX(vs4, LLDB_INVALID_REGNUM), \ 214 DEFINE_VSX(vs5, LLDB_INVALID_REGNUM), \ 215 DEFINE_VSX(vs6, LLDB_INVALID_REGNUM), \ 216 DEFINE_VSX(vs7, LLDB_INVALID_REGNUM), \ 217 DEFINE_VSX(vs8, LLDB_INVALID_REGNUM), \ 218 DEFINE_VSX(vs9, LLDB_INVALID_REGNUM), \ 219 DEFINE_VSX(vs10, LLDB_INVALID_REGNUM), \ 220 DEFINE_VSX(vs11, LLDB_INVALID_REGNUM), \ 221 DEFINE_VSX(vs12, LLDB_INVALID_REGNUM), \ 222 DEFINE_VSX(vs13, LLDB_INVALID_REGNUM), \ 223 DEFINE_VSX(vs14, LLDB_INVALID_REGNUM), \ 224 DEFINE_VSX(vs15, LLDB_INVALID_REGNUM), \ 225 DEFINE_VSX(vs16, LLDB_INVALID_REGNUM), \ 226 DEFINE_VSX(vs17, LLDB_INVALID_REGNUM), \ 227 DEFINE_VSX(vs18, LLDB_INVALID_REGNUM), \ 228 DEFINE_VSX(vs19, LLDB_INVALID_REGNUM), \ 229 DEFINE_VSX(vs20, LLDB_INVALID_REGNUM), \ 230 DEFINE_VSX(vs21, LLDB_INVALID_REGNUM), \ 231 DEFINE_VSX(vs22, LLDB_INVALID_REGNUM), \ 232 DEFINE_VSX(vs23, LLDB_INVALID_REGNUM), \ 233 DEFINE_VSX(vs24, LLDB_INVALID_REGNUM), \ 234 DEFINE_VSX(vs25, LLDB_INVALID_REGNUM), \ 235 DEFINE_VSX(vs26, LLDB_INVALID_REGNUM), \ 236 DEFINE_VSX(vs27, LLDB_INVALID_REGNUM), \ 237 DEFINE_VSX(vs28, LLDB_INVALID_REGNUM), \ 238 DEFINE_VSX(vs29, LLDB_INVALID_REGNUM), \ 239 DEFINE_VSX(vs30, LLDB_INVALID_REGNUM), \ 240 DEFINE_VSX(vs31, LLDB_INVALID_REGNUM), \ 241 DEFINE_VSX(vs32, LLDB_INVALID_REGNUM), \ 242 DEFINE_VSX(vs33, LLDB_INVALID_REGNUM), \ 243 DEFINE_VSX(vs34, LLDB_INVALID_REGNUM), \ 244 DEFINE_VSX(vs35, LLDB_INVALID_REGNUM), \ 245 DEFINE_VSX(vs36, LLDB_INVALID_REGNUM), \ 246 DEFINE_VSX(vs37, LLDB_INVALID_REGNUM), \ 247 DEFINE_VSX(vs38, LLDB_INVALID_REGNUM), \ 248 DEFINE_VSX(vs39, LLDB_INVALID_REGNUM), \ 249 DEFINE_VSX(vs40, LLDB_INVALID_REGNUM), \ 250 DEFINE_VSX(vs41, LLDB_INVALID_REGNUM), \ 251 DEFINE_VSX(vs42, LLDB_INVALID_REGNUM), \ 252 DEFINE_VSX(vs43, LLDB_INVALID_REGNUM), \ 253 DEFINE_VSX(vs44, LLDB_INVALID_REGNUM), \ 254 DEFINE_VSX(vs45, LLDB_INVALID_REGNUM), \ 255 DEFINE_VSX(vs46, LLDB_INVALID_REGNUM), \ 256 DEFINE_VSX(vs47, LLDB_INVALID_REGNUM), \ 257 DEFINE_VSX(vs48, LLDB_INVALID_REGNUM), \ 258 DEFINE_VSX(vs49, LLDB_INVALID_REGNUM), \ 259 DEFINE_VSX(vs50, LLDB_INVALID_REGNUM), \ 260 DEFINE_VSX(vs51, LLDB_INVALID_REGNUM), \ 261 DEFINE_VSX(vs52, LLDB_INVALID_REGNUM), \ 262 DEFINE_VSX(vs53, LLDB_INVALID_REGNUM), \ 263 DEFINE_VSX(vs54, LLDB_INVALID_REGNUM), \ 264 DEFINE_VSX(vs55, LLDB_INVALID_REGNUM), \ 265 DEFINE_VSX(vs56, LLDB_INVALID_REGNUM), \ 266 DEFINE_VSX(vs57, LLDB_INVALID_REGNUM), \ 267 DEFINE_VSX(vs58, LLDB_INVALID_REGNUM), \ 268 DEFINE_VSX(vs59, LLDB_INVALID_REGNUM), \ 269 DEFINE_VSX(vs50, LLDB_INVALID_REGNUM), \ 270 DEFINE_VSX(vs61, LLDB_INVALID_REGNUM), \ 271 DEFINE_VSX(vs62, LLDB_INVALID_REGNUM), \ 272 DEFINE_VSX(vs63, LLDB_INVALID_REGNUM), /* */ 273 274 typedef struct _GPR { 275 uint64_t r0; 276 uint64_t r1; 277 uint64_t r2; 278 uint64_t r3; 279 uint64_t r4; 280 uint64_t r5; 281 uint64_t r6; 282 uint64_t r7; 283 uint64_t r8; 284 uint64_t r9; 285 uint64_t r10; 286 uint64_t r11; 287 uint64_t r12; 288 uint64_t r13; 289 uint64_t r14; 290 uint64_t r15; 291 uint64_t r16; 292 uint64_t r17; 293 uint64_t r18; 294 uint64_t r19; 295 uint64_t r20; 296 uint64_t r21; 297 uint64_t r22; 298 uint64_t r23; 299 uint64_t r24; 300 uint64_t r25; 301 uint64_t r26; 302 uint64_t r27; 303 uint64_t r28; 304 uint64_t r29; 305 uint64_t r30; 306 uint64_t r31; 307 uint64_t pc; 308 uint64_t msr; 309 uint64_t origr3; 310 uint64_t ctr; 311 uint64_t lr; 312 uint64_t xer; 313 uint64_t cr; 314 uint64_t softe; 315 uint64_t trap; 316 uint64_t pad[3]; 317 } GPR; 318 319 typedef struct _FPR { 320 uint64_t f0; 321 uint64_t f1; 322 uint64_t f2; 323 uint64_t f3; 324 uint64_t f4; 325 uint64_t f5; 326 uint64_t f6; 327 uint64_t f7; 328 uint64_t f8; 329 uint64_t f9; 330 uint64_t f10; 331 uint64_t f11; 332 uint64_t f12; 333 uint64_t f13; 334 uint64_t f14; 335 uint64_t f15; 336 uint64_t f16; 337 uint64_t f17; 338 uint64_t f18; 339 uint64_t f19; 340 uint64_t f20; 341 uint64_t f21; 342 uint64_t f22; 343 uint64_t f23; 344 uint64_t f24; 345 uint64_t f25; 346 uint64_t f26; 347 uint64_t f27; 348 uint64_t f28; 349 uint64_t f29; 350 uint64_t f30; 351 uint64_t f31; 352 uint64_t fpscr; 353 } FPR; 354 355 typedef struct _VMX { 356 uint32_t vr0[4]; 357 uint32_t vr1[4]; 358 uint32_t vr2[4]; 359 uint32_t vr3[4]; 360 uint32_t vr4[4]; 361 uint32_t vr5[4]; 362 uint32_t vr6[4]; 363 uint32_t vr7[4]; 364 uint32_t vr8[4]; 365 uint32_t vr9[4]; 366 uint32_t vr10[4]; 367 uint32_t vr11[4]; 368 uint32_t vr12[4]; 369 uint32_t vr13[4]; 370 uint32_t vr14[4]; 371 uint32_t vr15[4]; 372 uint32_t vr16[4]; 373 uint32_t vr17[4]; 374 uint32_t vr18[4]; 375 uint32_t vr19[4]; 376 uint32_t vr20[4]; 377 uint32_t vr21[4]; 378 uint32_t vr22[4]; 379 uint32_t vr23[4]; 380 uint32_t vr24[4]; 381 uint32_t vr25[4]; 382 uint32_t vr26[4]; 383 uint32_t vr27[4]; 384 uint32_t vr28[4]; 385 uint32_t vr29[4]; 386 uint32_t vr30[4]; 387 uint32_t vr31[4]; 388 uint32_t pad[2]; 389 uint32_t vscr[2]; 390 uint32_t vrsave; 391 } VMX; 392 393 typedef struct _VSX { 394 uint32_t vs0[4]; 395 uint32_t vs1[4]; 396 uint32_t vs2[4]; 397 uint32_t vs3[4]; 398 uint32_t vs4[4]; 399 uint32_t vs5[4]; 400 uint32_t vs6[4]; 401 uint32_t vs7[4]; 402 uint32_t vs8[4]; 403 uint32_t vs9[4]; 404 uint32_t vs10[4]; 405 uint32_t vs11[4]; 406 uint32_t vs12[4]; 407 uint32_t vs13[4]; 408 uint32_t vs14[4]; 409 uint32_t vs15[4]; 410 uint32_t vs16[4]; 411 uint32_t vs17[4]; 412 uint32_t vs18[4]; 413 uint32_t vs19[4]; 414 uint32_t vs20[4]; 415 uint32_t vs21[4]; 416 uint32_t vs22[4]; 417 uint32_t vs23[4]; 418 uint32_t vs24[4]; 419 uint32_t vs25[4]; 420 uint32_t vs26[4]; 421 uint32_t vs27[4]; 422 uint32_t vs28[4]; 423 uint32_t vs29[4]; 424 uint32_t vs30[4]; 425 uint32_t vs31[4]; 426 uint32_t vs32[4]; 427 uint32_t vs33[4]; 428 uint32_t vs34[4]; 429 uint32_t vs35[4]; 430 uint32_t vs36[4]; 431 uint32_t vs37[4]; 432 uint32_t vs38[4]; 433 uint32_t vs39[4]; 434 uint32_t vs40[4]; 435 uint32_t vs41[4]; 436 uint32_t vs42[4]; 437 uint32_t vs43[4]; 438 uint32_t vs44[4]; 439 uint32_t vs45[4]; 440 uint32_t vs46[4]; 441 uint32_t vs47[4]; 442 uint32_t vs48[4]; 443 uint32_t vs49[4]; 444 uint32_t vs50[4]; 445 uint32_t vs51[4]; 446 uint32_t vs52[4]; 447 uint32_t vs53[4]; 448 uint32_t vs54[4]; 449 uint32_t vs55[4]; 450 uint32_t vs56[4]; 451 uint32_t vs57[4]; 452 uint32_t vs58[4]; 453 uint32_t vs59[4]; 454 uint32_t vs60[4]; 455 uint32_t vs61[4]; 456 uint32_t vs62[4]; 457 uint32_t vs63[4]; 458 } VSX; 459 460 static lldb_private::RegisterInfo g_register_infos_ppc64le[] = { 461 POWERPC_REGS 462 }; 463 464 static_assert((sizeof(g_register_infos_ppc64le) / 465 sizeof(g_register_infos_ppc64le[0])) == 466 k_num_registers_ppc64le, 467 "g_register_infos_powerpc64 has wrong number of register infos"); 468 469 #undef DEFINE_FPR 470 #undef DEFINE_GPR 471 #undef DEFINE_VMX 472 #undef DEFINE_VSX 473 474 #endif // DECLARE_REGISTER_INFOS_PPC64LE_STRUCT 475