LLDB  mainline
RegisterContextDarwin_x86_64.cpp
Go to the documentation of this file.
1 //===-- RegisterContextDarwin_x86_64.cpp ----------------------------------===//
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 #include <cinttypes>
10 #include <cstdarg>
11 #include <cstddef>
12 
13 #include <memory>
14 
17 #include "lldb/Utility/Endian.h"
18 #include "lldb/Utility/Log.h"
20 #include "lldb/Utility/Scalar.h"
21 #include "llvm/ADT/STLExtras.h"
22 #include "llvm/Support/Compiler.h"
23 
25 
26 using namespace lldb;
27 using namespace lldb_private;
28 
29 enum {
30  gpr_rax = 0,
51 
86 
90 
92 
93  // Aliases
101 };
102 
145 
146 };
147 
148 #define GPR_OFFSET(reg) \
149  (LLVM_EXTENSION offsetof(RegisterContextDarwin_x86_64::GPR, reg))
150 #define FPU_OFFSET(reg) \
151  (LLVM_EXTENSION offsetof(RegisterContextDarwin_x86_64::FPU, reg) + \
152  sizeof(RegisterContextDarwin_x86_64::GPR))
153 #define EXC_OFFSET(reg) \
154  (LLVM_EXTENSION offsetof(RegisterContextDarwin_x86_64::EXC, reg) + \
155  sizeof(RegisterContextDarwin_x86_64::GPR) + \
156  sizeof(RegisterContextDarwin_x86_64::FPU))
157 
158 // These macros will auto define the register name, alt name, register size,
159 // register offset, encoding, format and native register. This ensures that the
160 // register state structures are defined correctly and have the correct sizes
161 // and offsets.
162 #define DEFINE_GPR(reg, alt) \
163  #reg, alt, sizeof(((RegisterContextDarwin_x86_64::GPR *) NULL)->reg), \
164  GPR_OFFSET(reg), eEncodingUint, eFormatHex
165 #define DEFINE_FPU_UINT(reg) \
166  #reg, NULL, sizeof(((RegisterContextDarwin_x86_64::FPU *) NULL)->reg), \
167  FPU_OFFSET(reg), eEncodingUint, eFormatHex
168 #define DEFINE_FPU_VECT(reg, i) \
169  #reg #i, NULL, \
170  sizeof(((RegisterContextDarwin_x86_64::FPU *) NULL)->reg[i].bytes), \
171  FPU_OFFSET(reg[i]), eEncodingVector, eFormatVectorOfUInt8, \
172  {ehframe_dwarf_fpu_##reg##i, \
173  ehframe_dwarf_fpu_##reg##i, LLDB_INVALID_REGNUM, \
174  LLDB_INVALID_REGNUM, fpu_##reg##i }, \
175  nullptr, nullptr, nullptr, 0
176 #define DEFINE_EXC(reg) \
177  #reg, NULL, sizeof(((RegisterContextDarwin_x86_64::EXC *) NULL)->reg), \
178  EXC_OFFSET(reg), eEncodingUint, eFormatHex
179 
180 #define REG_CONTEXT_SIZE \
181  (sizeof(RegisterContextDarwin_x86_64::GPR) + \
182  sizeof(RegisterContextDarwin_x86_64::FPU) + \
183  sizeof(RegisterContextDarwin_x86_64::EXC))
184 
185 // General purpose registers for 64 bit
186 static RegisterInfo g_register_infos[] = {
187  // Macro auto defines most stuff EH_FRAME DWARF
188  // GENERIC PROCESS PLUGIN LLDB
189  // =============================== ======================
190  // =================== ========================== ====================
191  // ===================
192  {DEFINE_GPR(rax, nullptr),
195  nullptr,
196  nullptr,
197  nullptr,
198  0},
199  {DEFINE_GPR(rbx, nullptr),
202  nullptr,
203  nullptr,
204  nullptr,
205  0},
206  {DEFINE_GPR(rcx, nullptr),
209  nullptr,
210  nullptr,
211  nullptr,
212  0},
213  {DEFINE_GPR(rdx, nullptr),
216  nullptr,
217  nullptr,
218  nullptr,
219  0},
220  {DEFINE_GPR(rdi, nullptr),
223  nullptr,
224  nullptr,
225  nullptr,
226  0},
227  {DEFINE_GPR(rsi, nullptr),
230  nullptr,
231  nullptr,
232  nullptr,
233  0},
234  {DEFINE_GPR(rbp, "fp"),
237  nullptr,
238  nullptr,
239  nullptr,
240  0},
241  {DEFINE_GPR(rsp, "sp"),
244  nullptr,
245  nullptr,
246  nullptr,
247  0},
248  {DEFINE_GPR(r8, nullptr),
251  nullptr,
252  nullptr,
253  nullptr,
254  0},
255  {DEFINE_GPR(r9, nullptr),
258  nullptr,
259  nullptr,
260  nullptr,
261  0},
262  {DEFINE_GPR(r10, nullptr),
265  nullptr,
266  nullptr,
267  nullptr,
268  0},
269  {DEFINE_GPR(r11, nullptr),
272  nullptr,
273  nullptr,
274  nullptr,
275  0},
276  {DEFINE_GPR(r12, nullptr),
279  nullptr,
280  nullptr,
281  nullptr,
282  0},
283  {DEFINE_GPR(r13, nullptr),
286  nullptr,
287  nullptr,
288  nullptr,
289  0},
290  {DEFINE_GPR(r14, nullptr),
293  nullptr,
294  nullptr,
295  nullptr,
296  0},
297  {DEFINE_GPR(r15, nullptr),
300  nullptr,
301  nullptr,
302  nullptr,
303  0},
304  {DEFINE_GPR(rip, "pc"),
307  nullptr,
308  nullptr,
309  nullptr,
310  0},
311  {DEFINE_GPR(rflags, "flags"),
314  nullptr,
315  nullptr,
316  nullptr,
317  0},
318  {DEFINE_GPR(cs, nullptr),
321  nullptr,
322  nullptr,
323  nullptr,
324  0},
325  {DEFINE_GPR(fs, nullptr),
328  nullptr,
329  nullptr,
330  nullptr,
331  0},
332  {DEFINE_GPR(gs, nullptr),
335  nullptr,
336  nullptr,
337  nullptr,
338  0},
339 
340  {DEFINE_FPU_UINT(fcw),
343  nullptr,
344  nullptr,
345  nullptr,
346  0},
347  {DEFINE_FPU_UINT(fsw),
350  nullptr,
351  nullptr,
352  nullptr,
353  0},
354  {DEFINE_FPU_UINT(ftw),
357  nullptr,
358  nullptr,
359  nullptr,
360  0},
361  {DEFINE_FPU_UINT(fop),
364  nullptr,
365  nullptr,
366  nullptr,
367  0},
368  {DEFINE_FPU_UINT(ip),
371  nullptr,
372  nullptr,
373  nullptr,
374  0},
375  {DEFINE_FPU_UINT(cs),
378  nullptr,
379  nullptr,
380  nullptr,
381  0},
382  {DEFINE_FPU_UINT(dp),
385  nullptr,
386  nullptr,
387  nullptr,
388  0},
389  {DEFINE_FPU_UINT(ds),
392  nullptr,
393  nullptr,
394  nullptr,
395  0},
396  {DEFINE_FPU_UINT(mxcsr),
399  nullptr,
400  nullptr,
401  nullptr,
402  0},
403  {DEFINE_FPU_UINT(mxcsrmask),
406  nullptr,
407  nullptr,
408  nullptr,
409  0},
410  {DEFINE_FPU_VECT(stmm, 0)},
411  {DEFINE_FPU_VECT(stmm, 1)},
412  {DEFINE_FPU_VECT(stmm, 2)},
413  {DEFINE_FPU_VECT(stmm, 3)},
414  {DEFINE_FPU_VECT(stmm, 4)},
415  {DEFINE_FPU_VECT(stmm, 5)},
416  {DEFINE_FPU_VECT(stmm, 6)},
417  {DEFINE_FPU_VECT(stmm, 7)},
418  {DEFINE_FPU_VECT(xmm, 0)},
419  {DEFINE_FPU_VECT(xmm, 1)},
420  {DEFINE_FPU_VECT(xmm, 2)},
421  {DEFINE_FPU_VECT(xmm, 3)},
422  {DEFINE_FPU_VECT(xmm, 4)},
423  {DEFINE_FPU_VECT(xmm, 5)},
424  {DEFINE_FPU_VECT(xmm, 6)},
425  {DEFINE_FPU_VECT(xmm, 7)},
426  {DEFINE_FPU_VECT(xmm, 8)},
427  {DEFINE_FPU_VECT(xmm, 9)},
428  {DEFINE_FPU_VECT(xmm, 10)},
429  {DEFINE_FPU_VECT(xmm, 11)},
430  {DEFINE_FPU_VECT(xmm, 12)},
431  {DEFINE_FPU_VECT(xmm, 13)},
432  {DEFINE_FPU_VECT(xmm, 14)},
433  {DEFINE_FPU_VECT(xmm, 15)},
434 
435  {DEFINE_EXC(trapno),
438  nullptr,
439  nullptr,
440  nullptr,
441  0},
442  {DEFINE_EXC(err),
445  nullptr,
446  nullptr,
447  nullptr,
448  0},
449  {DEFINE_EXC(faultvaddr),
452  nullptr,
453  nullptr,
454  nullptr,
455  0}};
456 
457 static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
458 
460  Thread &thread, uint32_t concrete_frame_idx)
461  : RegisterContext(thread, concrete_frame_idx), gpr(), fpu(), exc() {
462  uint32_t i;
463  for (i = 0; i < kNumErrors; i++) {
464  gpr_errs[i] = -1;
465  fpu_errs[i] = -1;
466  exc_errs[i] = -1;
467  }
468 }
469 
471 
474 }
475 
478  return k_num_registers;
479 }
480 
481 const RegisterInfo *
484  if (reg < k_num_registers)
485  return &g_register_infos[reg];
486  return nullptr;
487 }
488 
490  return k_num_register_infos;
491 }
492 
493 const lldb_private::RegisterInfo *
495  return g_register_infos;
496 }
497 
502 
510 
512 
513 // Number of registers in each register set
514 const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums);
515 const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums);
516 const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums);
517 
518 // Register set definitions. The first definitions at register set index of
519 // zero is for all registers, followed by other registers sets. The register
520 // information for the all register set need not be filled in.
521 static const RegisterSet g_reg_sets[] = {
522  {
523  "General Purpose Registers", "gpr", k_num_gpr_registers, g_gpr_regnums,
524  },
525  {"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums},
526  {"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}};
527 
528 const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets);
529 
531  return k_num_regsets;
532 }
533 
534 const RegisterSet *
536  if (reg_set < k_num_regsets)
537  return &g_reg_sets[reg_set];
538  return nullptr;
539 }
540 
542  if (reg_num < fpu_fcw)
543  return GPRRegSet;
544  else if (reg_num < exc_trapno)
545  return FPURegSet;
546  else if (reg_num < k_num_registers)
547  return EXCRegSet;
548  return -1;
549 }
550 
552  int set = GPRRegSet;
553  if (force || !RegisterSetIsCached(set)) {
555  }
556  return GetError(GPRRegSet, Read);
557 }
558 
560  int set = FPURegSet;
561  if (force || !RegisterSetIsCached(set)) {
563  }
564  return GetError(FPURegSet, Read);
565 }
566 
568  int set = EXCRegSet;
569  if (force || !RegisterSetIsCached(set)) {
571  }
572  return GetError(EXCRegSet, Read);
573 }
574 
576  int set = GPRRegSet;
577  if (!RegisterSetIsCached(set)) {
578  SetError(set, Write, -1);
579  return -1;
580  }
582  SetError(set, Read, -1);
583  return GetError(set, Write);
584 }
585 
587  int set = FPURegSet;
588  if (!RegisterSetIsCached(set)) {
589  SetError(set, Write, -1);
590  return -1;
591  }
593  SetError(set, Read, -1);
594  return GetError(set, Write);
595 }
596 
598  int set = EXCRegSet;
599  if (!RegisterSetIsCached(set)) {
600  SetError(set, Write, -1);
601  return -1;
602  }
604  SetError(set, Read, -1);
605  return GetError(set, Write);
606 }
607 
609  switch (set) {
610  case GPRRegSet:
611  return ReadGPR(force);
612  case FPURegSet:
613  return ReadFPU(force);
614  case EXCRegSet:
615  return ReadEXC(force);
616  default:
617  break;
618  }
619  return -1;
620 }
621 
623  // Make sure we have a valid context to set.
624  switch (set) {
625  case GPRRegSet:
626  return WriteGPR();
627  case FPURegSet:
628  return WriteFPU();
629  case EXCRegSet:
630  return WriteEXC();
631  default:
632  break;
633  }
634  return -1;
635 }
636 
637 bool RegisterContextDarwin_x86_64::ReadRegister(const RegisterInfo *reg_info,
638  RegisterValue &value) {
639  const uint32_t reg = reg_info->kinds[eRegisterKindLLDB];
641  if (set == -1)
642  return false;
643 
644  if (ReadRegisterSet(set, false) != 0)
645  return false;
646 
647  switch (reg) {
648  case gpr_rax:
649  case gpr_rbx:
650  case gpr_rcx:
651  case gpr_rdx:
652  case gpr_rdi:
653  case gpr_rsi:
654  case gpr_rbp:
655  case gpr_rsp:
656  case gpr_r8:
657  case gpr_r9:
658  case gpr_r10:
659  case gpr_r11:
660  case gpr_r12:
661  case gpr_r13:
662  case gpr_r14:
663  case gpr_r15:
664  case gpr_rip:
665  case gpr_rflags:
666  case gpr_cs:
667  case gpr_fs:
668  case gpr_gs:
669  value = (&gpr.rax)[reg - gpr_rax];
670  break;
671 
672  case fpu_fcw:
673  value = fpu.fcw;
674  break;
675 
676  case fpu_fsw:
677  value = fpu.fsw;
678  break;
679 
680  case fpu_ftw:
681  value = fpu.ftw;
682  break;
683 
684  case fpu_fop:
685  value = fpu.fop;
686  break;
687 
688  case fpu_ip:
689  value = fpu.ip;
690  break;
691 
692  case fpu_cs:
693  value = fpu.cs;
694  break;
695 
696  case fpu_dp:
697  value = fpu.dp;
698  break;
699 
700  case fpu_ds:
701  value = fpu.ds;
702  break;
703 
704  case fpu_mxcsr:
705  value = fpu.mxcsr;
706  break;
707 
708  case fpu_mxcsrmask:
709  value = fpu.mxcsrmask;
710  break;
711 
712  case fpu_stmm0:
713  case fpu_stmm1:
714  case fpu_stmm2:
715  case fpu_stmm3:
716  case fpu_stmm4:
717  case fpu_stmm5:
718  case fpu_stmm6:
719  case fpu_stmm7:
720  value.SetBytes(fpu.stmm[reg - fpu_stmm0].bytes, reg_info->byte_size,
722  break;
723 
724  case fpu_xmm0:
725  case fpu_xmm1:
726  case fpu_xmm2:
727  case fpu_xmm3:
728  case fpu_xmm4:
729  case fpu_xmm5:
730  case fpu_xmm6:
731  case fpu_xmm7:
732  case fpu_xmm8:
733  case fpu_xmm9:
734  case fpu_xmm10:
735  case fpu_xmm11:
736  case fpu_xmm12:
737  case fpu_xmm13:
738  case fpu_xmm14:
739  case fpu_xmm15:
740  value.SetBytes(fpu.xmm[reg - fpu_xmm0].bytes, reg_info->byte_size,
742  break;
743 
744  case exc_trapno:
745  value = exc.trapno;
746  break;
747 
748  case exc_err:
749  value = exc.err;
750  break;
751 
752  case exc_faultvaddr:
753  value = exc.faultvaddr;
754  break;
755 
756  default:
757  return false;
758  }
759  return true;
760 }
761 
762 bool RegisterContextDarwin_x86_64::WriteRegister(const RegisterInfo *reg_info,
763  const RegisterValue &value) {
764  const uint32_t reg = reg_info->kinds[eRegisterKindLLDB];
766 
767  if (set == -1)
768  return false;
769 
770  if (ReadRegisterSet(set, false) != 0)
771  return false;
772 
773  switch (reg) {
774  case gpr_rax:
775  case gpr_rbx:
776  case gpr_rcx:
777  case gpr_rdx:
778  case gpr_rdi:
779  case gpr_rsi:
780  case gpr_rbp:
781  case gpr_rsp:
782  case gpr_r8:
783  case gpr_r9:
784  case gpr_r10:
785  case gpr_r11:
786  case gpr_r12:
787  case gpr_r13:
788  case gpr_r14:
789  case gpr_r15:
790  case gpr_rip:
791  case gpr_rflags:
792  case gpr_cs:
793  case gpr_fs:
794  case gpr_gs:
795  (&gpr.rax)[reg - gpr_rax] = value.GetAsUInt64();
796  break;
797 
798  case fpu_fcw:
799  fpu.fcw = value.GetAsUInt16();
800  break;
801 
802  case fpu_fsw:
803  fpu.fsw = value.GetAsUInt16();
804  break;
805 
806  case fpu_ftw:
807  fpu.ftw = value.GetAsUInt8();
808  break;
809 
810  case fpu_fop:
811  fpu.fop = value.GetAsUInt16();
812  break;
813 
814  case fpu_ip:
815  fpu.ip = value.GetAsUInt32();
816  break;
817 
818  case fpu_cs:
819  fpu.cs = value.GetAsUInt16();
820  break;
821 
822  case fpu_dp:
823  fpu.dp = value.GetAsUInt32();
824  break;
825 
826  case fpu_ds:
827  fpu.ds = value.GetAsUInt16();
828  break;
829 
830  case fpu_mxcsr:
831  fpu.mxcsr = value.GetAsUInt32();
832  break;
833 
834  case fpu_mxcsrmask:
835  fpu.mxcsrmask = value.GetAsUInt32();
836  break;
837 
838  case fpu_stmm0:
839  case fpu_stmm1:
840  case fpu_stmm2:
841  case fpu_stmm3:
842  case fpu_stmm4:
843  case fpu_stmm5:
844  case fpu_stmm6:
845  case fpu_stmm7:
846  ::memcpy(fpu.stmm[reg - fpu_stmm0].bytes, value.GetBytes(),
847  value.GetByteSize());
848  break;
849 
850  case fpu_xmm0:
851  case fpu_xmm1:
852  case fpu_xmm2:
853  case fpu_xmm3:
854  case fpu_xmm4:
855  case fpu_xmm5:
856  case fpu_xmm6:
857  case fpu_xmm7:
858  case fpu_xmm8:
859  case fpu_xmm9:
860  case fpu_xmm10:
861  case fpu_xmm11:
862  case fpu_xmm12:
863  case fpu_xmm13:
864  case fpu_xmm14:
865  case fpu_xmm15:
866  ::memcpy(fpu.xmm[reg - fpu_xmm0].bytes, value.GetBytes(),
867  value.GetByteSize());
868  return false;
869 
870  case exc_trapno:
871  exc.trapno = value.GetAsUInt32();
872  break;
873 
874  case exc_err:
875  exc.err = value.GetAsUInt32();
876  break;
877 
878  case exc_faultvaddr:
879  exc.faultvaddr = value.GetAsUInt64();
880  break;
881 
882  default:
883  return false;
884  }
885  return WriteRegisterSet(set) == 0;
886 }
887 
889  lldb::DataBufferSP &data_sp) {
890  data_sp = std::make_shared<DataBufferHeap>(REG_CONTEXT_SIZE, 0);
891  if (ReadGPR(false) == 0 && ReadFPU(false) == 0 && ReadEXC(false) == 0) {
892  uint8_t *dst = data_sp->GetBytes();
893  ::memcpy(dst, &gpr, sizeof(gpr));
894  dst += sizeof(gpr);
895 
896  ::memcpy(dst, &fpu, sizeof(fpu));
897  dst += sizeof(gpr);
898 
899  ::memcpy(dst, &exc, sizeof(exc));
900  return true;
901  }
902  return false;
903 }
904 
906  const lldb::DataBufferSP &data_sp) {
907  if (data_sp && data_sp->GetByteSize() == REG_CONTEXT_SIZE) {
908  const uint8_t *src = data_sp->GetBytes();
909  ::memcpy(&gpr, src, sizeof(gpr));
910  src += sizeof(gpr);
911 
912  ::memcpy(&fpu, src, sizeof(fpu));
913  src += sizeof(gpr);
914 
915  ::memcpy(&exc, src, sizeof(exc));
916  uint32_t success_count = 0;
917  if (WriteGPR() == 0)
918  ++success_count;
919  if (WriteFPU() == 0)
920  ++success_count;
921  if (WriteEXC() == 0)
922  ++success_count;
923  return success_count == 3;
924  }
925  return false;
926 }
927 
929  lldb::RegisterKind kind, uint32_t reg) {
930  if (kind == eRegisterKindGeneric) {
931  switch (reg) {
933  return gpr_rip;
935  return gpr_rsp;
937  return gpr_rbp;
939  return gpr_rflags;
941  default:
942  break;
943  }
944  } else if (kind == eRegisterKindEHFrame || kind == eRegisterKindDWARF) {
945  switch (reg) {
947  return gpr_rax;
949  return gpr_rdx;
951  return gpr_rcx;
953  return gpr_rbx;
955  return gpr_rsi;
957  return gpr_rdi;
959  return gpr_rbp;
961  return gpr_rsp;
963  return gpr_r8;
965  return gpr_r9;
967  return gpr_r10;
969  return gpr_r11;
971  return gpr_r12;
973  return gpr_r13;
975  return gpr_r14;
977  return gpr_r15;
979  return gpr_rip;
981  return fpu_xmm0;
983  return fpu_xmm1;
985  return fpu_xmm2;
987  return fpu_xmm3;
989  return fpu_xmm4;
991  return fpu_xmm5;
993  return fpu_xmm6;
995  return fpu_xmm7;
997  return fpu_xmm8;
999  return fpu_xmm9;
1001  return fpu_xmm10;
1003  return fpu_xmm11;
1005  return fpu_xmm12;
1007  return fpu_xmm13;
1009  return fpu_xmm14;
1011  return fpu_xmm15;
1013  return fpu_stmm0;
1015  return fpu_stmm1;
1017  return fpu_stmm2;
1019  return fpu_stmm3;
1021  return fpu_stmm4;
1023  return fpu_stmm5;
1025  return fpu_stmm6;
1027  return fpu_stmm7;
1028  default:
1029  break;
1030  }
1031  } else if (kind == eRegisterKindLLDB) {
1032  return reg;
1033  }
1034  return LLDB_INVALID_REGNUM;
1035 }
1036 
1038  if (ReadGPR(true) != 0)
1039  return false;
1040 
1041  const uint64_t trace_bit = 0x100ull;
1042  if (enable) {
1043 
1044  if (gpr.rflags & trace_bit)
1045  return true; // trace bit is already set, there is nothing to do
1046  else
1047  gpr.rflags |= trace_bit;
1048  } else {
1049  if (gpr.rflags & trace_bit)
1050  gpr.rflags &= ~trace_bit;
1051  else
1052  return true; // trace bit is clear, there is nothing to do
1053  }
1054 
1055  return WriteGPR() == 0;
1056 }
RegisterContextDarwin_x86_64::FPU::ftw
uint8_t ftw
Definition: RegisterContextDarwin_x86_64.h:84
fpu_dp
@ fpu_dp
Definition: RegisterContextDarwin_x86_64.cpp:58
RegisterContextDarwin_x86_64::FPU::mxcsrmask
uint32_t mxcsrmask
Definition: RegisterContextDarwin_x86_64.h:94
gpr_rdi
@ gpr_rdi
Definition: RegisterContextDarwin_x86_64.cpp:34
ehframe_dwarf_fpu_xmm6
@ ehframe_dwarf_fpu_xmm6
Definition: RegisterContextDarwin_x86_64.cpp:127
fpu_xmm12
@ fpu_xmm12
Definition: RegisterContextDarwin_x86_64.cpp:82
Scalar.h
k_num_registers
@ k_num_registers
Definition: RegisterContextDarwin_x86_64.cpp:91
r12
@ r12
Definition: CompactUnwindInfo.cpp:705
RegisterContextDarwin_x86_64::ReadGPR
int ReadGPR(bool force)
Definition: RegisterContextDarwin_x86_64.cpp:551
fpu_xmm9
@ fpu_xmm9
Definition: RegisterContextDarwin_x86_64.cpp:79
fpu_ftw
@ fpu_ftw
Definition: RegisterContextDarwin_x86_64.cpp:54
RegisterContextDarwin_x86_64::DoWriteFPU
virtual int DoWriteFPU(lldb::tid_t tid, int flavor, const FPU &fpu)=0
ehframe_dwarf_fpu_xmm11
@ ehframe_dwarf_fpu_xmm11
Definition: RegisterContextDarwin_x86_64.cpp:132
rax
@ rax
Definition: CompactUnwindInfo.cpp:693
gpr_rax
@ gpr_rax
Definition: RegisterContextDarwin_x86_64.cpp:30
RegisterContextDarwin_x86_64::RegisterSetIsCached
bool RegisterSetIsCached(int set) const
Definition: RegisterContextDarwin_x86_64.h:171
g_fpu_regnums
static uint32_t g_fpu_regnums[]
Definition: RegisterContextDarwin_x86_64.cpp:503
LLDB_INVALID_REGNUM
#define LLDB_INVALID_REGNUM
Definition: lldb-defines.h:91
RegisterContextDarwin_x86_64::GetRegisterInfos
static const lldb_private::RegisterInfo * GetRegisterInfos()
Definition: RegisterContextDarwin_x86_64.cpp:494
ehframe_dwarf_gpr_r8
@ ehframe_dwarf_gpr_r8
Definition: RegisterContextDarwin_x86_64.cpp:112
fpu_xmm7
@ fpu_xmm7
Definition: RegisterContextDarwin_x86_64.cpp:77
lldb_private::RegisterValue::GetByteSize
uint32_t GetByteSize() const
Definition: RegisterValue.cpp:713
k_num_register_infos
static size_t k_num_register_infos
Definition: RegisterContextDarwin_x86_64.cpp:457
lldb_private::RegisterValue
Definition: RegisterValue.h:28
lldb::eRegisterKindDWARF
@ eRegisterKindDWARF
the register numbers seen DWARF
Definition: lldb-enumerations.h:229
RegisterContextDarwin_x86_64::fpu
FPU fpu
Definition: RegisterContextDarwin_x86_64.h:119
ehframe_dwarf_gpr_r14
@ ehframe_dwarf_gpr_r14
Definition: RegisterContextDarwin_x86_64.cpp:118
gpr_rsp
@ gpr_rsp
Definition: RegisterContextDarwin_x86_64.cpp:37
ehframe_dwarf_gpr_r11
@ ehframe_dwarf_gpr_r11
Definition: RegisterContextDarwin_x86_64.cpp:115
lldb::eRegisterKindGeneric
@ eRegisterKindGeneric
insn ptr reg, stack ptr reg, etc not specific to any particular target
Definition: lldb-enumerations.h:230
g_reg_sets
static const RegisterSet g_reg_sets[]
Definition: RegisterContextDarwin_x86_64.cpp:521
RegisterContextDarwin_x86_64::GPR::rax
uint64_t rax
Definition: RegisterContextDarwin_x86_64.h:48
ehframe_dwarf_fpu_xmm7
@ ehframe_dwarf_fpu_xmm7
Definition: RegisterContextDarwin_x86_64.cpp:128
fpu_stmm6
@ fpu_stmm6
Definition: RegisterContextDarwin_x86_64.cpp:68
fpu_ds
@ fpu_ds
Definition: RegisterContextDarwin_x86_64.cpp:59
r10
@ r10
Definition: CompactUnwindInfo.cpp:703
RegisterContextDarwin_x86_64::ReadRegisterSet
int ReadRegisterSet(uint32_t set, bool force)
Definition: RegisterContextDarwin_x86_64.cpp:608
fpu_ip
@ fpu_ip
Definition: RegisterContextDarwin_x86_64.cpp:56
RegisterContextDarwin_x86_64::XMMReg::bytes
uint8_t bytes[16]
Definition: RegisterContextDarwin_x86_64.h:77
fpu_stmm7
@ fpu_stmm7
Definition: RegisterContextDarwin_x86_64.cpp:69
RegisterContextDarwin_x86_64::HardwareSingleStep
bool HardwareSingleStep(bool enable) override
Definition: RegisterContextDarwin_x86_64.cpp:1037
k_num_regsets
const size_t k_num_regsets
Definition: RegisterContextDarwin_x86_64.cpp:528
fpu_xmm1
@ fpu_xmm1
Definition: RegisterContextDarwin_x86_64.cpp:71
gpr_rsi
@ gpr_rsi
Definition: RegisterContextDarwin_x86_64.cpp:35
gpr_rbx
@ gpr_rbx
Definition: RegisterContextDarwin_x86_64.cpp:31
ehframe_dwarf_gpr_r13
@ ehframe_dwarf_gpr_r13
Definition: RegisterContextDarwin_x86_64.cpp:117
DEFINE_FPU_UINT
#define DEFINE_FPU_UINT(reg)
Definition: RegisterContextDarwin_x86_64.cpp:165
REG_CONTEXT_SIZE
#define REG_CONTEXT_SIZE
Definition: RegisterContextDarwin_x86_64.cpp:180
ehframe_dwarf_gpr_r12
@ ehframe_dwarf_gpr_r12
Definition: RegisterContextDarwin_x86_64.cpp:116
gpr_r15
@ gpr_r15
Definition: RegisterContextDarwin_x86_64.cpp:45
gpr_rdx
@ gpr_rdx
Definition: RegisterContextDarwin_x86_64.cpp:33
RegisterContextDarwin_x86_64::FPU::mxcsr
uint32_t mxcsr
Definition: RegisterContextDarwin_x86_64.h:93
fpu_mxcsrmask
@ fpu_mxcsrmask
Definition: RegisterContextDarwin_x86_64.cpp:61
exc_trapno
@ exc_trapno
Definition: RegisterContextDarwin_x86_64.cpp:87
ehframe_dwarf_fpu_xmm1
@ ehframe_dwarf_fpu_xmm1
Definition: RegisterContextDarwin_x86_64.cpp:122
RegisterContextDarwin_x86_64::FPU::fcw
uint16_t fcw
Definition: RegisterContextDarwin_x86_64.h:82
RegisterValue.h
RegisterContextDarwin_x86_64::fpu_errs
int fpu_errs[2]
Definition: RegisterContextDarwin_x86_64.h:122
rdi
@ rdi
Definition: CompactUnwindInfo.cpp:698
fpu_stmm1
@ fpu_stmm1
Definition: RegisterContextDarwin_x86_64.cpp:63
ehframe_dwarf_fpu_stmm6
@ ehframe_dwarf_fpu_stmm6
Definition: RegisterContextDarwin_x86_64.cpp:143
fpu_ftag
@ fpu_ftag
Definition: RegisterContextDarwin_x86_64.cpp:96
RegisterContextDarwin_x86_64::EXC::trapno
uint32_t trapno
Definition: RegisterContextDarwin_x86_64.h:102
RegisterContextDarwin_x86_64::MMSReg::bytes
uint8_t bytes[10]
Definition: RegisterContextDarwin_x86_64.h:72
ehframe_dwarf_fpu_xmm13
@ ehframe_dwarf_fpu_xmm13
Definition: RegisterContextDarwin_x86_64.cpp:134
ehframe_dwarf_fpu_xmm3
@ ehframe_dwarf_fpu_xmm3
Definition: RegisterContextDarwin_x86_64.cpp:124
fpu_foseg
@ fpu_foseg
Definition: RegisterContextDarwin_x86_64.cpp:99
RegisterContextDarwin_x86_64::GetRegisterSetCount
size_t GetRegisterSetCount() override
Definition: RegisterContextDarwin_x86_64.cpp:530
lldb_private::RegisterValue::SetBytes
void SetBytes(const void *bytes, size_t length, lldb::ByteOrder byte_order)
Definition: RegisterValue.cpp:752
lldb_private::RegisterContext::GetThreadID
virtual lldb::tid_t GetThreadID() const
Definition: RegisterContext.cpp:282
ehframe_dwarf_fpu_xmm8
@ ehframe_dwarf_fpu_xmm8
Definition: RegisterContextDarwin_x86_64.cpp:129
ehframe_dwarf_fpu_xmm12
@ ehframe_dwarf_fpu_xmm12
Definition: RegisterContextDarwin_x86_64.cpp:133
lldb_private::RegisterValue::GetAsUInt64
uint64_t GetAsUInt64(uint64_t fail_value=UINT64_MAX, bool *success_ptr=nullptr) const
Definition: RegisterValue.cpp:563
ehframe_dwarf_gpr_r15
@ ehframe_dwarf_gpr_r15
Definition: RegisterContextDarwin_x86_64.cpp:119
ehframe_dwarf_fpu_xmm2
@ ehframe_dwarf_fpu_xmm2
Definition: RegisterContextDarwin_x86_64.cpp:123
fpu_fop
@ fpu_fop
Definition: RegisterContextDarwin_x86_64.cpp:55
fpu_stmm4
@ fpu_stmm4
Definition: RegisterContextDarwin_x86_64.cpp:66
ehframe_dwarf_fpu_xmm9
@ ehframe_dwarf_fpu_xmm9
Definition: RegisterContextDarwin_x86_64.cpp:130
gpr_rcx
@ gpr_rcx
Definition: RegisterContextDarwin_x86_64.cpp:32
ehframe_dwarf_fpu_xmm10
@ ehframe_dwarf_fpu_xmm10
Definition: RegisterContextDarwin_x86_64.cpp:131
lldb::eRegisterKindEHFrame
@ eRegisterKindEHFrame
the register numbers seen in eh_frame
Definition: lldb-enumerations.h:228
ehframe_dwarf_gpr_rsp
@ ehframe_dwarf_gpr_rsp
Definition: RegisterContextDarwin_x86_64.cpp:111
LLDB_REGNUM_GENERIC_FLAGS
#define LLDB_REGNUM_GENERIC_FLAGS
Definition: lldb-defines.h:67
RegisterContextDarwin_x86_64::DoWriteGPR
virtual int DoWriteGPR(lldb::tid_t tid, int flavor, const GPR &gpr)=0
fpu_stmm0
@ fpu_stmm0
Definition: RegisterContextDarwin_x86_64.cpp:62
fpu_xmm4
@ fpu_xmm4
Definition: RegisterContextDarwin_x86_64.cpp:74
r8
@ r8
Definition: CompactUnwindInfo.cpp:701
RegisterContextDarwin_x86_64::FPU::stmm
MMSReg stmm[8]
Definition: RegisterContextDarwin_x86_64.h:95
RegisterContextDarwin_x86_64::WriteAllRegisterValues
bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override
Definition: RegisterContextDarwin_x86_64.cpp:905
rcx
@ rcx
Definition: CompactUnwindInfo.cpp:695
fpu_xmm3
@ fpu_xmm3
Definition: RegisterContextDarwin_x86_64.cpp:73
lldb::eRegisterKindLLDB
@ eRegisterKindLLDB
lldb's internal register numbers
Definition: lldb-enumerations.h:234
RegisterContextDarwin_x86_64::GetRegisterInfoAtIndex
const lldb_private::RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
Definition: RegisterContextDarwin_x86_64.cpp:482
fpu_xmm6
@ fpu_xmm6
Definition: RegisterContextDarwin_x86_64.cpp:76
RegisterContextDarwin_x86_64::FPU::dp
uint32_t dp
Definition: RegisterContextDarwin_x86_64.h:90
gpr_r13
@ gpr_r13
Definition: RegisterContextDarwin_x86_64.cpp:43
Log.h
DEFINE_GPR
#define DEFINE_GPR(reg, alt)
Definition: RegisterContextDarwin_x86_64.cpp:162
fpu_xmm15
@ fpu_xmm15
Definition: RegisterContextDarwin_x86_64.cpp:85
ehframe_dwarf_gpr_rdx
@ ehframe_dwarf_gpr_rdx
Definition: RegisterContextDarwin_x86_64.cpp:105
lldb_private::Thread
Definition: Thread.h:62
RegisterContextDarwin_x86_64::exc_errs
int exc_errs[2]
Definition: RegisterContextDarwin_x86_64.h:123
lldb_private::RegisterValue::GetBytes
const void * GetBytes() const
Definition: RegisterValue.cpp:693
RegisterContextDarwin_x86_64::DoReadFPU
virtual int DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu)=0
DEFINE_EXC
#define DEFINE_EXC(reg)
Definition: RegisterContextDarwin_x86_64.cpp:176
RegisterContextDarwin_x86_64::EXC::err
uint32_t err
Definition: RegisterContextDarwin_x86_64.h:103
ehframe_dwarf_gpr_rdi
@ ehframe_dwarf_gpr_rdi
Definition: RegisterContextDarwin_x86_64.cpp:109
lldb_private::RegisterValue::GetAsUInt16
uint16_t GetAsUInt16(uint16_t fail_value=UINT16_MAX, bool *success_ptr=nullptr) const
Definition: RegisterValue.cpp:507
rbx
@ rbx
Definition: CompactUnwindInfo.cpp:696
ehframe_dwarf_fpu_xmm14
@ ehframe_dwarf_fpu_xmm14
Definition: RegisterContextDarwin_x86_64.cpp:135
r11
@ r11
Definition: CompactUnwindInfo.cpp:704
r14
@ r14
Definition: CompactUnwindInfo.cpp:707
RegisterContextDarwin_x86_64::GetRegisterCount
size_t GetRegisterCount() override
Definition: RegisterContextDarwin_x86_64.cpp:476
gpr_gs
@ gpr_gs
Definition: RegisterContextDarwin_x86_64.cpp:50
lldb_private::RegisterValue::GetAsUInt8
uint8_t GetAsUInt8(uint8_t fail_value=UINT8_MAX, bool *success_ptr=nullptr) const
Definition: RegisterValue.h:108
ehframe_dwarf_fpu_stmm1
@ ehframe_dwarf_fpu_stmm1
Definition: RegisterContextDarwin_x86_64.cpp:138
ehframe_dwarf_gpr_r9
@ ehframe_dwarf_gpr_r9
Definition: RegisterContextDarwin_x86_64.cpp:113
g_register_infos
static RegisterInfo g_register_infos[]
Definition: RegisterContextDarwin_x86_64.cpp:186
gpr_r14
@ gpr_r14
Definition: RegisterContextDarwin_x86_64.cpp:44
k_num_gpr_registers
const size_t k_num_gpr_registers
Definition: RegisterContextDarwin_x86_64.cpp:514
RegisterContextDarwin_x86_64::GPRRegSet
@ GPRRegSet
Definition: RegisterContextDarwin_x86_64.h:108
RegisterContextDarwin_x86_64::ReadEXC
int ReadEXC(bool force)
Definition: RegisterContextDarwin_x86_64.cpp:567
RegisterContextDarwin_x86_64::GetSetForNativeRegNum
static int GetSetForNativeRegNum(int reg_num)
Definition: RegisterContextDarwin_x86_64.cpp:541
ehframe_dwarf_fpu_stmm4
@ ehframe_dwarf_fpu_stmm4
Definition: RegisterContextDarwin_x86_64.cpp:141
RegisterContextDarwin_x86_64::WriteRegisterSet
int WriteRegisterSet(uint32_t set)
Definition: RegisterContextDarwin_x86_64.cpp:622
RegisterContextDarwin_x86_64::FPU::xmm
XMMReg xmm[16]
Definition: RegisterContextDarwin_x86_64.h:96
set
set(option_framework FRAMEWORK) endif() if(LLDB_ENABLE_PYTHON) get_target_property(python_bindings_dir swig_wrapper_python BINARY_DIR) set(lldb_python_wrapper $
Definition: API/CMakeLists.txt:9
ehframe_dwarf_gpr_rax
@ ehframe_dwarf_gpr_rax
Definition: RegisterContextDarwin_x86_64.cpp:104
gpr_rip
@ gpr_rip
Definition: RegisterContextDarwin_x86_64.cpp:46
fpu_xmm5
@ fpu_xmm5
Definition: RegisterContextDarwin_x86_64.cpp:75
ehframe_dwarf_gpr_rbp
@ ehframe_dwarf_gpr_rbp
Definition: RegisterContextDarwin_x86_64.cpp:110
g_exc_regnums
static uint32_t g_exc_regnums[]
Definition: RegisterContextDarwin_x86_64.cpp:511
gpr_r8
@ gpr_r8
Definition: RegisterContextDarwin_x86_64.cpp:38
fpu_fooff
@ fpu_fooff
Definition: RegisterContextDarwin_x86_64.cpp:100
lldb_private::RegisterContext
Definition: RegisterContext.h:17
fpu_fsw
@ fpu_fsw
Definition: RegisterContextDarwin_x86_64.cpp:53
fpu_xmm14
@ fpu_xmm14
Definition: RegisterContextDarwin_x86_64.cpp:84
fpu_fioff
@ fpu_fioff
Definition: RegisterContextDarwin_x86_64.cpp:98
lldb::RegisterKind
RegisterKind
Register numbering types.
Definition: lldb-enumerations.h:227
ehframe_dwarf_gpr_rbx
@ ehframe_dwarf_gpr_rbx
Definition: RegisterContextDarwin_x86_64.cpp:107
ehframe_dwarf_fpu_xmm0
@ ehframe_dwarf_fpu_xmm0
Definition: RegisterContextDarwin_x86_64.cpp:121
RegisterContextDarwin_x86_64::EXC::faultvaddr
uint64_t faultvaddr
Definition: RegisterContextDarwin_x86_64.h:104
RegisterContextDarwin_x86_64::ReadRegister
bool ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value) override
Definition: RegisterContextDarwin_x86_64.cpp:637
RegisterContextDarwin_x86_64::DoReadEXC
virtual int DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc)=0
RegisterContextDarwin_x86_64::FPU::ds
uint16_t ds
Definition: RegisterContextDarwin_x86_64.h:91
gpr_r11
@ gpr_r11
Definition: RegisterContextDarwin_x86_64.cpp:41
ehframe_dwarf_fpu_stmm5
@ ehframe_dwarf_fpu_stmm5
Definition: RegisterContextDarwin_x86_64.cpp:142
RegisterContextDarwin_x86_64::InvalidateAllRegisterStates
void InvalidateAllRegisterStates()
Definition: RegisterContextDarwin_x86_64.h:125
gpr_rflags
@ gpr_rflags
Definition: RegisterContextDarwin_x86_64.cpp:47
RegisterContextDarwin_x86_64::~RegisterContextDarwin_x86_64
~RegisterContextDarwin_x86_64() override
ehframe_dwarf_fpu_stmm7
@ ehframe_dwarf_fpu_stmm7
Definition: RegisterContextDarwin_x86_64.cpp:144
ehframe_dwarf_fpu_stmm0
@ ehframe_dwarf_fpu_stmm0
Definition: RegisterContextDarwin_x86_64.cpp:137
rdx
@ rdx
Definition: CompactUnwindInfo.cpp:694
RegisterContextDarwin_x86_64::ConvertRegisterKindToRegisterNumber
uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override
Convert from a given register numbering scheme to the lldb register numbering scheme.
Definition: RegisterContextDarwin_x86_64.cpp:928
ehframe_dwarf_gpr_r10
@ ehframe_dwarf_gpr_r10
Definition: RegisterContextDarwin_x86_64.cpp:114
g_gpr_regnums
static uint32_t g_gpr_regnums[]
Definition: RegisterContextDarwin_x86_64.cpp:498
RegisterContextDarwin_x86_64::ReadAllRegisterValues
bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override
Definition: RegisterContextDarwin_x86_64.cpp:888
RegisterContextDarwin_x86_64::WriteEXC
int WriteEXC()
Definition: RegisterContextDarwin_x86_64.cpp:597
RegisterContextDarwin_x86_64::kNumErrors
@ kNumErrors
Definition: RegisterContextDarwin_x86_64.h:116
uint32_t
RegisterContextDarwin_x86_64::FPU::cs
uint16_t cs
Definition: RegisterContextDarwin_x86_64.h:88
RegisterContextDarwin_x86_64::gpr_errs
int gpr_errs[2]
Definition: RegisterContextDarwin_x86_64.h:121
LLDB_REGNUM_GENERIC_SP
#define LLDB_REGNUM_GENERIC_SP
Definition: lldb-defines.h:64
fpu_fiseg
@ fpu_fiseg
Definition: RegisterContextDarwin_x86_64.cpp:97
lldb_private::endian::InlHostByteOrder
lldb::ByteOrder InlHostByteOrder()
Definition: Endian.h:25
ehframe_dwarf_fpu_xmm5
@ ehframe_dwarf_fpu_xmm5
Definition: RegisterContextDarwin_x86_64.cpp:126
fpu_stmm2
@ fpu_stmm2
Definition: RegisterContextDarwin_x86_64.cpp:64
RegisterContextDarwin_x86_64::FPU::fsw
uint16_t fsw
Definition: RegisterContextDarwin_x86_64.h:83
RegisterContextDarwin_x86_64::ReadFPU
int ReadFPU(bool force)
Definition: RegisterContextDarwin_x86_64.cpp:559
fpu_fstat
@ fpu_fstat
Definition: RegisterContextDarwin_x86_64.cpp:95
fpu_fcw
@ fpu_fcw
Definition: RegisterContextDarwin_x86_64.cpp:52
RegisterContextDarwin_x86_64::FPU::ip
uint32_t ip
Definition: RegisterContextDarwin_x86_64.h:87
gpr_cs
@ gpr_cs
Definition: RegisterContextDarwin_x86_64.cpp:48
fpu_mxcsr
@ fpu_mxcsr
Definition: RegisterContextDarwin_x86_64.cpp:60
RegisterContextDarwin_x86_64::RegisterContextDarwin_x86_64
RegisterContextDarwin_x86_64(lldb_private::Thread &thread, uint32_t concrete_frame_idx)
Definition: RegisterContextDarwin_x86_64.cpp:459
rip
@ rip
Definition: CompactUnwindInfo.cpp:709
ehframe_dwarf_regnums
ehframe_dwarf_regnums
Definition: RegisterContextDarwin_x86_64.cpp:103
fpu_stmm5
@ fpu_stmm5
Definition: RegisterContextDarwin_x86_64.cpp:67
RegisterContextDarwin_x86_64::Write
@ Write
Definition: RegisterContextDarwin_x86_64.h:116
fpu_xmm11
@ fpu_xmm11
Definition: RegisterContextDarwin_x86_64.cpp:81
DataExtractor.h
ehframe_dwarf_fpu_stmm2
@ ehframe_dwarf_fpu_stmm2
Definition: RegisterContextDarwin_x86_64.cpp:139
k_num_fpu_registers
const size_t k_num_fpu_registers
Definition: RegisterContextDarwin_x86_64.cpp:515
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
ehframe_dwarf_fpu_stmm3
@ ehframe_dwarf_fpu_stmm3
Definition: RegisterContextDarwin_x86_64.cpp:140
fpu_xmm13
@ fpu_xmm13
Definition: RegisterContextDarwin_x86_64.cpp:83
LLDB_REGNUM_GENERIC_FP
#define LLDB_REGNUM_GENERIC_FP
Definition: lldb-defines.h:65
RegisterContextDarwin_x86_64.h
RegisterContextDarwin_x86_64::SetError
bool SetError(int flavor, uint32_t err_idx, int err)
Definition: RegisterContextDarwin_x86_64.h:149
r15
@ r15
Definition: CompactUnwindInfo.cpp:708
RegisterContextDarwin_x86_64::GetRegisterSet
const lldb_private::RegisterSet * GetRegisterSet(size_t set) override
Definition: RegisterContextDarwin_x86_64.cpp:535
RegisterContextDarwin_x86_64::DoReadGPR
virtual int DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr)=0
exc_err
@ exc_err
Definition: RegisterContextDarwin_x86_64.cpp:88
LLDB_REGNUM_GENERIC_PC
#define LLDB_REGNUM_GENERIC_PC
Definition: lldb-defines.h:63
ehframe_dwarf_fpu_xmm4
@ ehframe_dwarf_fpu_xmm4
Definition: RegisterContextDarwin_x86_64.cpp:125
fpu_xmm2
@ fpu_xmm2
Definition: RegisterContextDarwin_x86_64.cpp:72
RegisterContextDarwin_x86_64::exc
EXC exc
Definition: RegisterContextDarwin_x86_64.h:120
fpu_xmm0
@ fpu_xmm0
Definition: RegisterContextDarwin_x86_64.cpp:70
gpr_fs
@ gpr_fs
Definition: RegisterContextDarwin_x86_64.cpp:49
RegisterContextDarwin_x86_64::Read
@ Read
Definition: RegisterContextDarwin_x86_64.h:116
gpr_rbp
@ gpr_rbp
Definition: RegisterContextDarwin_x86_64.cpp:36
exc_faultvaddr
@ exc_faultvaddr
Definition: RegisterContextDarwin_x86_64.cpp:89
RegisterContextDarwin_x86_64::FPU::fop
uint16_t fop
Definition: RegisterContextDarwin_x86_64.h:86
fpu_xmm8
@ fpu_xmm8
Definition: RegisterContextDarwin_x86_64.cpp:78
ehframe_dwarf_gpr_rip
@ ehframe_dwarf_gpr_rip
Definition: RegisterContextDarwin_x86_64.cpp:120
RegisterContextDarwin_x86_64::EXCRegSet
@ EXCRegSet
Definition: RegisterContextDarwin_x86_64.h:108
RegisterContextDarwin_x86_64::WriteFPU
int WriteFPU()
Definition: RegisterContextDarwin_x86_64.cpp:586
RegisterContextDarwin_x86_64::DoWriteEXC
virtual int DoWriteEXC(lldb::tid_t tid, int flavor, const EXC &exc)=0
ehframe_dwarf_fpu_xmm15
@ ehframe_dwarf_fpu_xmm15
Definition: RegisterContextDarwin_x86_64.cpp:136
RegisterContextDarwin_x86_64::GetRegisterInfosCount
static size_t GetRegisterInfosCount()
Definition: RegisterContextDarwin_x86_64.cpp:489
gpr_r12
@ gpr_r12
Definition: RegisterContextDarwin_x86_64.cpp:42
rsi
@ rsi
Definition: CompactUnwindInfo.cpp:697
gpr_r9
@ gpr_r9
Definition: RegisterContextDarwin_x86_64.cpp:39
RegisterContextDarwin_x86_64::FPURegSet
@ FPURegSet
Definition: RegisterContextDarwin_x86_64.h:108
k_num_exc_registers
const size_t k_num_exc_registers
Definition: RegisterContextDarwin_x86_64.cpp:516
RegisterContextDarwin_x86_64::InvalidateAllRegisters
void InvalidateAllRegisters() override
Definition: RegisterContextDarwin_x86_64.cpp:472
lldb_private::RegisterValue::GetAsUInt32
uint32_t GetAsUInt32(uint32_t fail_value=UINT32_MAX, bool *success_ptr=nullptr) const
Definition: RegisterValue.cpp:533
r9
@ r9
Definition: CompactUnwindInfo.cpp:702
lldb
Definition: SBAddress.h:15
fpu_fctrl
@ fpu_fctrl
Definition: RegisterContextDarwin_x86_64.cpp:94
RegisterContextDarwin_x86_64::gpr
GPR gpr
Definition: RegisterContextDarwin_x86_64.h:118
Endian.h
fpu_xmm10
@ fpu_xmm10
Definition: RegisterContextDarwin_x86_64.cpp:80
RegisterContextDarwin_x86_64::WriteGPR
int WriteGPR()
Definition: RegisterContextDarwin_x86_64.cpp:575
rbp
@ rbp
Definition: CompactUnwindInfo.cpp:699
ehframe_dwarf_gpr_rsi
@ ehframe_dwarf_gpr_rsi
Definition: RegisterContextDarwin_x86_64.cpp:108
DataBufferHeap.h
RegisterContextDarwin_x86_64::GetError
int GetError(int flavor, uint32_t err_idx) const
Definition: RegisterContextDarwin_x86_64.h:131
RegisterContextDarwin_x86_64::WriteRegister
bool WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value) override
Definition: RegisterContextDarwin_x86_64.cpp:762
fpu_cs
@ fpu_cs
Definition: RegisterContextDarwin_x86_64.cpp:57
RegisterContextDarwin_x86_64::GPR::rflags
uint64_t rflags
Definition: RegisterContextDarwin_x86_64.h:65
fpu_stmm3
@ fpu_stmm3
Definition: RegisterContextDarwin_x86_64.cpp:65
ehframe_dwarf_gpr_rcx
@ ehframe_dwarf_gpr_rcx
Definition: RegisterContextDarwin_x86_64.cpp:106
rsp
@ rsp
Definition: CompactUnwindInfo.cpp:700
gpr_r10
@ gpr_r10
Definition: RegisterContextDarwin_x86_64.cpp:40
r13
@ r13
Definition: CompactUnwindInfo.cpp:706
LLDB_REGNUM_GENERIC_RA
#define LLDB_REGNUM_GENERIC_RA
Definition: lldb-defines.h:66
DEFINE_FPU_VECT
#define DEFINE_FPU_VECT(reg, i)
Definition: RegisterContextDarwin_x86_64.cpp:168