	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function get_pv_entry
_get_pv_entry:                          ## @get_pv_entry
	.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
	pushq	%rax
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rsi, %r15
	movq	%rdi, %r14
	movq	_RA_LOCKED@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_pvh_global_lock@GOTPCREL(%rip), %rdi
	callq	_rw_assert
	movq	_MA_OWNED@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	callq	_PMAP_LOCK_ASSERT
	movq	_pv_entry_allocs@GOTPCREL(%rip), %rdi
	movl	$1, %esi
	callq	_atomic_add_long
	movl	%eax, %edi
	callq	_PV_STAT
	movq	_VM_ALLOC_WIRED@GOTPCREL(%rip), %r13
LBB0_1:                                 ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_4 Depth 2
	movq	%r14, %rdi
	callq	_TAILQ_FIRST
	testq	%rax, %rax
	je	LBB0_6
## %bb.2:                               ##   in Loop: Header=BB0_1 Depth=1
	movq	%rax, %r12
	movq	__NPCM@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	testl	%ecx, %ecx
	jle	LBB0_6
## %bb.3:                               ##   in Loop: Header=BB0_1 Depth=1
	movq	(%r12), %rax
	shlq	$6, %rcx
	xorl	%ebx, %ebx
	movq	%rax, %rdx
	.p2align	4, 0x90
LBB0_4:                                 ##   Parent Loop BB0_1 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	movl	(%rdx), %esi
	testl	%esi, %esi
	jne	LBB0_9
## %bb.5:                               ##   in Loop: Header=BB0_4 Depth=2
	addq	$4, %rdx
	addq	$64, %rbx
	cmpq	%rbx, %rcx
	jne	LBB0_4
LBB0_6:                                 ##   in Loop: Header=BB0_1 Depth=1
	movq	_VM_ALLOC_NOOBJ@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_VM_ALLOC_NORMAL@GOTPCREL(%rip), %rax
	orl	(%rax), %edx
	orl	(%r13), %edx
	xorl	%edi, %edi
	xorl	%esi, %esi
	callq	_vm_page_alloc
	testq	%rax, %rax
	jne	LBB0_15
## %bb.7:                               ##   in Loop: Header=BB0_1 Depth=1
	testq	%r15, %r15
	je	LBB0_8
## %bb.14:                              ##   in Loop: Header=BB0_1 Depth=1
	movq	%r14, %rdi
	movq	%r15, %rsi
	callq	_reclaim_pv_chunk
	testq	%rax, %rax
	je	LBB0_1
LBB0_15:
	movq	%rax, %rbx
	movq	_pc_chunk_count@GOTPCREL(%rip), %rdi
	movl	$1, %esi
	callq	_atomic_add_int
	movl	%eax, %edi
	callq	_PV_STAT
	movq	_pc_chunk_allocs@GOTPCREL(%rip), %rdi
	movl	$1, %esi
	callq	_atomic_add_int
	movl	%eax, %edi
	callq	_PV_STAT
	movl	(%rbx), %edi
	callq	_dump_add_page
	movl	(%rbx), %edi
	callq	_PHYS_TO_DMAP
	movq	%rax, %r15
	movq	%r14, 16(%rax)
	movq	_PC_FREE0@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	andl	$-2, %eax
	movq	(%r15), %rcx
	movl	%eax, (%rcx)
	movq	_PC_FREE1@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 4(%rcx)
	movq	_PC_FREE2@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 8(%rcx)
	movq	_pv_chunks_mutex@GOTPCREL(%rip), %rbx
	movq	%rbx, %rdi
	callq	_mtx_lock
	movq	_pc_lru@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_pv_chunks@GOTPCREL(%rip), %rdi
	movq	%r15, %rsi
	callq	_TAILQ_INSERT_TAIL
	movq	%rbx, %rdi
	callq	_mtx_unlock
	movq	8(%r15), %rbx
	movq	_pc_list@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	%r14, %rdi
	movq	%r15, %rsi
	callq	_TAILQ_INSERT_HEAD
	movq	_pv_entry_count@GOTPCREL(%rip), %rdi
	movl	$1, %esi
	callq	_atomic_add_long
	movl	%eax, %edi
	callq	_PV_STAT
	movq	__NPCPV@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	decl	%esi
	movq	_pv_entry_spare@GOTPCREL(%rip), %rdi
	callq	_atomic_add_int
	jmp	LBB0_16
LBB0_9:
	bsfl	%esi, %ecx
	movl	$-2, %esi
	roll	%cl, %esi
	orl	%ecx, %ebx
	shlq	$2, %rbx
	addq	8(%r12), %rbx
	andl	%esi, (%rdx)
	cmpl	$0, (%rax)
	jne	LBB0_13
## %bb.10:
	cmpl	$0, 4(%rax)
	jne	LBB0_13
## %bb.11:
	cmpl	$0, 8(%rax)
	jne	LBB0_13
## %bb.12:
	movq	_pc_list@GOTPCREL(%rip), %r15
	movl	(%r15), %edx
	movq	%r14, %rdi
	movq	%r12, %rsi
	callq	_TAILQ_REMOVE
	movl	(%r15), %edx
	movq	%r14, %rdi
	movq	%r12, %rsi
	callq	_TAILQ_INSERT_TAIL
LBB0_13:
	movq	_pv_entry_count@GOTPCREL(%rip), %rdi
	movl	$1, %esi
	callq	_atomic_add_long
	movl	%eax, %edi
	callq	_PV_STAT
	movq	_pv_entry_spare@GOTPCREL(%rip), %rdi
	movl	$1, %esi
	callq	_atomic_subtract_int
LBB0_16:
	movl	%eax, %edi
LBB0_17:
                                        ## kill: def $edi killed $edi killed $rdi
	callq	_PV_STAT
	movq	%rbx, %rax
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_8:
	movq	_pc_chunk_tryfail@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leal	1(%rdi), %ecx
	movl	%ecx, (%rax)
	xorl	%ebx, %ebx
	jmp	LBB0_17
	.cfi_endproc
                                        ## -- End function
	.comm	_pvh_global_lock,4,2            ## @pvh_global_lock
	.comm	_RA_LOCKED,4,2                  ## @RA_LOCKED
	.comm	_MA_OWNED,4,2                   ## @MA_OWNED
	.comm	_pv_entry_allocs,4,2            ## @pv_entry_allocs
	.comm	__NPCM,4,2                      ## @_NPCM
	.comm	_pc_list,4,2                    ## @pc_list
	.comm	_pv_entry_count,4,2             ## @pv_entry_count
	.comm	_pv_entry_spare,4,2             ## @pv_entry_spare
	.comm	_VM_ALLOC_NORMAL,4,2            ## @VM_ALLOC_NORMAL
	.comm	_VM_ALLOC_NOOBJ,4,2             ## @VM_ALLOC_NOOBJ
	.comm	_VM_ALLOC_WIRED,4,2             ## @VM_ALLOC_WIRED
	.comm	_pc_chunk_tryfail,4,2           ## @pc_chunk_tryfail
	.comm	_pc_chunk_count,4,2             ## @pc_chunk_count
	.comm	_pc_chunk_allocs,4,2            ## @pc_chunk_allocs
	.comm	_PC_FREE0,8,3                   ## @PC_FREE0
	.comm	_PC_FREE1,8,3                   ## @PC_FREE1
	.comm	_PC_FREE2,8,3                   ## @PC_FREE2
	.comm	_pv_chunks_mutex,4,2            ## @pv_chunks_mutex
	.comm	_pv_chunks,4,2                  ## @pv_chunks
	.comm	_pc_lru,4,2                     ## @pc_lru
	.comm	__NPCPV,4,2                     ## @_NPCPV
	.no_dead_strip	_get_pv_entry
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function get_pv_entry
_get_pv_entry:                          ; @get_pv_entry
	.cfi_startproc
; %bb.0:
	stp	x26, x25, [sp, #-80]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 80
	stp	x24, x23, [sp, #16]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #32]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #48]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #64]             ; 16-byte Folded Spill
	add	x29, sp, #64
	.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
	mov	x20, x1
	mov	x19, x0
Lloh0:
	adrp	x8, _RA_LOCKED@GOTPAGE
Lloh1:
	ldr	x8, [x8, _RA_LOCKED@GOTPAGEOFF]
Lloh2:
	ldr	w1, [x8]
Lloh3:
	adrp	x0, _pvh_global_lock@GOTPAGE
Lloh4:
	ldr	x0, [x0, _pvh_global_lock@GOTPAGEOFF]
	bl	_rw_assert
Lloh5:
	adrp	x8, _MA_OWNED@GOTPAGE
Lloh6:
	ldr	x8, [x8, _MA_OWNED@GOTPAGEOFF]
Lloh7:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_PMAP_LOCK_ASSERT
Lloh8:
	adrp	x0, _pv_entry_allocs@GOTPAGE
Lloh9:
	ldr	x0, [x0, _pv_entry_allocs@GOTPAGEOFF]
	mov	w1, #1
	bl	_atomic_add_long
	bl	_PV_STAT
Lloh10:
	adrp	x22, _VM_ALLOC_NORMAL@GOTPAGE
Lloh11:
	ldr	x22, [x22, _VM_ALLOC_NORMAL@GOTPAGEOFF]
Lloh12:
	adrp	x23, _VM_ALLOC_NOOBJ@GOTPAGE
Lloh13:
	ldr	x23, [x23, _VM_ALLOC_NOOBJ@GOTPAGEOFF]
Lloh14:
	adrp	x24, _VM_ALLOC_WIRED@GOTPAGE
Lloh15:
	ldr	x24, [x24, _VM_ALLOC_WIRED@GOTPAGEOFF]
Lloh16:
	adrp	x25, __NPCM@GOTPAGE
Lloh17:
	ldr	x25, [x25, __NPCM@GOTPAGEOFF]
LBB0_1:                                 ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_4 Depth 2
	mov	x0, x19
	bl	_TAILQ_FIRST
	cbz	x0, LBB0_6
; %bb.2:                                ;   in Loop: Header=BB0_1 Depth=1
	ldr	w10, [x25]
	cmp	w10, #1
	b.lt	LBB0_6
; %bb.3:                                ;   in Loop: Header=BB0_1 Depth=1
	mov	x21, x0
	mov	x9, #0
	ldr	x8, [x0]
	lsl	x11, x10, #6
	mov	x10, x8
LBB0_4:                                 ;   Parent Loop BB0_1 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	ldr	w12, [x10]
	cbnz	w12, LBB0_10
; %bb.5:                                ;   in Loop: Header=BB0_4 Depth=2
	add	x10, x10, #4
	add	x9, x9, #64
	cmp	x11, x9
	b.ne	LBB0_4
LBB0_6:                                 ;   in Loop: Header=BB0_1 Depth=1
	ldr	w8, [x22]
	ldr	w9, [x23]
	orr	w8, w9, w8
	ldr	w9, [x24]
	orr	w2, w8, w9
	mov	x0, #0
	mov	w1, #0
	bl	_vm_page_alloc
	cbnz	x0, LBB0_9
; %bb.7:                                ;   in Loop: Header=BB0_1 Depth=1
	cbz	x20, LBB0_16
; %bb.8:                                ;   in Loop: Header=BB0_1 Depth=1
	mov	x0, x19
	mov	x1, x20
	bl	_reclaim_pv_chunk
	cbz	x0, LBB0_1
LBB0_9:
	mov	x21, x0
Lloh18:
	adrp	x0, _pc_chunk_count@GOTPAGE
Lloh19:
	ldr	x0, [x0, _pc_chunk_count@GOTPAGEOFF]
	mov	w1, #1
	bl	_atomic_add_int
	bl	_PV_STAT
Lloh20:
	adrp	x0, _pc_chunk_allocs@GOTPAGE
Lloh21:
	ldr	x0, [x0, _pc_chunk_allocs@GOTPAGEOFF]
	mov	w1, #1
	bl	_atomic_add_int
	bl	_PV_STAT
	ldr	w0, [x21]
	bl	_dump_add_page
	ldr	w0, [x21]
	bl	_PHYS_TO_DMAP
	mov	x21, x0
	str	x19, [x0, #16]
Lloh22:
	adrp	x8, _PC_FREE0@GOTPAGE
Lloh23:
	ldr	x8, [x8, _PC_FREE0@GOTPAGEOFF]
Lloh24:
	ldr	w8, [x8]
	and	w8, w8, #0xfffffffe
	ldr	x9, [x0]
Lloh25:
	adrp	x10, _PC_FREE1@GOTPAGE
Lloh26:
	ldr	x10, [x10, _PC_FREE1@GOTPAGEOFF]
Lloh27:
	ldr	x10, [x10]
	stp	w8, w10, [x9]
Lloh28:
	adrp	x8, _PC_FREE2@GOTPAGE
Lloh29:
	ldr	x8, [x8, _PC_FREE2@GOTPAGEOFF]
Lloh30:
	ldr	x8, [x8]
	str	w8, [x9, #8]
Lloh31:
	adrp	x20, _pv_chunks_mutex@GOTPAGE
Lloh32:
	ldr	x20, [x20, _pv_chunks_mutex@GOTPAGEOFF]
	mov	x0, x20
	bl	_mtx_lock
Lloh33:
	adrp	x8, _pc_lru@GOTPAGE
Lloh34:
	ldr	x8, [x8, _pc_lru@GOTPAGEOFF]
Lloh35:
	ldr	w2, [x8]
Lloh36:
	adrp	x0, _pv_chunks@GOTPAGE
Lloh37:
	ldr	x0, [x0, _pv_chunks@GOTPAGEOFF]
	mov	x1, x21
	bl	_TAILQ_INSERT_TAIL
	mov	x0, x20
	bl	_mtx_unlock
	ldr	x20, [x21, #8]
Lloh38:
	adrp	x8, _pc_list@GOTPAGE
Lloh39:
	ldr	x8, [x8, _pc_list@GOTPAGEOFF]
Lloh40:
	ldr	w2, [x8]
	mov	x0, x19
	mov	x1, x21
	bl	_TAILQ_INSERT_HEAD
Lloh41:
	adrp	x0, _pv_entry_count@GOTPAGE
Lloh42:
	ldr	x0, [x0, _pv_entry_count@GOTPAGEOFF]
	mov	w1, #1
	bl	_atomic_add_long
	bl	_PV_STAT
Lloh43:
	adrp	x8, __NPCPV@GOTPAGE
Lloh44:
	ldr	x8, [x8, __NPCPV@GOTPAGEOFF]
Lloh45:
	ldr	w8, [x8]
	sub	w1, w8, #1
Lloh46:
	adrp	x0, _pv_entry_spare@GOTPAGE
Lloh47:
	ldr	x0, [x0, _pv_entry_spare@GOTPAGEOFF]
	bl	_atomic_add_int
	b	LBB0_15
LBB0_10:
	rbit	w11, w12
	clz	w11, w11
	ldr	x12, [x21, #8]
	orr	w9, w11, w9
	add	x20, x12, w9, uxtw #2
	mov	w9, #1
	lsl	w9, w9, w11
	ldr	w11, [x10]
	bic	w9, w11, w9
	str	w9, [x10]
	ldr	w9, [x8]
	cbnz	w9, LBB0_14
; %bb.11:
	ldr	w9, [x8, #4]
	cbnz	w9, LBB0_14
; %bb.12:
	ldr	w8, [x8, #8]
	cbnz	w8, LBB0_14
; %bb.13:
Lloh48:
	adrp	x22, _pc_list@GOTPAGE
Lloh49:
	ldr	x22, [x22, _pc_list@GOTPAGEOFF]
	ldr	w2, [x22]
	mov	x0, x19
	mov	x1, x21
	bl	_TAILQ_REMOVE
	ldr	w2, [x22]
	mov	x0, x19
	mov	x1, x21
	bl	_TAILQ_INSERT_TAIL
LBB0_14:
Lloh50:
	adrp	x0, _pv_entry_count@GOTPAGE
Lloh51:
	ldr	x0, [x0, _pv_entry_count@GOTPAGEOFF]
	mov	w1, #1
	bl	_atomic_add_long
	bl	_PV_STAT
Lloh52:
	adrp	x0, _pv_entry_spare@GOTPAGE
Lloh53:
	ldr	x0, [x0, _pv_entry_spare@GOTPAGEOFF]
	mov	w1, #1
	bl	_atomic_subtract_int
LBB0_15:
	bl	_PV_STAT
	mov	x0, x20
	ldp	x29, x30, [sp, #64]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #48]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #32]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #16]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp], #80             ; 16-byte Folded Reload
	ret
LBB0_16:
Lloh54:
	adrp	x8, _pc_chunk_tryfail@GOTPAGE
Lloh55:
	ldr	x8, [x8, _pc_chunk_tryfail@GOTPAGEOFF]
	ldr	w0, [x8]
	add	w9, w0, #1
	str	w9, [x8]
	b	LBB0_15
	.loh AdrpLdrGot	Lloh16, Lloh17
	.loh AdrpLdrGot	Lloh14, Lloh15
	.loh AdrpLdrGot	Lloh12, Lloh13
	.loh AdrpLdrGot	Lloh10, Lloh11
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh46, Lloh47
	.loh AdrpLdrGotLdr	Lloh43, Lloh44, Lloh45
	.loh AdrpLdrGot	Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGot	Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh33, Lloh34, Lloh35
	.loh AdrpLdrGot	Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh28, Lloh29, Lloh30
	.loh AdrpLdrGotLdr	Lloh25, Lloh26, Lloh27
	.loh AdrpLdrGotLdr	Lloh22, Lloh23, Lloh24
	.loh AdrpLdrGot	Lloh20, Lloh21
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpLdrGot	Lloh48, Lloh49
	.loh AdrpLdrGot	Lloh52, Lloh53
	.loh AdrpLdrGot	Lloh50, Lloh51
	.loh AdrpLdrGot	Lloh54, Lloh55
	.cfi_endproc
                                        ; -- End function
	.comm	_pvh_global_lock,4,2            ; @pvh_global_lock
	.comm	_RA_LOCKED,4,2                  ; @RA_LOCKED
	.comm	_MA_OWNED,4,2                   ; @MA_OWNED
	.comm	_pv_entry_allocs,4,2            ; @pv_entry_allocs
	.comm	__NPCM,4,2                      ; @_NPCM
	.comm	_pc_list,4,2                    ; @pc_list
	.comm	_pv_entry_count,4,2             ; @pv_entry_count
	.comm	_pv_entry_spare,4,2             ; @pv_entry_spare
	.comm	_VM_ALLOC_NORMAL,4,2            ; @VM_ALLOC_NORMAL
	.comm	_VM_ALLOC_NOOBJ,4,2             ; @VM_ALLOC_NOOBJ
	.comm	_VM_ALLOC_WIRED,4,2             ; @VM_ALLOC_WIRED
	.comm	_pc_chunk_tryfail,4,2           ; @pc_chunk_tryfail
	.comm	_pc_chunk_count,4,2             ; @pc_chunk_count
	.comm	_pc_chunk_allocs,4,2            ; @pc_chunk_allocs
	.comm	_PC_FREE0,8,3                   ; @PC_FREE0
	.comm	_PC_FREE1,8,3                   ; @PC_FREE1
	.comm	_PC_FREE2,8,3                   ; @PC_FREE2
	.comm	_pv_chunks_mutex,4,2            ; @pv_chunks_mutex
	.comm	_pv_chunks,4,2                  ; @pv_chunks
	.comm	_pc_lru,4,2                     ; @pc_lru
	.comm	__NPCPV,4,2                     ; @_NPCPV
	.no_dead_strip	_get_pv_entry
.subsections_via_symbols
