	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_heap_delete                    ## -- Begin function heap_delete
	.p2align	4, 0x90
_heap_delete:                           ## @heap_delete
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$152, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%r9, -184(%rbp)                 ## 8-byte Spill
	movl	%r8d, %r13d
	movl	%ecx, -132(%rbp)                ## 4-byte Spill
	movq	%rsi, %r15
	movq	%rdi, -72(%rbp)                 ## 8-byte Spill
	movl	%edx, -104(%rbp)                ## 4-byte Spill
	movl	%edx, -96(%rbp)
	xorl	%eax, %eax
	callq	_GetCurrentTransactionId
	movq	%rax, -176(%rbp)                ## 8-byte Spill
	movq	_InvalidBuffer@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -88(%rbp)
	movl	$0, -80(%rbp)
	movl	$0, -92(%rbp)
	movq	%r15, %rdi
	callq	_ItemPointerIsValid
	movl	%eax, %edi
	callq	_Assert
	xorl	%eax, %eax
	callq	_IsInParallelMode
	testq	%rax, %rax
	je	LBB0_2
## %bb.1:
	movq	_ERROR@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movq	_ERRCODE_INVALID_TRANSACTION_STATE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_errcode
	leaq	L_.str(%rip), %rdi
	callq	_errmsg
	movl	%ebx, %edi
	movl	%eax, %esi
	callq	_ereport
LBB0_2:
	movq	%r15, %rdi
	callq	_ItemPointerGetBlockNumber
	movl	%eax, %r12d
	movq	-72(%rbp), %rbx                 ## 8-byte Reload
	movq	%rbx, %rdi
	movl	%eax, %esi
	callq	_ReadBuffer
	movq	%rax, %r14
	movq	%rax, %rdi
	callq	_BufferGetPage
	movl	%eax, -76(%rbp)                 ## 4-byte Spill
	movl	%eax, %edi
	callq	_PageIsAllVisible
	testq	%rax, %rax
	je	LBB0_4
## %bb.3:
	leaq	-88(%rbp), %rdx
	movq	%rbx, %rdi
	movl	%r12d, %esi
	callq	_visibilitymap_pin
LBB0_4:
	movq	_BUFFER_LOCK_EXCLUSIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_LockBuffer
	movq	-88(%rbp), %rax
	movq	_InvalidBuffer@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_7
## %bb.5:
	movl	-76(%rbp), %edi                 ## 4-byte Reload
	callq	_PageIsAllVisible
	testq	%rax, %rax
	je	LBB0_7
## %bb.6:
	movq	_BUFFER_LOCK_UNLOCK@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_LockBuffer
	leaq	-88(%rbp), %rdx
	movq	-72(%rbp), %rdi                 ## 8-byte Reload
	movl	%r12d, %esi
	callq	_visibilitymap_pin
	movq	_BUFFER_LOCK_EXCLUSIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_LockBuffer
LBB0_7:
	movq	%r15, %rdi
	callq	_ItemPointerGetOffsetNumber
	movl	-76(%rbp), %r12d                ## 4-byte Reload
	movl	%r12d, %edi
	movl	%eax, %esi
	callq	_PageGetItemId
	movl	%eax, %ebx
	movl	%eax, %edi
	callq	_ItemIdIsNormal
	movl	%eax, %edi
	callq	_Assert
	movq	-72(%rbp), %rdi                 ## 8-byte Reload
	callq	_RelationGetRelid
	movl	%eax, -44(%rbp)
	movl	%r12d, %edi
	movl	%ebx, %esi
	callq	_PageGetItem
	movq	%rax, -56(%rbp)
	movl	%ebx, %edi
	callq	_ItemIdGetLength
	movl	%eax, -48(%rbp)
	movl	(%r15), %eax
	movl	%eax, -64(%rbp)
	leaq	-64(%rbp), %rdi
	movl	-104(%rbp), %r12d               ## 4-byte Reload
	jmp	LBB0_9
	.p2align	4, 0x90
LBB0_8:                                 ##   in Loop: Header=BB0_9 Depth=1
	leaq	-64(%rbp), %rdi
LBB0_9:                                 ## =>This Inner Loop Header: Depth=1
	movl	%r12d, %esi
	movq	%r14, %rdx
	callq	_HeapTupleSatisfiesUpdate
	movq	%rax, %r15
	movq	_TM_Invisible@GOTPCREL(%rip), %rax
	cmpq	(%rax), %r15
	je	LBB0_26
## %bb.10:                              ##   in Loop: Header=BB0_9 Depth=1
	testl	%r13d, %r13d
	je	LBB0_27
## %bb.11:                              ##   in Loop: Header=BB0_9 Depth=1
	movq	_TM_BeingModified@GOTPCREL(%rip), %rax
	cmpq	(%rax), %r15
	jne	LBB0_27
## %bb.12:                              ##   in Loop: Header=BB0_9 Depth=1
	movq	-56(%rbp), %rdi
	callq	_HeapTupleHeaderGetRawXmax
	movq	%rax, %r15
	movq	-56(%rbp), %rax
	movl	(%rax), %ebx
	movq	_HEAP_XMAX_IS_MULTI@GOTPCREL(%rip), %rax
	testl	%ebx, (%rax)
	je	LBB0_18
## %bb.13:                              ##   in Loop: Header=BB0_9 Depth=1
	movl	$0, -128(%rbp)
	movq	_LockTupleExclusive@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	%r15d, %edi
	movl	%ebx, %esi
	leaq	-128(%rbp), %rcx
	callq	_DoesMultiXactIdConflict
	testq	%rax, %rax
	je	LBB0_22
## %bb.14:                              ##   in Loop: Header=BB0_9 Depth=1
	movq	_BUFFER_LOCK_UNLOCK@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_LockBuffer
	cmpl	$0, -128(%rbp)
	jne	LBB0_16
## %bb.15:                              ##   in Loop: Header=BB0_9 Depth=1
	movq	_LockTupleExclusive@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_LockWaitBlock@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	-72(%rbp), %rdi                 ## 8-byte Reload
	leaq	-64(%rbp), %rsi
	leaq	-80(%rbp), %r8
	callq	_heap_acquire_tuplock
LBB0_16:                                ##   in Loop: Header=BB0_9 Depth=1
	movq	_MultiXactStatusUpdate@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_XLTW_Delete@GOTPCREL(%rip), %rax
	movl	(%rax), %r9d
	subq	$8, %rsp
	movl	%r15d, %edi
	movl	%ebx, %edx
	movq	-72(%rbp), %rcx                 ## 8-byte Reload
	leaq	-64(%rbp), %r8
	pushq	$0
	callq	_MultiXactIdWait
	addq	$16, %rsp
	movq	_BUFFER_LOCK_EXCLUSIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_LockBuffer
	movq	-56(%rbp), %rax
	movl	(%rax), %edi
	movl	%ebx, %esi
	callq	_xmax_infomask_changed
	testq	%rax, %rax
	jne	LBB0_8
## %bb.17:                              ##   in Loop: Header=BB0_9 Depth=1
	movq	-56(%rbp), %rdi
	callq	_HeapTupleHeaderGetRawXmax
	movq	%rax, %rdi
	movq	%r15, %rsi
	callq	_TransactionIdEquals
	testl	%eax, %eax
	je	LBB0_8
	jmp	LBB0_22
	.p2align	4, 0x90
LBB0_18:                                ##   in Loop: Header=BB0_9 Depth=1
	movq	%r15, %rdi
	callq	_TransactionIdIsCurrentTransactionId
	testl	%eax, %eax
	jne	LBB0_22
## %bb.19:                              ##   in Loop: Header=BB0_9 Depth=1
	movq	_BUFFER_LOCK_UNLOCK@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_LockBuffer
	movq	_LockTupleExclusive@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_LockWaitBlock@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%r14, %r12
	movl	%r13d, %r14d
	movq	-72(%rbp), %r13                 ## 8-byte Reload
	movq	%r13, %rdi
	leaq	-64(%rbp), %rsi
	leaq	-80(%rbp), %r8
	callq	_heap_acquire_tuplock
	movq	_XLTW_Delete@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%r15, %rdi
	movq	%r13, %rsi
	movl	%r14d, %r13d
	movq	%r12, %r14
	movl	-104(%rbp), %r12d               ## 4-byte Reload
	leaq	-64(%rbp), %rdx
	callq	_XactLockTableWait
	movq	_BUFFER_LOCK_EXCLUSIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_LockBuffer
	movq	-56(%rbp), %rax
	movl	(%rax), %edi
	movl	%ebx, %esi
	callq	_xmax_infomask_changed
	testq	%rax, %rax
	jne	LBB0_8
## %bb.20:                              ##   in Loop: Header=BB0_9 Depth=1
	movq	-56(%rbp), %rdi
	callq	_HeapTupleHeaderGetRawXmax
	movq	%rax, %rdi
	movq	%r15, %rsi
	callq	_TransactionIdEquals
	testl	%eax, %eax
	je	LBB0_8
## %bb.21:
	movq	-56(%rbp), %rdi
	movq	%r14, %rsi
	movq	%r15, %rdx
	callq	_UpdateXmaxHintBits
LBB0_22:
	movq	-56(%rbp), %rax
	movl	(%rax), %edi
	movq	_HEAP_XMAX_INVALID@GOTPCREL(%rip), %rax
	movq	_TM_Ok@GOTPCREL(%rip), %rbx
	testl	%edi, (%rax)
	jne	LBB0_25
## %bb.23:
	callq	_HEAP_XMAX_IS_LOCKED_ONLY
	testq	%rax, %rax
	jne	LBB0_25
## %bb.24:
	movq	-56(%rbp), %rdi
	callq	_HeapTupleHeaderIsOnlyLocked
	testq	%rax, %rax
	jne	LBB0_25
## %bb.74:
	movq	-56(%rbp), %rsi
	addq	$8, %rsi
	leaq	-64(%rbp), %rdi
	callq	_ItemPointerEquals
	testl	%eax, %eax
	je	LBB0_78
## %bb.75:
	movq	-56(%rbp), %rdi
	callq	_HeapTupleHeaderIndicatesMovedPartitions
	testq	%rax, %rax
	jne	LBB0_78
## %bb.76:
	movq	_TM_Deleted@GOTPCREL(%rip), %rbx
	jmp	LBB0_25
LBB0_26:
	movq	%r14, %rdi
	callq	_UnlockReleaseBuffer
	movq	_ERROR@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movq	_ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_errcode
	leaq	L_.str.1(%rip), %rdi
	callq	_errmsg
	movl	%ebx, %edi
	movl	%eax, %esi
	callq	_ereport
	jmp	LBB0_27
LBB0_78:
	movq	_TM_Updated@GOTPCREL(%rip), %rbx
LBB0_25:
	movq	(%rbx), %r15
LBB0_27:
	movq	_InvalidSnapshot@GOTPCREL(%rip), %rcx
	movq	_TM_Ok@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rax
	movl	-132(%rbp), %esi                ## 4-byte Reload
	cmpl	%esi, (%rcx)
	je	LBB0_32
## %bb.28:
	cmpq	%rax, %r15
	jne	LBB0_32
## %bb.29:
	leaq	-64(%rbp), %rdi
	movq	%r14, %rdx
	callq	_HeapTupleSatisfiesVisibility
	testl	%eax, %eax
	jne	LBB0_31
## %bb.30:
	movq	_TM_Updated@GOTPCREL(%rip), %rax
	movq	(%rax), %r15
LBB0_31:
	movq	(%rbx), %rax
LBB0_32:
	movq	-72(%rbp), %r13                 ## 8-byte Reload
	cmpq	%rax, %r15
	jne	LBB0_46
## %bb.33:
	leaq	-64(%rbp), %rbx
	movq	%r13, %rdi
	movq	%rbx, %rsi
	movq	%r14, %rdx
	callq	_CheckForSerializableConflictIn
	movq	-56(%rbp), %rdi
	leaq	-96(%rbp), %rsi
	leaq	-136(%rbp), %rdx
	callq	_HeapTupleHeaderAdjustCmax
	leaq	-92(%rbp), %rcx
	movq	%r13, %rdi
	movq	%rbx, %rsi
	movl	$1, %edx
	callq	_ExtractReplicaIdentity
	movq	%rax, -104(%rbp)                ## 8-byte Spill
	xorl	%eax, %eax
	callq	_MultiXactIdSetOldestMember
	movq	-56(%rbp), %rdi
	callq	_HeapTupleHeaderGetRawXmax
	movq	-56(%rbp), %rcx
	movl	(%rcx), %esi
	movl	4(%rcx), %edx
	movq	_LockTupleExclusive@GOTPCREL(%rip), %rcx
	movl	(%rcx), %r8d
	subq	$8, %rsp
	leaq	-140(%rbp), %rbx
	leaq	-144(%rbp), %r10
	leaq	-152(%rbp), %r11
	movq	%rax, %rdi
	movq	-176(%rbp), %r12                ## 8-byte Reload
	movq	%r12, %rcx
	movl	$1, %r9d
	pushq	%rbx
	pushq	%r10
	pushq	%r11
	callq	_compute_new_xmax_infomask
	addq	$32, %rsp
	xorl	%eax, %eax
	callq	_START_CRIT_SECTION
	movl	-76(%rbp), %r15d                ## 4-byte Reload
	movl	%r15d, %edi
	movq	%r12, %rsi
	callq	_PageSetPrunable
	movl	%r15d, %edi
	callq	_PageIsAllVisible
	movq	%rax, %rbx
	testq	%rax, %rax
	je	LBB0_35
## %bb.34:
	movl	%r15d, %edi
	callq	_PageClearAllVisible
	movq	%r14, %rdi
	callq	_BufferGetBlockNumber
	movq	-88(%rbp), %rdx
	movq	_VISIBILITYMAP_VALID_BITS@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	%r13, %rdi
	movl	%eax, %esi
	callq	_visibilitymap_clear
LBB0_35:
	movq	_HEAP_XMAX_BITS@GOTPCREL(%rip), %rax
	movq	_HEAP_MOVED@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	orl	(%rax), %ecx
	notl	%ecx
	movq	-56(%rbp), %rdi
	andl	(%rdi), %ecx
	movl	%ecx, (%rdi)
	movq	_HEAP_KEYS_UPDATED@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	notl	%eax
	andl	4(%rdi), %eax
	orl	-144(%rbp), %ecx
	movl	%ecx, (%rdi)
	orl	-140(%rbp), %eax
	movl	%eax, 4(%rdi)
	callq	_HeapTupleHeaderClearHotUpdated
	movq	-56(%rbp), %rdi
	movq	-152(%rbp), %rsi
	callq	_HeapTupleHeaderSetXmax
	movq	-56(%rbp), %rdi
	movl	-96(%rbp), %esi
	movl	-136(%rbp), %edx
	callq	_HeapTupleHeaderSetCmax
	movl	-64(%rbp), %eax
	movq	-56(%rbp), %rdi
	movl	%eax, 8(%rdi)
	movl	16(%rbp), %r15d
	testl	%r15d, %r15d
	je	LBB0_37
## %bb.36:
	callq	_HeapTupleHeaderSetMovedPartitions
LBB0_37:
	movq	%r14, %rdi
	callq	_MarkBufferDirty
	movq	%r13, %rdi
	callq	_RelationNeedsWAL
	testq	%rax, %rax
	movq	-104(%rbp), %r12                ## 8-byte Reload
	je	LBB0_60
## %bb.38:
	movq	%r13, %rdi
	callq	_RelationIsAccessibleInLogicalDecoding
	testq	%rax, %rax
	je	LBB0_40
## %bb.39:
	leaq	-64(%rbp), %rsi
	movq	%r13, %rdi
	callq	_log_heap_new_cid
LBB0_40:
	movl	$0, -128(%rbp)
	testq	%rbx, %rbx
	je	LBB0_55
## %bb.41:
	movq	_XLH_DELETE_ALL_VISIBLE_CLEARED@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movl	%ebx, -128(%rbp)
	testl	%r15d, %r15d
	je	LBB0_43
LBB0_42:
	movq	_XLH_DELETE_IS_PARTITION_MOVE@GOTPCREL(%rip), %rax
	orl	(%rax), %ebx
	movl	%ebx, -128(%rbp)
LBB0_43:
	movl	-76(%rbp), %r15d                ## 4-byte Reload
	movq	-56(%rbp), %rax
	movl	(%rax), %edi
	movl	4(%rax), %esi
	callq	_compute_infobits
	movl	%eax, -108(%rbp)
	leaq	-64(%rbp), %rdi
	callq	_ItemPointerGetOffsetNumber
	movl	%eax, -112(%rbp)
	movq	-152(%rbp), %rax
	movq	%rax, -120(%rbp)
	testq	%r12, %r12
	je	LBB0_56
## %bb.44:
	movq	(%r13), %rax
	movq	(%rax), %rax
	movq	_REPLICA_IDENTITY_FULL@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_57
## %bb.45:
	movq	_XLH_DELETE_CONTAINS_OLD_TUPLE@GOTPCREL(%rip), %rax
	jmp	LBB0_58
LBB0_46:
	movq	_TM_SelfModified@GOTPCREL(%rip), %r12
	cmpq	(%r12), %r15
	sete	%al
	movq	_TM_Updated@GOTPCREL(%rip), %rbx
	cmpq	(%rbx), %r15
	sete	%cl
	orb	%al, %cl
	movq	_TM_Deleted@GOTPCREL(%rip), %rax
	cmpq	(%rax), %r15
	sete	%al
	movq	_TM_BeingModified@GOTPCREL(%rip), %rdx
	cmpq	(%rdx), %r15
	sete	%dl
	orb	%al, %dl
	orb	%cl, %dl
	movzbl	%dl, %edi
	callq	_Assert
	movq	-56(%rbp), %rax
	movq	_HEAP_XMAX_INVALID@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	xorl	%edi, %edi
	andl	(%rax), %ecx
	sete	%dil
	callq	_Assert
	movl	$1, %edi
	cmpq	(%rbx), %r15
	jne	LBB0_48
## %bb.47:
	movq	-56(%rbp), %rsi
	addq	$8, %rsi
	leaq	-64(%rbp), %rdi
	callq	_ItemPointerEquals
	xorl	%edi, %edi
	testl	%eax, %eax
	sete	%dil
LBB0_48:
	callq	_Assert
	movq	-56(%rbp), %rdi
	movl	8(%rdi), %eax
	movq	-184(%rbp), %rbx                ## 8-byte Reload
	movl	%eax, 8(%rbx)
	callq	_HeapTupleHeaderGetUpdateXid
	movl	%eax, 4(%rbx)
	cmpq	(%r12), %r15
	jne	LBB0_50
## %bb.49:
	movq	-56(%rbp), %rdi
	callq	_HeapTupleHeaderGetCmax
	jmp	LBB0_51
LBB0_50:
	movq	_InvalidCommandId@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
LBB0_51:
	movl	%eax, (%rbx)
	movq	%r14, %rdi
	callq	_UnlockReleaseBuffer
	cmpl	$0, -80(%rbp)
	je	LBB0_53
## %bb.52:
	movq	_LockTupleExclusive@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	leaq	-64(%rbp), %rsi
	movq	%r13, %rdi
	callq	_UnlockTupleTuplock
LBB0_53:
	movq	-88(%rbp), %rdi
	movq	_InvalidBuffer@GOTPCREL(%rip), %rax
	cmpq	(%rax), %rdi
	je	LBB0_73
## %bb.54:
	callq	_ReleaseBuffer
	jmp	LBB0_73
LBB0_55:
	xorl	%ebx, %ebx
	testl	%r15d, %r15d
	jne	LBB0_42
	jmp	LBB0_43
LBB0_56:
	xorl	%eax, %eax
	callq	_XLogBeginInsert
	movq	_SizeOfHeapDelete@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	leaq	-128(%rbp), %rdi
	callq	_XLogRegisterData
	movq	_REGBUF_STANDARD@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	xorl	%edi, %edi
	movq	%r14, %rsi
	callq	_XLogRegisterBuffer
	jmp	LBB0_59
LBB0_57:
	movq	_XLH_DELETE_CONTAINS_OLD_KEY@GOTPCREL(%rip), %rax
LBB0_58:
	orl	(%rax), %ebx
	movl	%ebx, -128(%rbp)
	xorl	%eax, %eax
	callq	_XLogBeginInsert
	movq	_SizeOfHeapDelete@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	leaq	-128(%rbp), %rdi
	callq	_XLogRegisterData
	movq	_REGBUF_STANDARD@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	xorl	%edi, %edi
	movq	%r14, %rsi
	callq	_XLogRegisterBuffer
	movq	8(%r12), %rax
	movl	8(%rax), %ecx
	movl	%ecx, -160(%rbp)
	movl	4(%rax), %ecx
	movl	%ecx, -164(%rbp)
	movl	(%rax), %eax
	movl	%eax, -168(%rbp)
	movq	_SizeOfHeapHeader@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	leaq	-168(%rbp), %rdi
	callq	_XLogRegisterData
	movq	_SizeofHeapTupleHeader@GOTPCREL(%rip), %rax
	movslq	(%rax), %rdi
	movl	(%r12), %esi
	subl	%edi, %esi
	addq	8(%r12), %rdi
	callq	_XLogRegisterData
LBB0_59:
	movq	_XLOG_INCLUDE_ORIGIN@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_XLogSetRecordFlags
	movq	_RM_HEAP_ID@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_XLOG_HEAP_DELETE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_XLogInsert
	movl	%r15d, %edi
	movl	%eax, %esi
	callq	_PageSetLSN
LBB0_60:
	xorl	%eax, %eax
	callq	_END_CRIT_SECTION
	movq	_BUFFER_LOCK_UNLOCK@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_LockBuffer
	movq	-88(%rbp), %rdi
	movq	_InvalidBuffer@GOTPCREL(%rip), %rax
	cmpq	(%rax), %rdi
	je	LBB0_62
## %bb.61:
	callq	_ReleaseBuffer
LBB0_62:
	movq	(%r13), %rax
	movq	8(%rax), %rbx
	movq	_RELKIND_RELATION@GOTPCREL(%rip), %rax
	movq	(%rax), %r13
	movq	_RELKIND_MATVIEW@GOTPCREL(%rip), %rax
	movq	(%rax), %r15
	leaq	-64(%rbp), %rdi
	callq	_HeapTupleHasExternal
	cmpq	%r13, %rbx
	je	LBB0_65
## %bb.63:
	cmpq	%r15, %rbx
	je	LBB0_65
## %bb.64:
	xorl	%edi, %edi
	testq	%rax, %rax
	sete	%dil
	callq	_Assert
	movq	-72(%rbp), %rbx                 ## 8-byte Reload
	jmp	LBB0_67
LBB0_65:
	testq	%rax, %rax
	movq	-72(%rbp), %rbx                 ## 8-byte Reload
	je	LBB0_67
## %bb.66:
	leaq	-64(%rbp), %rsi
	movq	%rbx, %rdi
	xorl	%edx, %edx
	callq	_heap_toast_delete
LBB0_67:
	leaq	-64(%rbp), %rsi
	movq	%rbx, %rdi
	xorl	%edx, %edx
	callq	_CacheInvalidateHeapTuple
	movq	%r14, %rdi
	callq	_ReleaseBuffer
	cmpl	$0, -80(%rbp)
	je	LBB0_69
## %bb.68:
	movq	_LockTupleExclusive@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	leaq	-64(%rbp), %rsi
	movq	%rbx, %rdi
	callq	_UnlockTupleTuplock
LBB0_69:
	movq	%rbx, %rdi
	callq	_pgstat_count_heap_delete
	testq	%r12, %r12
	je	LBB0_72
## %bb.70:
	cmpl	$0, -92(%rbp)
	je	LBB0_72
## %bb.71:
	movq	%r12, %rdi
	callq	_heap_freetuple
LBB0_72:
	movq	_TM_Ok@GOTPCREL(%rip), %rax
	movq	(%rax), %r15
LBB0_73:
	movq	%r15, %rax
	addq	$152, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_InvalidBuffer,8,3              ## @InvalidBuffer
	.comm	_ERROR,4,2                      ## @ERROR
	.comm	_ERRCODE_INVALID_TRANSACTION_STATE,4,2 ## @ERRCODE_INVALID_TRANSACTION_STATE
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"cannot delete tuples during a parallel operation"

	.comm	_BUFFER_LOCK_EXCLUSIVE,4,2      ## @BUFFER_LOCK_EXCLUSIVE
	.comm	_BUFFER_LOCK_UNLOCK,4,2         ## @BUFFER_LOCK_UNLOCK
	.comm	_TM_Invisible,8,3               ## @TM_Invisible
	.comm	_ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE,4,2 ## @ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE
L_.str.1:                               ## @.str.1
	.asciz	"attempted to delete invisible tuple"

	.comm	_TM_BeingModified,8,3           ## @TM_BeingModified
	.comm	_HEAP_XMAX_IS_MULTI,4,2         ## @HEAP_XMAX_IS_MULTI
	.comm	_LockTupleExclusive,4,2         ## @LockTupleExclusive
	.comm	_LockWaitBlock,4,2              ## @LockWaitBlock
	.comm	_MultiXactStatusUpdate,4,2      ## @MultiXactStatusUpdate
	.comm	_XLTW_Delete,4,2                ## @XLTW_Delete
	.comm	_HEAP_XMAX_INVALID,4,2          ## @HEAP_XMAX_INVALID
	.comm	_TM_Ok,8,3                      ## @TM_Ok
	.comm	_TM_Updated,8,3                 ## @TM_Updated
	.comm	_TM_Deleted,8,3                 ## @TM_Deleted
	.comm	_InvalidSnapshot,4,2            ## @InvalidSnapshot
	.comm	_TM_SelfModified,8,3            ## @TM_SelfModified
	.comm	_InvalidCommandId,4,2           ## @InvalidCommandId
	.comm	_VISIBILITYMAP_VALID_BITS,4,2   ## @VISIBILITYMAP_VALID_BITS
	.comm	_HEAP_XMAX_BITS,4,2             ## @HEAP_XMAX_BITS
	.comm	_HEAP_MOVED,4,2                 ## @HEAP_MOVED
	.comm	_HEAP_KEYS_UPDATED,4,2          ## @HEAP_KEYS_UPDATED
	.comm	_XLH_DELETE_ALL_VISIBLE_CLEARED,4,2 ## @XLH_DELETE_ALL_VISIBLE_CLEARED
	.comm	_XLH_DELETE_IS_PARTITION_MOVE,4,2 ## @XLH_DELETE_IS_PARTITION_MOVE
	.comm	_REPLICA_IDENTITY_FULL,8,3      ## @REPLICA_IDENTITY_FULL
	.comm	_XLH_DELETE_CONTAINS_OLD_TUPLE,4,2 ## @XLH_DELETE_CONTAINS_OLD_TUPLE
	.comm	_XLH_DELETE_CONTAINS_OLD_KEY,4,2 ## @XLH_DELETE_CONTAINS_OLD_KEY
	.comm	_SizeOfHeapDelete,4,2           ## @SizeOfHeapDelete
	.comm	_REGBUF_STANDARD,4,2            ## @REGBUF_STANDARD
	.comm	_SizeOfHeapHeader,4,2           ## @SizeOfHeapHeader
	.comm	_SizeofHeapTupleHeader,4,2      ## @SizeofHeapTupleHeader
	.comm	_XLOG_INCLUDE_ORIGIN,4,2        ## @XLOG_INCLUDE_ORIGIN
	.comm	_RM_HEAP_ID,4,2                 ## @RM_HEAP_ID
	.comm	_XLOG_HEAP_DELETE,4,2           ## @XLOG_HEAP_DELETE
	.comm	_RELKIND_RELATION,8,3           ## @RELKIND_RELATION
	.comm	_RELKIND_MATVIEW,8,3            ## @RELKIND_MATVIEW
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_heap_delete                    ; -- Begin function heap_delete
	.p2align	2
_heap_delete:                           ; @heap_delete
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #256
	.cfi_def_cfa_offset 256
	stp	x28, x27, [sp, #160]            ; 16-byte Folded Spill
	stp	x26, x25, [sp, #176]            ; 16-byte Folded Spill
	stp	x24, x23, [sp, #192]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #208]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #224]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #240]            ; 16-byte Folded Spill
	add	x29, sp, #240
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	str	w6, [sp, #28]                   ; 4-byte Folded Spill
	str	x5, [sp, #16]                   ; 8-byte Folded Spill
	mov	x26, x4
	str	w3, [sp, #36]                   ; 4-byte Folded Spill
	mov	x27, x2
	mov	x28, x1
	mov	x19, x0
	stur	w2, [x29, #-92]
	bl	_GetCurrentTransactionId
	mov	x25, x0
Lloh0:
	adrp	x21, _InvalidBuffer@GOTPAGE
Lloh1:
	ldr	x21, [x21, _InvalidBuffer@GOTPAGEOFF]
	ldr	x8, [x21]
	str	x8, [sp, #112]
	str	wzr, [sp, #92]
	str	wzr, [sp, #84]
	mov	x0, x28
	bl	_ItemPointerIsValid
	bl	_Assert
	bl	_IsInParallelMode
Lloh2:
	adrp	x8, _ERROR@GOTPAGE
Lloh3:
	ldr	x8, [x8, _ERROR@GOTPAGEOFF]
	cbz	x0, LBB0_2
; %bb.1:
	ldr	w20, [x8]
Lloh4:
	adrp	x8, _ERRCODE_INVALID_TRANSACTION_STATE@GOTPAGE
Lloh5:
	ldr	x8, [x8, _ERRCODE_INVALID_TRANSACTION_STATE@GOTPAGEOFF]
Lloh6:
	ldr	w0, [x8]
	bl	_errcode
Lloh7:
	adrp	x0, l_.str@PAGE
Lloh8:
	add	x0, x0, l_.str@PAGEOFF
	bl	_errmsg
	mov	x1, x0
	mov	x0, x20
	bl	_ereport
LBB0_2:
	mov	x0, x28
	bl	_ItemPointerGetBlockNumber
	mov	x22, x0
	mov	x0, x19
	mov	x1, x22
	bl	_ReadBuffer
	mov	x20, x0
	bl	_BufferGetPage
	mov	x24, x0
	bl	_PageIsAllVisible
	cbz	x0, LBB0_4
; %bb.3:
	add	x2, sp, #112
	mov	x0, x19
	mov	x1, x22
	bl	_visibilitymap_pin
LBB0_4:
Lloh9:
	adrp	x8, _BUFFER_LOCK_EXCLUSIVE@GOTPAGE
Lloh10:
	ldr	x8, [x8, _BUFFER_LOCK_EXCLUSIVE@GOTPAGEOFF]
Lloh11:
	ldr	w1, [x8]
	mov	x0, x20
	bl	_LockBuffer
	ldr	x8, [sp, #112]
	ldr	x9, [x21]
	cmp	x8, x9
	b.ne	LBB0_7
; %bb.5:
	mov	x0, x24
	bl	_PageIsAllVisible
	cbz	x0, LBB0_7
; %bb.6:
Lloh12:
	adrp	x8, _BUFFER_LOCK_UNLOCK@GOTPAGE
Lloh13:
	ldr	x8, [x8, _BUFFER_LOCK_UNLOCK@GOTPAGEOFF]
Lloh14:
	ldr	w1, [x8]
	mov	x0, x20
	bl	_LockBuffer
	add	x2, sp, #112
	mov	x0, x19
	mov	x1, x22
	bl	_visibilitymap_pin
Lloh15:
	adrp	x8, _BUFFER_LOCK_EXCLUSIVE@GOTPAGE
Lloh16:
	ldr	x8, [x8, _BUFFER_LOCK_EXCLUSIVE@GOTPAGEOFF]
Lloh17:
	ldr	w1, [x8]
	mov	x0, x20
	bl	_LockBuffer
LBB0_7:
	mov	x0, x28
	bl	_ItemPointerGetOffsetNumber
	mov	x1, x0
	mov	x0, x24
	bl	_PageGetItemId
	mov	x22, x0
	bl	_ItemIdIsNormal
	bl	_Assert
	mov	x0, x19
	bl	_RelationGetRelid
	str	w0, [sp, #140]
	mov	x0, x24
	mov	x1, x22
	bl	_PageGetItem
	str	x0, [sp, #128]
	mov	x0, x22
	bl	_ItemIdGetLength
	ldr	w8, [x28]
	str	w0, [sp, #136]
	str	w8, [sp, #120]
	add	x0, sp, #120
	mov	x1, x27
	mov	x2, x20
	bl	_HeapTupleSatisfiesUpdate
	mov	x28, x0
Lloh18:
	adrp	x23, _TM_Invisible@GOTPAGE
Lloh19:
	ldr	x23, [x23, _TM_Invisible@GOTPAGEOFF]
	ldr	x8, [x23]
	cmp	x0, x8
	str	w24, [sp, #32]                  ; 4-byte Folded Spill
	str	x25, [sp, #8]                   ; 8-byte Folded Spill
	b.ne	LBB0_9
LBB0_8:
	mov	x0, x20
	bl	_UnlockReleaseBuffer
Lloh20:
	adrp	x8, _ERROR@GOTPAGE
Lloh21:
	ldr	x8, [x8, _ERROR@GOTPAGEOFF]
Lloh22:
	ldr	w22, [x8]
Lloh23:
	adrp	x8, _ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE@GOTPAGE
Lloh24:
	ldr	x8, [x8, _ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE@GOTPAGEOFF]
Lloh25:
	ldr	w0, [x8]
	bl	_errcode
Lloh26:
	adrp	x0, l_.str.1@PAGE
Lloh27:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_errmsg
	mov	x1, x0
	mov	x0, x22
	bl	_ereport
	b	LBB0_28
LBB0_9:
Lloh28:
	adrp	x25, _TM_BeingModified@GOTPAGE
Lloh29:
	ldr	x25, [x25, _TM_BeingModified@GOTPAGEOFF]
Lloh30:
	adrp	x21, _HEAP_XMAX_IS_MULTI@GOTPAGE
Lloh31:
	ldr	x21, [x21, _HEAP_XMAX_IS_MULTI@GOTPAGEOFF]
Lloh32:
	adrp	x24, _LockTupleExclusive@GOTPAGE
Lloh33:
	ldr	x24, [x24, _LockTupleExclusive@GOTPAGEOFF]
	b	LBB0_11
LBB0_10:                                ;   in Loop: Header=BB0_11 Depth=1
	add	x0, sp, #120
	mov	x1, x27
	mov	x2, x20
	bl	_HeapTupleSatisfiesUpdate
	mov	x28, x0
	ldr	x8, [x23]
	cmp	x0, x8
	b.eq	LBB0_8
LBB0_11:                                ; =>This Inner Loop Header: Depth=1
	cbz	w26, LBB0_28
; %bb.12:                               ;   in Loop: Header=BB0_11 Depth=1
	ldr	x8, [x25]
	cmp	x28, x8
	b.ne	LBB0_28
; %bb.13:                               ;   in Loop: Header=BB0_11 Depth=1
	ldr	x0, [sp, #128]
	bl	_HeapTupleHeaderGetRawXmax
	mov	x28, x0
	ldr	x8, [sp, #128]
	ldr	w22, [x8]
	ldr	w8, [x21]
	tst	w8, w22
	b.eq	LBB0_19
; %bb.14:                               ;   in Loop: Header=BB0_11 Depth=1
	str	wzr, [sp, #56]
	ldr	w2, [x24]
	add	x3, sp, #56
	mov	x0, x28
	mov	x1, x22
	bl	_DoesMultiXactIdConflict
	cbz	x0, LBB0_23
; %bb.15:                               ;   in Loop: Header=BB0_11 Depth=1
Lloh34:
	adrp	x8, _BUFFER_LOCK_UNLOCK@GOTPAGE
Lloh35:
	ldr	x8, [x8, _BUFFER_LOCK_UNLOCK@GOTPAGEOFF]
Lloh36:
	ldr	w1, [x8]
	mov	x0, x20
	bl	_LockBuffer
	ldr	w8, [sp, #56]
	cbnz	w8, LBB0_17
; %bb.16:                               ;   in Loop: Header=BB0_11 Depth=1
	ldr	w2, [x24]
Lloh37:
	adrp	x8, _LockWaitBlock@GOTPAGE
Lloh38:
	ldr	x8, [x8, _LockWaitBlock@GOTPAGEOFF]
Lloh39:
	ldr	w3, [x8]
	add	x1, sp, #120
	add	x4, sp, #92
	mov	x0, x19
	bl	_heap_acquire_tuplock
LBB0_17:                                ;   in Loop: Header=BB0_11 Depth=1
Lloh40:
	adrp	x8, _MultiXactStatusUpdate@GOTPAGE
Lloh41:
	ldr	x8, [x8, _MultiXactStatusUpdate@GOTPAGEOFF]
Lloh42:
	ldr	w1, [x8]
Lloh43:
	adrp	x8, _XLTW_Delete@GOTPAGE
Lloh44:
	ldr	x8, [x8, _XLTW_Delete@GOTPAGEOFF]
Lloh45:
	ldr	w5, [x8]
	add	x4, sp, #120
	mov	x0, x28
	mov	x2, x22
	mov	x3, x19
	mov	x6, #0
	bl	_MultiXactIdWait
Lloh46:
	adrp	x8, _BUFFER_LOCK_EXCLUSIVE@GOTPAGE
Lloh47:
	ldr	x8, [x8, _BUFFER_LOCK_EXCLUSIVE@GOTPAGEOFF]
Lloh48:
	ldr	w1, [x8]
	mov	x0, x20
	bl	_LockBuffer
	ldr	x8, [sp, #128]
	ldr	w0, [x8]
	mov	x1, x22
	bl	_xmax_infomask_changed
	cbnz	x0, LBB0_10
; %bb.18:                               ;   in Loop: Header=BB0_11 Depth=1
	ldr	x0, [sp, #128]
	bl	_HeapTupleHeaderGetRawXmax
	mov	x1, x28
	bl	_TransactionIdEquals
	cbz	w0, LBB0_10
	b	LBB0_23
LBB0_19:                                ;   in Loop: Header=BB0_11 Depth=1
	mov	x0, x28
	bl	_TransactionIdIsCurrentTransactionId
	cbnz	w0, LBB0_23
; %bb.20:                               ;   in Loop: Header=BB0_11 Depth=1
Lloh49:
	adrp	x8, _BUFFER_LOCK_UNLOCK@GOTPAGE
Lloh50:
	ldr	x8, [x8, _BUFFER_LOCK_UNLOCK@GOTPAGEOFF]
Lloh51:
	ldr	w1, [x8]
	mov	x0, x20
	bl	_LockBuffer
	ldr	w2, [x24]
Lloh52:
	adrp	x8, _LockWaitBlock@GOTPAGE
Lloh53:
	ldr	x8, [x8, _LockWaitBlock@GOTPAGEOFF]
Lloh54:
	ldr	w3, [x8]
	add	x1, sp, #120
	add	x4, sp, #92
	mov	x0, x19
	bl	_heap_acquire_tuplock
Lloh55:
	adrp	x8, _XLTW_Delete@GOTPAGE
Lloh56:
	ldr	x8, [x8, _XLTW_Delete@GOTPAGEOFF]
Lloh57:
	ldr	w3, [x8]
	add	x2, sp, #120
	mov	x0, x28
	mov	x1, x19
	bl	_XactLockTableWait
Lloh58:
	adrp	x8, _BUFFER_LOCK_EXCLUSIVE@GOTPAGE
Lloh59:
	ldr	x8, [x8, _BUFFER_LOCK_EXCLUSIVE@GOTPAGEOFF]
Lloh60:
	ldr	w1, [x8]
	mov	x0, x20
	bl	_LockBuffer
	ldr	x8, [sp, #128]
	ldr	w0, [x8]
	mov	x1, x22
	bl	_xmax_infomask_changed
	cbnz	x0, LBB0_10
; %bb.21:                               ;   in Loop: Header=BB0_11 Depth=1
	ldr	x0, [sp, #128]
	bl	_HeapTupleHeaderGetRawXmax
	mov	x1, x28
	bl	_TransactionIdEquals
	cbz	w0, LBB0_10
; %bb.22:
	ldr	x0, [sp, #128]
	mov	x1, x20
	mov	x2, x28
	bl	_UpdateXmaxHintBits
LBB0_23:
	ldr	x8, [sp, #128]
	ldr	w0, [x8]
Lloh61:
	adrp	x8, _HEAP_XMAX_INVALID@GOTPAGE
Lloh62:
	ldr	x8, [x8, _HEAP_XMAX_INVALID@GOTPAGEOFF]
Lloh63:
	ldr	w8, [x8]
	tst	w8, w0
	b.ne	LBB0_26
; %bb.24:
	bl	_HEAP_XMAX_IS_LOCKED_ONLY
	cbnz	x0, LBB0_26
; %bb.25:
	ldr	x0, [sp, #128]
	bl	_HeapTupleHeaderIsOnlyLocked
	cbz	x0, LBB0_70
LBB0_26:
Lloh64:
	adrp	x21, _TM_Ok@GOTPAGE
Lloh65:
	ldr	x21, [x21, _TM_Ok@GOTPAGEOFF]
LBB0_27:
	ldr	x28, [x21]
LBB0_28:
Lloh66:
	adrp	x8, _InvalidSnapshot@GOTPAGE
Lloh67:
	ldr	x8, [x8, _InvalidSnapshot@GOTPAGEOFF]
Lloh68:
	ldr	w9, [x8]
Lloh69:
	adrp	x27, _TM_Ok@GOTPAGE
Lloh70:
	ldr	x27, [x27, _TM_Ok@GOTPAGEOFF]
	ldr	x8, [x27]
	ldr	w1, [sp, #36]                   ; 4-byte Folded Reload
	cmp	w9, w1
	ccmp	x28, x8, #0, ne
	b.ne	LBB0_30
; %bb.29:
	add	x0, sp, #120
	mov	x2, x20
	bl	_HeapTupleSatisfiesVisibility
Lloh71:
	adrp	x8, _TM_Updated@GOTPAGE
Lloh72:
	ldr	x8, [x8, _TM_Updated@GOTPAGEOFF]
Lloh73:
	ldr	x8, [x8]
	cmp	w0, #0
	csel	x28, x8, x28, eq
	ldr	x8, [x27]
LBB0_30:
Lloh74:
	adrp	x24, _InvalidBuffer@GOTPAGE
Lloh75:
	ldr	x24, [x24, _InvalidBuffer@GOTPAGEOFF]
	cmp	x28, x8
	b.ne	LBB0_43
; %bb.31:
	add	x1, sp, #120
	mov	x0, x19
	mov	x2, x20
	bl	_CheckForSerializableConflictIn
	ldr	x0, [sp, #128]
	sub	x1, x29, #92
	add	x2, sp, #88
	bl	_HeapTupleHeaderAdjustCmax
	add	x1, sp, #120
	add	x3, sp, #84
	mov	x0, x19
	mov	w2, #1
	bl	_ExtractReplicaIdentity
	mov	x23, x0
	bl	_MultiXactIdSetOldestMember
	ldr	x0, [sp, #128]
	bl	_HeapTupleHeaderGetRawXmax
	ldr	x8, [sp, #128]
	ldp	w1, w2, [x8]
Lloh76:
	adrp	x25, _LockTupleExclusive@GOTPAGE
Lloh77:
	ldr	x25, [x25, _LockTupleExclusive@GOTPAGEOFF]
	ldr	w4, [x25]
	add	x8, sp, #96
	str	x8, [sp]
	add	x6, sp, #104
	add	x7, sp, #100
	ldr	x21, [sp, #8]                   ; 8-byte Folded Reload
	mov	x3, x21
	mov	w5, #1
	bl	_compute_new_xmax_infomask
	bl	_START_CRIT_SECTION
	ldr	w26, [sp, #32]                  ; 4-byte Folded Reload
	mov	x0, x26
	mov	x1, x21
	bl	_PageSetPrunable
	mov	x0, x26
	bl	_PageIsAllVisible
	mov	x22, x0
	cbz	x0, LBB0_33
; %bb.32:
	mov	x0, x26
	bl	_PageClearAllVisible
	mov	x0, x20
	bl	_BufferGetBlockNumber
	mov	x1, x0
	ldr	x2, [sp, #112]
Lloh78:
	adrp	x8, _VISIBILITYMAP_VALID_BITS@GOTPAGE
Lloh79:
	ldr	x8, [x8, _VISIBILITYMAP_VALID_BITS@GOTPAGEOFF]
Lloh80:
	ldr	w3, [x8]
	mov	x0, x19
	bl	_visibilitymap_clear
LBB0_33:
Lloh81:
	adrp	x8, _HEAP_XMAX_BITS@GOTPAGE
Lloh82:
	ldr	x8, [x8, _HEAP_XMAX_BITS@GOTPAGEOFF]
Lloh83:
	adrp	x9, _HEAP_MOVED@GOTPAGE
Lloh84:
	ldr	x9, [x9, _HEAP_MOVED@GOTPAGEOFF]
Lloh85:
	ldr	w8, [x8]
Lloh86:
	ldr	w9, [x9]
	orr	w8, w9, w8
	ldr	x0, [sp, #128]
	ldp	w9, w10, [x0]
	bic	w8, w9, w8
	str	w8, [x0]
Lloh87:
	adrp	x9, _HEAP_KEYS_UPDATED@GOTPAGE
Lloh88:
	ldr	x9, [x9, _HEAP_KEYS_UPDATED@GOTPAGEOFF]
Lloh89:
	ldr	w9, [x9]
	bic	w9, w10, w9
	ldr	w10, [sp, #100]
	orr	w8, w10, w8
	str	w8, [x0]
	ldr	w8, [sp, #96]
	orr	w8, w8, w9
	str	w8, [x0, #4]
	bl	_HeapTupleHeaderClearHotUpdated
	ldr	x0, [sp, #128]
	ldr	x1, [sp, #104]
	bl	_HeapTupleHeaderSetXmax
	ldr	x0, [sp, #128]
	ldur	w1, [x29, #-92]
	ldr	w2, [sp, #88]
	bl	_HeapTupleHeaderSetCmax
	ldr	w8, [sp, #120]
	ldr	x0, [sp, #128]
	str	w8, [x0, #8]
	ldr	w28, [sp, #28]                  ; 4-byte Folded Reload
	cbz	w28, LBB0_35
; %bb.34:
	bl	_HeapTupleHeaderSetMovedPartitions
LBB0_35:
	mov	x0, x20
	bl	_MarkBufferDirty
	mov	x0, x19
	bl	_RelationNeedsWAL
	cbz	x0, LBB0_56
; %bb.36:
	mov	x0, x19
	bl	_RelationIsAccessibleInLogicalDecoding
	cbz	x0, LBB0_38
; %bb.37:
	add	x1, sp, #120
	mov	x0, x19
	bl	_log_heap_new_cid
LBB0_38:
	str	wzr, [sp, #56]
	cbz	x22, LBB0_53
; %bb.39:
Lloh90:
	adrp	x8, _XLH_DELETE_ALL_VISIBLE_CLEARED@GOTPAGE
Lloh91:
	ldr	x8, [x8, _XLH_DELETE_ALL_VISIBLE_CLEARED@GOTPAGEOFF]
Lloh92:
	ldr	w21, [x8]
	str	w21, [sp, #56]
	cbz	w28, LBB0_41
LBB0_40:
Lloh93:
	adrp	x8, _XLH_DELETE_IS_PARTITION_MOVE@GOTPAGE
Lloh94:
	ldr	x8, [x8, _XLH_DELETE_IS_PARTITION_MOVE@GOTPAGEOFF]
Lloh95:
	ldr	w8, [x8]
	orr	w21, w21, w8
	str	w21, [sp, #56]
LBB0_41:
	ldr	x8, [sp, #128]
	ldp	w0, w1, [x8]
	bl	_compute_infobits
	str	w0, [sp, #76]
	add	x0, sp, #120
	bl	_ItemPointerGetOffsetNumber
	str	w0, [sp, #72]
	ldr	x8, [sp, #104]
	str	x8, [sp, #64]
	cbz	x23, LBB0_54
; %bb.42:
	ldr	x8, [x19]
	ldr	x8, [x8]
Lloh96:
	adrp	x9, _REPLICA_IDENTITY_FULL@GOTPAGE
Lloh97:
	ldr	x9, [x9, _REPLICA_IDENTITY_FULL@GOTPAGEOFF]
Lloh98:
	adrp	x10, _XLH_DELETE_CONTAINS_OLD_TUPLE@GOTPAGE
Lloh99:
	ldr	x10, [x10, _XLH_DELETE_CONTAINS_OLD_TUPLE@GOTPAGEOFF]
Lloh100:
	adrp	x11, _XLH_DELETE_CONTAINS_OLD_KEY@GOTPAGE
Lloh101:
	ldr	x11, [x11, _XLH_DELETE_CONTAINS_OLD_KEY@GOTPAGEOFF]
Lloh102:
	ldr	x9, [x9]
	cmp	x8, x9
	csel	x8, x10, x11, eq
	ldr	w8, [x8]
	orr	w8, w21, w8
	str	w8, [sp, #56]
	bl	_XLogBeginInsert
Lloh103:
	adrp	x8, _SizeOfHeapDelete@GOTPAGE
Lloh104:
	ldr	x8, [x8, _SizeOfHeapDelete@GOTPAGEOFF]
Lloh105:
	ldr	w1, [x8]
	add	x0, sp, #56
	bl	_XLogRegisterData
Lloh106:
	adrp	x8, _REGBUF_STANDARD@GOTPAGE
Lloh107:
	ldr	x8, [x8, _REGBUF_STANDARD@GOTPAGEOFF]
Lloh108:
	ldr	w2, [x8]
	mov	w0, #0
	mov	x1, x20
	bl	_XLogRegisterBuffer
	ldr	x8, [x23, #8]
	ldr	w9, [x8, #8]
	str	w9, [sp, #48]
	ldr	d0, [x8]
	str	d0, [sp, #40]
Lloh109:
	adrp	x8, _SizeOfHeapHeader@GOTPAGE
Lloh110:
	ldr	x8, [x8, _SizeOfHeapHeader@GOTPAGEOFF]
Lloh111:
	ldr	w1, [x8]
	add	x0, sp, #40
	bl	_XLogRegisterData
	ldr	x8, [x23, #8]
Lloh112:
	adrp	x9, _SizeofHeapTupleHeader@GOTPAGE
Lloh113:
	ldr	x9, [x9, _SizeofHeapTupleHeader@GOTPAGEOFF]
Lloh114:
	ldrsw	x9, [x9]
	add	x0, x8, x9
	ldr	w8, [x23]
	sub	w1, w8, w9
	bl	_XLogRegisterData
	b	LBB0_55
LBB0_43:
Lloh115:
	adrp	x21, _TM_SelfModified@GOTPAGE
Lloh116:
	ldr	x21, [x21, _TM_SelfModified@GOTPAGEOFF]
	ldr	x8, [x21]
Lloh117:
	adrp	x22, _TM_Updated@GOTPAGE
Lloh118:
	ldr	x22, [x22, _TM_Updated@GOTPAGEOFF]
	cmp	x28, x8
	ldr	x8, [x22]
	ccmp	x28, x8, #4, ne
Lloh119:
	adrp	x8, _TM_Deleted@GOTPAGE
Lloh120:
	ldr	x8, [x8, _TM_Deleted@GOTPAGEOFF]
Lloh121:
	ldr	x8, [x8]
	ccmp	x28, x8, #4, ne
Lloh122:
	adrp	x8, _TM_BeingModified@GOTPAGE
Lloh123:
	ldr	x8, [x8, _TM_BeingModified@GOTPAGEOFF]
Lloh124:
	ldr	x8, [x8]
	ccmp	x28, x8, #4, ne
	cset	w0, eq
	bl	_Assert
	ldr	x8, [sp, #128]
	ldr	w8, [x8]
Lloh125:
	adrp	x9, _HEAP_XMAX_INVALID@GOTPAGE
Lloh126:
	ldr	x9, [x9, _HEAP_XMAX_INVALID@GOTPAGEOFF]
Lloh127:
	ldr	w9, [x9]
	tst	w9, w8
	cset	w0, eq
	bl	_Assert
	ldr	x8, [x22]
	cmp	x28, x8
	b.ne	LBB0_45
; %bb.44:
	ldr	x8, [sp, #128]
	add	x1, x8, #8
	add	x0, sp, #120
	bl	_ItemPointerEquals
	cmp	w0, #0
	cset	w0, eq
	b	LBB0_46
LBB0_45:
	mov	w0, #1
LBB0_46:
	ldr	x22, [sp, #16]                  ; 8-byte Folded Reload
	bl	_Assert
	ldr	x0, [sp, #128]
	ldr	w8, [x0, #8]
	str	w8, [x22, #8]
	bl	_HeapTupleHeaderGetUpdateXid
	str	w0, [x22, #4]
	ldr	x8, [x21]
	cmp	x28, x8
	b.ne	LBB0_48
; %bb.47:
	ldr	x0, [sp, #128]
	bl	_HeapTupleHeaderGetCmax
	b	LBB0_49
LBB0_48:
Lloh128:
	adrp	x8, _InvalidCommandId@GOTPAGE
Lloh129:
	ldr	x8, [x8, _InvalidCommandId@GOTPAGEOFF]
Lloh130:
	ldr	w0, [x8]
LBB0_49:
	str	w0, [x22]
	mov	x0, x20
	bl	_UnlockReleaseBuffer
	ldr	w8, [sp, #92]
	cbz	w8, LBB0_51
; %bb.50:
Lloh131:
	adrp	x8, _LockTupleExclusive@GOTPAGE
Lloh132:
	ldr	x8, [x8, _LockTupleExclusive@GOTPAGEOFF]
Lloh133:
	ldr	w2, [x8]
	add	x1, sp, #120
	mov	x0, x19
	bl	_UnlockTupleTuplock
LBB0_51:
	ldr	x0, [sp, #112]
	ldr	x8, [x24]
	cmp	x0, x8
	b.eq	LBB0_69
; %bb.52:
	bl	_ReleaseBuffer
	b	LBB0_69
LBB0_53:
	mov	w21, #0
	cbnz	w28, LBB0_40
	b	LBB0_41
LBB0_54:
	bl	_XLogBeginInsert
Lloh134:
	adrp	x8, _SizeOfHeapDelete@GOTPAGE
Lloh135:
	ldr	x8, [x8, _SizeOfHeapDelete@GOTPAGEOFF]
Lloh136:
	ldr	w1, [x8]
	add	x0, sp, #56
	bl	_XLogRegisterData
Lloh137:
	adrp	x8, _REGBUF_STANDARD@GOTPAGE
Lloh138:
	ldr	x8, [x8, _REGBUF_STANDARD@GOTPAGEOFF]
Lloh139:
	ldr	w2, [x8]
	mov	w0, #0
	mov	x1, x20
	bl	_XLogRegisterBuffer
LBB0_55:
Lloh140:
	adrp	x8, _XLOG_INCLUDE_ORIGIN@GOTPAGE
Lloh141:
	ldr	x8, [x8, _XLOG_INCLUDE_ORIGIN@GOTPAGEOFF]
Lloh142:
	ldr	w0, [x8]
	bl	_XLogSetRecordFlags
Lloh143:
	adrp	x8, _RM_HEAP_ID@GOTPAGE
Lloh144:
	ldr	x8, [x8, _RM_HEAP_ID@GOTPAGEOFF]
Lloh145:
	ldr	w0, [x8]
Lloh146:
	adrp	x8, _XLOG_HEAP_DELETE@GOTPAGE
Lloh147:
	ldr	x8, [x8, _XLOG_HEAP_DELETE@GOTPAGEOFF]
Lloh148:
	ldr	w1, [x8]
	bl	_XLogInsert
	mov	x1, x0
	mov	x0, x26
	bl	_PageSetLSN
LBB0_56:
	bl	_END_CRIT_SECTION
Lloh149:
	adrp	x8, _BUFFER_LOCK_UNLOCK@GOTPAGE
Lloh150:
	ldr	x8, [x8, _BUFFER_LOCK_UNLOCK@GOTPAGEOFF]
Lloh151:
	ldr	w1, [x8]
	mov	x0, x20
	bl	_LockBuffer
	ldr	x0, [sp, #112]
	ldr	x8, [x24]
	cmp	x0, x8
	b.eq	LBB0_58
; %bb.57:
	bl	_ReleaseBuffer
LBB0_58:
	ldr	x8, [x19]
	ldr	x21, [x8, #8]
Lloh152:
	adrp	x8, _RELKIND_RELATION@GOTPAGE
Lloh153:
	ldr	x8, [x8, _RELKIND_RELATION@GOTPAGEOFF]
Lloh154:
	ldr	x24, [x8]
Lloh155:
	adrp	x8, _RELKIND_MATVIEW@GOTPAGE
Lloh156:
	ldr	x8, [x8, _RELKIND_MATVIEW@GOTPAGEOFF]
Lloh157:
	ldr	x22, [x8]
	add	x0, sp, #120
	bl	_HeapTupleHasExternal
	cmp	x21, x24
	b.eq	LBB0_61
; %bb.59:
	cmp	x21, x22
	b.eq	LBB0_61
; %bb.60:
	cmp	x0, #0
	cset	w0, eq
	bl	_Assert
	b	LBB0_63
LBB0_61:
	cbz	x0, LBB0_63
; %bb.62:
	add	x1, sp, #120
	mov	x0, x19
	mov	w2, #0
	bl	_heap_toast_delete
LBB0_63:
	add	x1, sp, #120
	mov	x0, x19
	mov	x2, #0
	bl	_CacheInvalidateHeapTuple
	mov	x0, x20
	bl	_ReleaseBuffer
	ldr	w8, [sp, #92]
	cbz	w8, LBB0_65
; %bb.64:
	ldr	w2, [x25]
	add	x1, sp, #120
	mov	x0, x19
	bl	_UnlockTupleTuplock
LBB0_65:
	mov	x0, x19
	bl	_pgstat_count_heap_delete
	cbz	x23, LBB0_68
; %bb.66:
	ldr	w8, [sp, #84]
	cbz	w8, LBB0_68
; %bb.67:
	mov	x0, x23
	bl	_heap_freetuple
LBB0_68:
	ldr	x28, [x27]
LBB0_69:
	mov	x0, x28
	ldp	x29, x30, [sp, #240]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #224]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #208]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #192]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #176]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #160]            ; 16-byte Folded Reload
	add	sp, sp, #256
	ret
LBB0_70:
	ldr	x8, [sp, #128]
	add	x1, x8, #8
	add	x0, sp, #120
	bl	_ItemPointerEquals
Lloh158:
	adrp	x21, _TM_Updated@GOTPAGE
Lloh159:
	ldr	x21, [x21, _TM_Updated@GOTPAGEOFF]
	cbz	w0, LBB0_27
; %bb.71:
	ldr	x0, [sp, #128]
	bl	_HeapTupleHeaderIndicatesMovedPartitions
Lloh160:
	adrp	x8, _TM_Deleted@GOTPAGE
Lloh161:
	ldr	x8, [x8, _TM_Deleted@GOTPAGEOFF]
	cmp	x0, #0
	csel	x21, x8, x21, eq
	b	LBB0_27
	.loh AdrpLdrGot	Lloh2, Lloh3
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpAdd	Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpAdd	Lloh26, Lloh27
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGot	Lloh32, Lloh33
	.loh AdrpLdrGot	Lloh30, Lloh31
	.loh AdrpLdrGot	Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh34, Lloh35, Lloh36
	.loh AdrpLdrGotLdr	Lloh37, Lloh38, Lloh39
	.loh AdrpLdrGotLdr	Lloh46, Lloh47, Lloh48
	.loh AdrpLdrGotLdr	Lloh43, Lloh44, Lloh45
	.loh AdrpLdrGotLdr	Lloh40, Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh58, Lloh59, Lloh60
	.loh AdrpLdrGotLdr	Lloh55, Lloh56, Lloh57
	.loh AdrpLdrGotLdr	Lloh52, Lloh53, Lloh54
	.loh AdrpLdrGotLdr	Lloh49, Lloh50, Lloh51
	.loh AdrpLdrGotLdr	Lloh61, Lloh62, Lloh63
	.loh AdrpLdrGot	Lloh64, Lloh65
	.loh AdrpLdrGot	Lloh69, Lloh70
	.loh AdrpLdrGotLdr	Lloh66, Lloh67, Lloh68
	.loh AdrpLdrGotLdr	Lloh71, Lloh72, Lloh73
	.loh AdrpLdrGot	Lloh74, Lloh75
	.loh AdrpLdrGot	Lloh76, Lloh77
	.loh AdrpLdrGotLdr	Lloh78, Lloh79, Lloh80
	.loh AdrpLdrGotLdr	Lloh87, Lloh88, Lloh89
	.loh AdrpLdrGotLdr	Lloh83, Lloh84, Lloh86
	.loh AdrpLdrGotLdr	Lloh81, Lloh82, Lloh85
	.loh AdrpLdrGotLdr	Lloh90, Lloh91, Lloh92
	.loh AdrpLdrGotLdr	Lloh93, Lloh94, Lloh95
	.loh AdrpLdrGotLdr	Lloh112, Lloh113, Lloh114
	.loh AdrpLdrGotLdr	Lloh109, Lloh110, Lloh111
	.loh AdrpLdrGotLdr	Lloh106, Lloh107, Lloh108
	.loh AdrpLdrGotLdr	Lloh103, Lloh104, Lloh105
	.loh AdrpLdrGot	Lloh100, Lloh101
	.loh AdrpLdrGot	Lloh98, Lloh99
	.loh AdrpLdrGotLdr	Lloh96, Lloh97, Lloh102
	.loh AdrpLdrGotLdr	Lloh125, Lloh126, Lloh127
	.loh AdrpLdrGotLdr	Lloh122, Lloh123, Lloh124
	.loh AdrpLdrGotLdr	Lloh119, Lloh120, Lloh121
	.loh AdrpLdrGot	Lloh117, Lloh118
	.loh AdrpLdrGot	Lloh115, Lloh116
	.loh AdrpLdrGotLdr	Lloh128, Lloh129, Lloh130
	.loh AdrpLdrGotLdr	Lloh131, Lloh132, Lloh133
	.loh AdrpLdrGotLdr	Lloh137, Lloh138, Lloh139
	.loh AdrpLdrGotLdr	Lloh134, Lloh135, Lloh136
	.loh AdrpLdrGotLdr	Lloh146, Lloh147, Lloh148
	.loh AdrpLdrGotLdr	Lloh143, Lloh144, Lloh145
	.loh AdrpLdrGotLdr	Lloh140, Lloh141, Lloh142
	.loh AdrpLdrGotLdr	Lloh149, Lloh150, Lloh151
	.loh AdrpLdrGotLdr	Lloh155, Lloh156, Lloh157
	.loh AdrpLdrGotLdr	Lloh152, Lloh153, Lloh154
	.loh AdrpLdrGot	Lloh158, Lloh159
	.loh AdrpLdrGot	Lloh160, Lloh161
	.cfi_endproc
                                        ; -- End function
	.comm	_InvalidBuffer,8,3              ; @InvalidBuffer
	.comm	_ERROR,4,2                      ; @ERROR
	.comm	_ERRCODE_INVALID_TRANSACTION_STATE,4,2 ; @ERRCODE_INVALID_TRANSACTION_STATE
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"cannot delete tuples during a parallel operation"

	.comm	_BUFFER_LOCK_EXCLUSIVE,4,2      ; @BUFFER_LOCK_EXCLUSIVE
	.comm	_BUFFER_LOCK_UNLOCK,4,2         ; @BUFFER_LOCK_UNLOCK
	.comm	_TM_Invisible,8,3               ; @TM_Invisible
	.comm	_ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE,4,2 ; @ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE
l_.str.1:                               ; @.str.1
	.asciz	"attempted to delete invisible tuple"

	.comm	_TM_BeingModified,8,3           ; @TM_BeingModified
	.comm	_HEAP_XMAX_IS_MULTI,4,2         ; @HEAP_XMAX_IS_MULTI
	.comm	_LockTupleExclusive,4,2         ; @LockTupleExclusive
	.comm	_LockWaitBlock,4,2              ; @LockWaitBlock
	.comm	_MultiXactStatusUpdate,4,2      ; @MultiXactStatusUpdate
	.comm	_XLTW_Delete,4,2                ; @XLTW_Delete
	.comm	_HEAP_XMAX_INVALID,4,2          ; @HEAP_XMAX_INVALID
	.comm	_TM_Ok,8,3                      ; @TM_Ok
	.comm	_TM_Updated,8,3                 ; @TM_Updated
	.comm	_TM_Deleted,8,3                 ; @TM_Deleted
	.comm	_InvalidSnapshot,4,2            ; @InvalidSnapshot
	.comm	_TM_SelfModified,8,3            ; @TM_SelfModified
	.comm	_InvalidCommandId,4,2           ; @InvalidCommandId
	.comm	_VISIBILITYMAP_VALID_BITS,4,2   ; @VISIBILITYMAP_VALID_BITS
	.comm	_HEAP_XMAX_BITS,4,2             ; @HEAP_XMAX_BITS
	.comm	_HEAP_MOVED,4,2                 ; @HEAP_MOVED
	.comm	_HEAP_KEYS_UPDATED,4,2          ; @HEAP_KEYS_UPDATED
	.comm	_XLH_DELETE_ALL_VISIBLE_CLEARED,4,2 ; @XLH_DELETE_ALL_VISIBLE_CLEARED
	.comm	_XLH_DELETE_IS_PARTITION_MOVE,4,2 ; @XLH_DELETE_IS_PARTITION_MOVE
	.comm	_REPLICA_IDENTITY_FULL,8,3      ; @REPLICA_IDENTITY_FULL
	.comm	_XLH_DELETE_CONTAINS_OLD_TUPLE,4,2 ; @XLH_DELETE_CONTAINS_OLD_TUPLE
	.comm	_XLH_DELETE_CONTAINS_OLD_KEY,4,2 ; @XLH_DELETE_CONTAINS_OLD_KEY
	.comm	_SizeOfHeapDelete,4,2           ; @SizeOfHeapDelete
	.comm	_REGBUF_STANDARD,4,2            ; @REGBUF_STANDARD
	.comm	_SizeOfHeapHeader,4,2           ; @SizeOfHeapHeader
	.comm	_SizeofHeapTupleHeader,4,2      ; @SizeofHeapTupleHeader
	.comm	_XLOG_INCLUDE_ORIGIN,4,2        ; @XLOG_INCLUDE_ORIGIN
	.comm	_RM_HEAP_ID,4,2                 ; @RM_HEAP_ID
	.comm	_XLOG_HEAP_DELETE,4,2           ; @XLOG_HEAP_DELETE
	.comm	_RELKIND_RELATION,8,3           ; @RELKIND_RELATION
	.comm	_RELKIND_MATVIEW,8,3            ; @RELKIND_MATVIEW
.subsections_via_symbols
