@@ -758,41 +758,45 @@ ValueObjectSP ABIMacOSX_arm64::GetReturnValueObjectImpl(
758758}
759759
760760addr_t ABIMacOSX_arm64::FixCodeAddress (addr_t pc) {
761- addr_t pac_sign_extension = 0x0080000000000000ULL ;
761+ ProcessSP process_sp = GetProcessSP ();
762+ if (!process_sp)
763+ return pc;
764+
765+ addr_t mask = process_sp->GetCodeAddressMask ();
762766 addr_t tbi_mask = 0xff80000000000000ULL ;
763- addr_t mask = 0 ;
764-
765- if (ProcessSP process_sp = GetProcessSP ()) {
766- mask = process_sp->GetCodeAddressMask ();
767- if (pc & pac_sign_extension) {
768- addr_t highmem_mask = process_sp->GetHighmemCodeAddressMask ();
769- if (highmem_mask != LLDB_INVALID_ADDRESS_MASK)
770- mask = highmem_mask;
771- }
772- }
773767 if (mask == LLDB_INVALID_ADDRESS_MASK)
774768 mask = tbi_mask;
775769
776- return (pc & pac_sign_extension) ? pc | mask : pc & (~mask);
770+ addr_t pac_sign_extension = 0x0080000000000000ULL ;
771+ if (pc & pac_sign_extension) {
772+ addr_t highmem_mask = process_sp->GetHighmemCodeAddressMask ();
773+ if (highmem_mask != LLDB_INVALID_ADDRESS_MASK)
774+ return pc | highmem_mask;
775+ return pc | mask;
776+ }
777+
778+ return pc & (~mask);
777779}
778780
779781addr_t ABIMacOSX_arm64::FixDataAddress (addr_t pc) {
780- addr_t pac_sign_extension = 0x0080000000000000ULL ;
782+ ProcessSP process_sp = GetProcessSP ();
783+ if (!process_sp)
784+ return pc;
785+
786+ addr_t mask = process_sp->GetDataAddressMask ();
781787 addr_t tbi_mask = 0xff80000000000000ULL ;
782- addr_t mask = 0 ;
783-
784- if (ProcessSP process_sp = GetProcessSP ()) {
785- mask = process_sp->GetDataAddressMask ();
786- if (pc & pac_sign_extension) {
787- addr_t highmem_mask = process_sp->GetHighmemDataAddressMask ();
788- if (highmem_mask != LLDB_INVALID_ADDRESS_MASK)
789- mask = highmem_mask;
790- }
791- }
792788 if (mask == LLDB_INVALID_ADDRESS_MASK)
793789 mask = tbi_mask;
794790
795- return (pc & pac_sign_extension) ? pc | mask : pc & (~mask);
791+ addr_t pac_sign_extension = 0x0080000000000000ULL ;
792+ if (pc & pac_sign_extension) {
793+ addr_t highmem_mask = process_sp->GetHighmemDataAddressMask ();
794+ if (highmem_mask != LLDB_INVALID_ADDRESS_MASK)
795+ return pc | highmem_mask;
796+ return pc | mask;
797+ }
798+
799+ return pc & (~mask);
796800}
797801
798802void ABIMacOSX_arm64::Initialize () {
0 commit comments