	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_uma_zalloc_arg                 ## -- Begin function uma_zalloc_arg
	.p2align	4, 0x90
_uma_zalloc_arg:                        ## @uma_zalloc_arg
	.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	$40, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%edx, %ebx
	movq	%rsi, -64(%rbp)                 ## 8-byte Spill
	movq	%rdi, -48(%rbp)
	movq	_RANDOM_UMA@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	leaq	-48(%rbp), %rdi
	movl	$8, %esi
	callq	_random_harvest_fast_uma
	movq	_KTR_UMA@GOTPCREL(%rip), %r14
	movl	(%r14), %edi
	movq	_curthread@GOTPCREL(%rip), %r15
	movq	(%r15), %rdx
	movq	-48(%rbp), %r8
	movl	88(%r8), %ecx
	leaq	L_.str(%rip), %rsi
	movl	%ebx, %r9d
	callq	_CTR4
	movq	_M_WAITOK@GOTPCREL(%rip), %rax
	testl	%ebx, (%rax)
	je	LBB0_2
## %bb.1:
	movq	_WARN_GIANTOK@GOTPCREL(%rip), %rax
	movq	_WARN_SLEEPOK@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edi
	orl	(%rax), %edi
	movq	-48(%rbp), %rax
	movl	88(%rax), %ecx
	leaq	L_.str.1(%rip), %rdx
	xorl	%esi, %esi
	callq	_WITNESS_WARN
LBB0_2:
	movq	_M_EXEC@GOTPCREL(%rip), %rax
	xorl	%edi, %edi
	movl	(%rax), %eax
	andl	%ebx, %eax
	sete	%dil
	leaq	L_.str.2(%rip), %rsi
	callq	_KASSERT
	movq	(%r15), %rax
	cmpq	$0, (%rax)
	je	LBB0_4
## %bb.3:
	xorl	%eax, %eax
	callq	_SCHEDULER_STOPPED
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	jmp	LBB0_5
LBB0_4:
	movl	$1, %edi
LBB0_5:
	leaq	L_.str.3(%rip), %rsi
	callq	_KASSERT
	movq	-48(%rbp), %rax
	movq	_UMA_ZONE_PCPU@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	testl	%ecx, (%rax)
	je	LBB0_7
## %bb.6:
	movq	_M_ZERO@GOTPCREL(%rip), %rax
	xorl	%edi, %edi
	movl	(%rax), %eax
	andl	%ebx, %eax
	sete	%dil
	leaq	L_.str.4(%rip), %rsi
	callq	_KASSERT
LBB0_7:
	movl	%ebx, -56(%rbp)                 ## 4-byte Spill
	movq	_curcpu@GOTPCREL(%rip), %r13
	leaq	L_.str.6(%rip), %r15
                                        ## implicit-def: $eax
                                        ## kill: killed $eax
LBB0_8:                                 ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_9 Depth 2
                                        ##       Child Loop BB0_11 Depth 3
	xorl	%eax, %eax
	callq	_critical_enter
	movslq	(%r13), %rax
	movq	-48(%rbp), %rcx
	leaq	(%rax,%rax,2), %r12
	shlq	$3, %r12
	addq	80(%rcx), %r12
LBB0_9:                                 ##   Parent Loop BB0_8 Depth=1
                                        ## =>  This Loop Header: Depth=2
                                        ##       Child Loop BB0_11 Depth 3
	movq	(%r12), %r13
	testq	%r13, %r13
	je	LBB0_11
	.p2align	4, 0x90
LBB0_10:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	(%r13), %rax
	testq	%rax, %rax
	jne	LBB0_49
LBB0_11:                                ##   Parent Loop BB0_8 Depth=1
                                        ##     Parent Loop BB0_9 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movq	8(%r12), %rbx
	testq	%rbx, %rbx
	je	LBB0_14
## %bb.12:                              ##   in Loop: Header=BB0_11 Depth=3
	cmpq	$0, (%rbx)
	je	LBB0_14
## %bb.13:                              ##   in Loop: Header=BB0_11 Depth=3
	movl	(%r14), %edi
	movq	-48(%rbp), %rcx
	movl	88(%rcx), %edx
	movq	%r15, %rsi
	callq	_CTR2
	movq	(%r12), %rax
	movq	%rax, 8(%r12)
	movq	%rbx, (%r12)
	movq	%rbx, %r13
	testq	%r13, %r13
	jne	LBB0_10
	jmp	LBB0_11
	.p2align	4, 0x90
LBB0_14:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	$0, (%r12)
	xorl	%eax, %eax
	callq	_critical_exit
	testq	%r13, %r13
	je	LBB0_16
## %bb.15:                              ##   in Loop: Header=BB0_9 Depth=2
	movq	-48(%rbp), %rdi
	movq	%r13, %rsi
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
	callq	_bucket_free
LBB0_16:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	-48(%rbp), %rdi
	cmpl	$0, 32(%rdi)
	je	LBB0_54
## %bb.17:                              ##   in Loop: Header=BB0_9 Depth=2
	movq	_bucketdisable@GOTPCREL(%rip), %rax
	cmpq	$0, (%rax)
	jne	LBB0_54
## %bb.18:                              ##   in Loop: Header=BB0_9 Depth=2
	callq	_ZONE_TRYLOCK
	movq	%rax, %rbx
	testq	%rax, %rax
	jne	LBB0_20
## %bb.19:                              ##   in Loop: Header=BB0_9 Depth=2
	movq	-48(%rbp), %rdi
	callq	_ZONE_LOCK
LBB0_20:                                ##   in Loop: Header=BB0_9 Depth=2
	xorl	%eax, %eax
	callq	_critical_enter
	movq	_curcpu@GOTPCREL(%rip), %r13
	movslq	(%r13), %rax
	movq	-48(%rbp), %rdi
	movq	80(%rdi), %rcx
	leaq	(%rax,%rax,2), %rax
	leaq	(%rcx,%rax,8), %r12
	cmpq	$0, (%rcx,%rax,8)
	je	LBB0_22
## %bb.21:                              ##   in Loop: Header=BB0_9 Depth=2
	callq	_ZONE_UNLOCK
	jmp	LBB0_9
LBB0_22:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	_UMA_ZONE_NUMA@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%rdi)
	je	LBB0_24
## %bb.23:                              ##   in Loop: Header=BB0_9 Depth=2
	movl	-52(%rbp), %edi                 ## 4-byte Reload
	callq	_PCPU_GET
	movq	-48(%rbp), %rdi
	movl	%eax, -52(%rbp)                 ## 4-byte Spill
	movslq	%eax, %rsi
	shlq	$2, %rsi
	addq	96(%rdi), %rsi
	jmp	LBB0_25
LBB0_24:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	_UMA_ANYDOMAIN@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -52(%rbp)                 ## 4-byte Spill
	movq	96(%rdi), %rsi
LBB0_25:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	%rsi, -72(%rbp)                 ## 8-byte Spill
	callq	_zone_fetch_bucket
	testq	%rax, %rax
	je	LBB0_27
## %bb.26:                              ##   in Loop: Header=BB0_9 Depth=2
	xorl	%edi, %edi
	cmpq	$0, (%rax)
	setne	%dil
	leaq	L_.str.7(%rip), %rsi
	movq	%rax, %rbx
	callq	_KASSERT
	movq	%rbx, (%r12)
	jmp	LBB0_46
LBB0_27:                                ##   in Loop: Header=BB0_9 Depth=2
	xorl	%eax, %eax
	callq	_critical_exit
	movq	-48(%rbp), %rdi
	testq	%rbx, %rbx
	jne	LBB0_30
## %bb.28:                              ##   in Loop: Header=BB0_9 Depth=2
	movl	32(%rdi), %eax
	cmpl	36(%rdi), %eax
	jge	LBB0_30
## %bb.29:                              ##   in Loop: Header=BB0_9 Depth=2
	incl	%eax
	movl	%eax, 32(%rdi)
LBB0_30:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	40(%rdi), %rsi
	testq	%rsi, %rsi
	jle	LBB0_33
## %bb.31:                              ##   in Loop: Header=BB0_9 Depth=2
	subq	48(%rdi), %rsi
	jle	LBB0_64
## %bb.32:                              ##   in Loop: Header=BB0_9 Depth=2
	movl	32(%rdi), %edi
	callq	_MIN
	movl	%eax, %r12d
	cltq
	movq	-48(%rbp), %rdi
	addq	%rax, 48(%rdi)
	jmp	LBB0_34
LBB0_33:                                ##   in Loop: Header=BB0_9 Depth=2
	movl	32(%rdi), %r12d
LBB0_34:                                ##   in Loop: Header=BB0_9 Depth=2
	callq	_ZONE_UNLOCK
	movq	-48(%rbp), %rdi
	movq	-64(%rbp), %rsi                 ## 8-byte Reload
	movl	-52(%rbp), %edx                 ## 4-byte Reload
	movl	-56(%rbp), %ecx                 ## 4-byte Reload
	movl	%r12d, %r8d
	callq	_zone_alloc_bucket
	movq	%rax, %rbx
	movl	(%r14), %edi
	movq	-48(%rbp), %rcx
	movl	88(%rcx), %edx
	leaq	L_.str.8(%rip), %rsi
	movq	%rax, %r8
	callq	_CTR3
	movq	-48(%rbp), %rdi
	callq	_ZONE_LOCK
	movq	-48(%rbp), %rdi
	movq	40(%rdi), %rax
	testq	%rbx, %rbx
	je	LBB0_60
## %bb.35:                              ##   in Loop: Header=BB0_9 Depth=2
	testq	%rax, %rax
	jle	LBB0_40
## %bb.36:                              ##   in Loop: Header=BB0_9 Depth=2
	movq	(%rbx), %rax
	movslq	%r12d, %r12
	cmpq	%r12, %rax
	jae	LBB0_40
## %bb.37:                              ##   in Loop: Header=BB0_9 Depth=2
	movq	%r12, %rcx
	subq	%rax, %rcx
	xorl	%eax, %eax
	cmpq	%rcx, 48(%rdi)
	setae	%al
	movl	%eax, %edi
	callq	_MPASS
	movq	(%rbx), %rax
	subq	%r12, %rax
	movq	-48(%rbp), %rdi
	addq	48(%rdi), %rax
	movq	%rax, 48(%rdi)
	cmpq	$0, 56(%rdi)
	jle	LBB0_40
## %bb.38:                              ##   in Loop: Header=BB0_9 Depth=2
	cmpq	40(%rdi), %rax
	jge	LBB0_40
## %bb.39:                              ##   in Loop: Header=BB0_9 Depth=2
	callq	_wakeup_one
LBB0_40:                                ##   in Loop: Header=BB0_9 Depth=2
	xorl	%eax, %eax
	callq	_critical_enter
	movslq	(%r13), %rax
	movq	-48(%rbp), %rdi
	movq	80(%rdi), %rcx
	leaq	(%rax,%rax,2), %rax
	leaq	(%rcx,%rax,8), %r12
	cmpq	$0, (%rcx,%rax,8)
	je	LBB0_43
LBB0_41:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	64(%rdi), %rax
	cmpq	72(%rdi), %rax
	jge	LBB0_48
## %bb.42:                              ##   in Loop: Header=BB0_9 Depth=2
	movq	-72(%rbp), %rsi                 ## 8-byte Reload
	movq	%rbx, %rdx
	xorl	%ecx, %ecx
	callq	_zone_put_bucket
	jmp	LBB0_46
LBB0_43:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	_UMA_ZONE_NUMA@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%rdi)
	je	LBB0_45
## %bb.44:                              ##   in Loop: Header=BB0_9 Depth=2
	movl	-52(%rbp), %r13d                ## 4-byte Reload
	movl	%r13d, %edi
	callq	_PCPU_GET
	cmpl	%eax, %r13d
	movq	_curcpu@GOTPCREL(%rip), %r13
	jne	LBB0_47
LBB0_45:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	%rbx, (%r12)
	movl	(%rbx), %eax
	movq	-72(%rbp), %rcx                 ## 8-byte Reload
	addl	%eax, (%rcx)
LBB0_46:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	-48(%rbp), %rdi
	callq	_ZONE_UNLOCK
	jmp	LBB0_9
LBB0_47:                                ##   in Loop: Header=BB0_9 Depth=2
	movq	-48(%rbp), %rdi
	jmp	LBB0_41
LBB0_48:                                ##   in Loop: Header=BB0_8 Depth=1
	xorl	%eax, %eax
	callq	_critical_exit
	movq	-48(%rbp), %rdi
	callq	_ZONE_UNLOCK
	movq	-48(%rbp), %rdi
	movq	%rbx, %rsi
	callq	_bucket_drain
	movq	-48(%rbp), %rdi
	movq	%rbx, %rsi
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
	callq	_bucket_free
	jmp	LBB0_8
LBB0_49:
	leaq	-1(%rax), %rcx
	movq	%rcx, (%r13)
	movq	8(%r13), %rcx
	movq	-8(%rcx,%rax,8), %r14
	xorl	%edi, %edi
	testq	%r14, %r14
	setne	%dil
	leaq	L_.str.5(%rip), %rsi
	callq	_KASSERT
	incl	16(%r12)
	xorl	%eax, %eax
	callq	_critical_exit
	movq	-48(%rbp), %rcx
	movq	16(%rcx), %rax
	testq	%rax, %rax
	movl	-56(%rbp), %ebx                 ## 4-byte Reload
	je	LBB0_52
## %bb.50:
	movl	108(%rcx), %esi
	movq	%r14, %rdi
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
	movl	%ebx, %ecx
	callq	*%rax
	testq	%rax, %rax
	je	LBB0_52
## %bb.51:
	movq	-48(%rbp), %rax
	movl	104(%rax), %edi
	movl	$1, %esi
	callq	_counter_u64_add
	movq	-48(%rbp), %rdi
	movq	_SKIP_DTOR@GOTPCREL(%rip), %rax
	movq	_SKIP_CNT@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	orl	(%rax), %ecx
	movq	%r14, %rsi
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
	callq	_zone_free_item
	xorl	%r14d, %r14d
	jmp	LBB0_59
LBB0_52:
	movq	_M_ZERO@GOTPCREL(%rip), %rax
	testl	%ebx, (%rax)
	je	LBB0_59
## %bb.53:
	movq	-48(%rbp), %rsi
	movq	%r14, %rdi
	callq	_uma_zero_item
	jmp	LBB0_59
LBB0_54:
	callq	_ZONE_LOCK
	movq	-48(%rbp), %rax
	movq	_UMA_ZONE_NUMA@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	testl	%ecx, (%rax)
	je	LBB0_56
## %bb.55:
	movl	-52(%rbp), %edi                 ## 4-byte Reload
	callq	_PCPU_GET
	movl	%eax, %edx
	jmp	LBB0_57
LBB0_56:
	movq	_UMA_ANYDOMAIN@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
LBB0_57:
	movl	-56(%rbp), %ebx                 ## 4-byte Reload
LBB0_58:
	movq	-48(%rbp), %rdi
	movq	-64(%rbp), %rsi                 ## 8-byte Reload
	movl	%ebx, %ecx
	callq	_zone_alloc_item_locked
	movq	%rax, %r14
LBB0_59:
	movq	%r14, %rax
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_60:
	testq	%rax, %rax
	jle	LBB0_64
## %bb.61:
	movslq	%r12d, %rcx
	movq	48(%rdi), %rdx
	movq	%rdx, %rsi
	subq	%rcx, %rsi
	movq	%rsi, 48(%rdi)
	cmpq	$0, 56(%rdi)
	movl	-56(%rbp), %ebx                 ## 4-byte Reload
	jle	LBB0_65
## %bb.62:
	negq	%rcx
	addq	%rdx, %rcx
	incq	%rcx
	cmpq	%rax, %rcx
	jge	LBB0_65
## %bb.63:
	callq	_wakeup_one
	jmp	LBB0_65
LBB0_64:
	movl	-56(%rbp), %ebx                 ## 4-byte Reload
LBB0_65:
	movl	-52(%rbp), %edx                 ## 4-byte Reload
	jmp	LBB0_58
	.cfi_endproc
                                        ## -- End function
	.comm	_RANDOM_UMA,4,2                 ## @RANDOM_UMA
	.comm	_KTR_UMA,4,2                    ## @KTR_UMA
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"uma_zalloc_arg thread %x zone %s(%p) flags %d"

	.comm	_curthread,8,3                  ## @curthread
	.comm	_M_WAITOK,4,2                   ## @M_WAITOK
	.comm	_WARN_GIANTOK,4,2               ## @WARN_GIANTOK
	.comm	_WARN_SLEEPOK,4,2               ## @WARN_SLEEPOK
L_.str.1:                               ## @.str.1
	.asciz	"uma_zalloc_arg: zone \"%s\""

	.comm	_M_EXEC,4,2                     ## @M_EXEC
L_.str.2:                               ## @.str.2
	.asciz	"uma_zalloc_arg: called with M_EXEC"

L_.str.3:                               ## @.str.3
	.asciz	"uma_zalloc_arg: called with spinlock or critical section held"

	.comm	_UMA_ZONE_PCPU,4,2              ## @UMA_ZONE_PCPU
	.comm	_M_ZERO,4,2                     ## @M_ZERO
L_.str.4:                               ## @.str.4
	.asciz	"allocating from a pcpu zone with M_ZERO passed"

	.comm	_curcpu,4,2                     ## @curcpu
L_.str.5:                               ## @.str.5
	.asciz	"uma_zalloc: Bucket pointer mangled."

	.comm	_SKIP_DTOR,4,2                  ## @SKIP_DTOR
	.comm	_SKIP_CNT,4,2                   ## @SKIP_CNT
L_.str.6:                               ## @.str.6
	.asciz	"uma_zalloc: zone %s(%p) swapping empty with alloc"

	.comm	_bucketdisable,8,3              ## @bucketdisable
	.comm	_UMA_ZONE_NUMA,4,2              ## @UMA_ZONE_NUMA
	.comm	_UMA_ANYDOMAIN,4,2              ## @UMA_ANYDOMAIN
L_.str.7:                               ## @.str.7
	.asciz	"uma_zalloc_arg: Returning an empty bucket."

L_.str.8:                               ## @.str.8
	.asciz	"uma_zalloc: zone %s(%p) bucket zone returned %p"

	.comm	_trash_dtor,8,3                 ## @trash_dtor
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_uma_zalloc_arg                 ; -- Begin function uma_zalloc_arg
	.p2align	2
_uma_zalloc_arg:                        ; @uma_zalloc_arg
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #112
	.cfi_def_cfa_offset 112
	stp	x28, x27, [sp, #16]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #32]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #48]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #64]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #80]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #96]             ; 16-byte Folded Spill
	add	x29, sp, #96
	.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
	mov	x20, x2
	mov	x19, x1
	str	x0, [sp, #8]
Lloh0:
	adrp	x8, _RANDOM_UMA@GOTPAGE
Lloh1:
	ldr	x8, [x8, _RANDOM_UMA@GOTPAGEOFF]
Lloh2:
	ldr	w2, [x8]
	add	x0, sp, #8
	mov	w1, #8
	bl	_random_harvest_fast_uma
Lloh3:
	adrp	x28, _KTR_UMA@GOTPAGE
Lloh4:
	ldr	x28, [x28, _KTR_UMA@GOTPAGEOFF]
	ldr	w0, [x28]
Lloh5:
	adrp	x21, _curthread@GOTPAGE
Lloh6:
	ldr	x21, [x21, _curthread@GOTPAGEOFF]
	ldr	x2, [x21]
	ldr	x4, [sp, #8]
	ldr	w3, [x4, #88]
Lloh7:
	adrp	x1, l_.str@PAGE
Lloh8:
	add	x1, x1, l_.str@PAGEOFF
	mov	x5, x20
	bl	_CTR4
Lloh9:
	adrp	x8, _M_WAITOK@GOTPAGE
Lloh10:
	ldr	x8, [x8, _M_WAITOK@GOTPAGEOFF]
Lloh11:
	ldr	w8, [x8]
	tst	w8, w20
	b.eq	LBB0_2
; %bb.1:
Lloh12:
	adrp	x8, _WARN_GIANTOK@GOTPAGE
Lloh13:
	ldr	x8, [x8, _WARN_GIANTOK@GOTPAGEOFF]
Lloh14:
	ldr	w8, [x8]
Lloh15:
	adrp	x9, _WARN_SLEEPOK@GOTPAGE
Lloh16:
	ldr	x9, [x9, _WARN_SLEEPOK@GOTPAGEOFF]
Lloh17:
	ldr	w9, [x9]
	orr	w0, w9, w8
	ldr	x8, [sp, #8]
	ldr	w3, [x8, #88]
Lloh18:
	adrp	x2, l_.str.1@PAGE
Lloh19:
	add	x2, x2, l_.str.1@PAGEOFF
	mov	x1, #0
	bl	_WITNESS_WARN
LBB0_2:
Lloh20:
	adrp	x8, _M_EXEC@GOTPAGE
Lloh21:
	ldr	x8, [x8, _M_EXEC@GOTPAGEOFF]
Lloh22:
	ldr	w8, [x8]
	tst	w8, w20
	cset	w0, eq
Lloh23:
	adrp	x1, l_.str.2@PAGE
Lloh24:
	add	x1, x1, l_.str.2@PAGEOFF
	bl	_KASSERT
	ldr	x8, [x21]
	ldr	x8, [x8]
	cbz	x8, LBB0_4
; %bb.3:
	bl	_SCHEDULER_STOPPED
	cmp	x0, #0
	cset	w0, ne
	b	LBB0_5
LBB0_4:
	mov	w0, #1
LBB0_5:
Lloh25:
	adrp	x1, l_.str.3@PAGE
Lloh26:
	add	x1, x1, l_.str.3@PAGEOFF
	bl	_KASSERT
	ldr	x8, [sp, #8]
	ldr	w8, [x8]
Lloh27:
	adrp	x9, _UMA_ZONE_PCPU@GOTPAGE
Lloh28:
	ldr	x9, [x9, _UMA_ZONE_PCPU@GOTPAGEOFF]
Lloh29:
	ldr	w9, [x9]
Lloh30:
	adrp	x27, _M_ZERO@GOTPAGE
Lloh31:
	ldr	x27, [x27, _M_ZERO@GOTPAGEOFF]
	tst	w9, w8
	b.eq	LBB0_7
; %bb.6:
	ldr	w8, [x27]
	tst	w8, w20
	cset	w0, eq
Lloh32:
	adrp	x1, l_.str.4@PAGE
Lloh33:
	add	x1, x1, l_.str.4@PAGEOFF
	bl	_KASSERT
LBB0_7:
Lloh34:
	adrp	x23, _curcpu@GOTPAGE
Lloh35:
	ldr	x23, [x23, _curcpu@GOTPAGEOFF]
	mov	w21, #24
                                        ; implicit-def: $w8
                                        ; kill: killed $w8
Lloh36:
	adrp	x24, l_.str.6@PAGE
Lloh37:
	add	x24, x24, l_.str.6@PAGEOFF
LBB0_8:                                 ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_9 Depth 2
                                        ;       Child Loop BB0_11 Depth 3
	bl	_critical_enter
	ldrsw	x8, [x23]
	ldr	x9, [sp, #8]
	ldr	x9, [x9, #80]
	madd	x22, x8, x21, x9
LBB0_9:                                 ;   Parent Loop BB0_8 Depth=1
                                        ; =>  This Loop Header: Depth=2
                                        ;       Child Loop BB0_11 Depth 3
	ldr	x25, [x22]
	cbz	x25, LBB0_11
LBB0_10:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x8, [x25]
	cbnz	x8, LBB0_49
LBB0_11:                                ;   Parent Loop BB0_8 Depth=1
                                        ;     Parent Loop BB0_9 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	ldr	x26, [x22, #8]
	cbz	x26, LBB0_14
; %bb.12:                               ;   in Loop: Header=BB0_11 Depth=3
	ldr	x8, [x26]
	cbz	x8, LBB0_14
; %bb.13:                               ;   in Loop: Header=BB0_11 Depth=3
	ldr	w0, [x28]
	ldr	x3, [sp, #8]
	ldr	w2, [x3, #88]
	mov	x1, x24
	bl	_CTR2
	ldr	x8, [x22]
	stp	x26, x8, [x22]
	mov	x25, x26
	cbnz	x25, LBB0_10
	b	LBB0_11
LBB0_14:                                ;   in Loop: Header=BB0_9 Depth=2
	str	xzr, [x22]
	bl	_critical_exit
	cbz	x25, LBB0_16
; %bb.15:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #8]
	mov	x1, x25
	mov	x2, x19
	bl	_bucket_free
LBB0_16:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #8]
	ldr	w8, [x0, #32]
Lloh38:
	adrp	x9, _bucketdisable@GOTPAGE
Lloh39:
	ldr	x9, [x9, _bucketdisable@GOTPAGEOFF]
Lloh40:
	ldr	x9, [x9]
	cmp	w8, #0
	ccmp	x9, #0, #0, ne
	b.ne	LBB0_54
; %bb.17:                               ;   in Loop: Header=BB0_9 Depth=2
	bl	_ZONE_TRYLOCK
	mov	x26, x0
	cbnz	x0, LBB0_19
; %bb.18:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #8]
	bl	_ZONE_LOCK
LBB0_19:                                ;   in Loop: Header=BB0_9 Depth=2
	bl	_critical_enter
	ldrsw	x8, [x23]
	ldr	x0, [sp, #8]
	ldr	x9, [x0, #80]
	madd	x22, x8, x21, x9
	ldr	x8, [x22]
	cbz	x8, LBB0_21
; %bb.20:                               ;   in Loop: Header=BB0_9 Depth=2
	bl	_ZONE_UNLOCK
	b	LBB0_9
LBB0_21:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	w8, [x0]
Lloh41:
	adrp	x9, _UMA_ZONE_NUMA@GOTPAGE
Lloh42:
	ldr	x9, [x9, _UMA_ZONE_NUMA@GOTPAGEOFF]
Lloh43:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_23
; %bb.22:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	w0, [sp, #4]                    ; 4-byte Folded Reload
	bl	_PCPU_GET
	mov	x9, x0
	ldr	x0, [sp, #8]
	ldr	x8, [x0, #96]
	str	w9, [sp, #4]                    ; 4-byte Folded Spill
	add	x25, x8, w9, sxtw #2
	b	LBB0_24
LBB0_23:                                ;   in Loop: Header=BB0_9 Depth=2
Lloh44:
	adrp	x8, _UMA_ANYDOMAIN@GOTPAGE
Lloh45:
	ldr	x8, [x8, _UMA_ANYDOMAIN@GOTPAGEOFF]
Lloh46:
	ldr	w8, [x8]
	str	w8, [sp, #4]                    ; 4-byte Folded Spill
	ldr	x25, [x0, #96]
LBB0_24:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x25
	bl	_zone_fetch_bucket
	cbz	x0, LBB0_26
; %bb.25:                               ;   in Loop: Header=BB0_9 Depth=2
	mov	x27, x0
	ldr	x8, [x0]
	cmp	x8, #0
	cset	w0, ne
Lloh47:
	adrp	x1, l_.str.7@PAGE
Lloh48:
	add	x1, x1, l_.str.7@PAGEOFF
	bl	_KASSERT
	str	x27, [x22]
Lloh49:
	adrp	x27, _M_ZERO@GOTPAGE
Lloh50:
	ldr	x27, [x27, _M_ZERO@GOTPAGEOFF]
	b	LBB0_46
LBB0_26:                                ;   in Loop: Header=BB0_9 Depth=2
	bl	_critical_exit
	ldr	x0, [sp, #8]
	cbnz	x26, LBB0_29
; %bb.27:                               ;   in Loop: Header=BB0_9 Depth=2
	ldp	w8, w9, [x0, #32]
	cmp	w8, w9
	b.ge	LBB0_29
; %bb.28:                               ;   in Loop: Header=BB0_9 Depth=2
	add	w8, w8, #1
	str	w8, [x0, #32]
LBB0_29:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x8, [x0, #40]
	cmp	x8, #1
	b.lt	LBB0_32
; %bb.30:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x9, [x0, #48]
	subs	x1, x8, x9
	ldr	w22, [sp, #4]                   ; 4-byte Folded Reload
	b.le	LBB0_57
; %bb.31:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	w0, [x0, #32]
	bl	_MIN
	mov	x27, x0
	ldr	x0, [sp, #8]
	ldr	x8, [x0, #48]
	add	x8, x8, w27, sxtw
	str	x8, [x0, #48]
	b	LBB0_33
LBB0_32:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	w27, [x0, #32]
	ldr	w22, [sp, #4]                   ; 4-byte Folded Reload
LBB0_33:                                ;   in Loop: Header=BB0_9 Depth=2
	bl	_ZONE_UNLOCK
	ldr	x0, [sp, #8]
	mov	x1, x19
	mov	x2, x22
	mov	x3, x20
	mov	x4, x27
	bl	_zone_alloc_bucket
	mov	x26, x0
	ldr	w0, [x28]
	ldr	x3, [sp, #8]
	ldr	w2, [x3, #88]
Lloh51:
	adrp	x1, l_.str.8@PAGE
Lloh52:
	add	x1, x1, l_.str.8@PAGEOFF
	mov	x4, x26
	bl	_CTR3
	ldr	x0, [sp, #8]
	bl	_ZONE_LOCK
	ldr	x0, [sp, #8]
	ldr	x8, [x0, #40]
	cbz	x26, LBB0_59
; %bb.34:                               ;   in Loop: Header=BB0_9 Depth=2
	cmp	x8, #1
	b.lt	LBB0_39
; %bb.35:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x8, [x26]
	sxtw	x22, w27
	cmp	x8, x22
	b.hs	LBB0_39
; %bb.36:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x9, [x0, #48]
	sub	x8, x22, x8
	cmp	x9, x8
	cset	w0, hs
	bl	_MPASS
	ldr	x8, [x26]
	ldr	x0, [sp, #8]
	ldp	x9, x10, [x0, #48]
	sub	x8, x8, x22
	add	x8, x9, x8
	str	x8, [x0, #48]
	cmp	x10, #1
	b.lt	LBB0_39
; %bb.37:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x9, [x0, #40]
	cmp	x8, x9
	b.ge	LBB0_39
; %bb.38:                               ;   in Loop: Header=BB0_9 Depth=2
	bl	_wakeup_one
LBB0_39:                                ;   in Loop: Header=BB0_9 Depth=2
	bl	_critical_enter
	ldrsw	x8, [x23]
	ldr	x0, [sp, #8]
	ldr	x9, [x0, #80]
	madd	x22, x8, x21, x9
	ldr	x8, [x22]
	cbz	x8, LBB0_43
; %bb.40:                               ;   in Loop: Header=BB0_9 Depth=2
Lloh53:
	adrp	x27, _M_ZERO@GOTPAGE
Lloh54:
	ldr	x27, [x27, _M_ZERO@GOTPAGEOFF]
LBB0_41:                                ;   in Loop: Header=BB0_9 Depth=2
	ldp	x8, x9, [x0, #64]
	cmp	x8, x9
	b.ge	LBB0_48
; %bb.42:                               ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x25
	mov	x2, x26
	mov	w3, #0
	bl	_zone_put_bucket
	b	LBB0_46
LBB0_43:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	w8, [x0]
Lloh55:
	adrp	x9, _UMA_ZONE_NUMA@GOTPAGE
Lloh56:
	ldr	x9, [x9, _UMA_ZONE_NUMA@GOTPAGEOFF]
Lloh57:
	ldr	w9, [x9]
	tst	w9, w8
Lloh58:
	adrp	x27, _M_ZERO@GOTPAGE
Lloh59:
	ldr	x27, [x27, _M_ZERO@GOTPAGEOFF]
	b.eq	LBB0_45
; %bb.44:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	w0, [sp, #4]                    ; 4-byte Folded Reload
	bl	_PCPU_GET
	ldr	w8, [sp, #4]                    ; 4-byte Folded Reload
	cmp	w8, w0
	b.ne	LBB0_47
LBB0_45:                                ;   in Loop: Header=BB0_9 Depth=2
	str	x26, [x22]
	ldr	w8, [x26]
	ldr	w9, [x25]
	add	w8, w9, w8
	str	w8, [x25]
LBB0_46:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #8]
	bl	_ZONE_UNLOCK
	b	LBB0_9
LBB0_47:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #8]
	b	LBB0_41
LBB0_48:                                ;   in Loop: Header=BB0_8 Depth=1
	bl	_critical_exit
	ldr	x0, [sp, #8]
	bl	_ZONE_UNLOCK
	ldr	x0, [sp, #8]
	mov	x1, x26
	bl	_bucket_drain
	ldr	x0, [sp, #8]
	mov	x1, x26
	mov	x2, x19
	bl	_bucket_free
	b	LBB0_8
LBB0_49:
	sub	x8, x8, #1
	str	x8, [x25]
	ldr	x9, [x25, #8]
	ldr	x21, [x9, x8, lsl #3]
	cmp	x21, #0
	cset	w0, ne
Lloh60:
	adrp	x1, l_.str.5@PAGE
Lloh61:
	add	x1, x1, l_.str.5@PAGEOFF
	bl	_KASSERT
	ldr	w8, [x22, #16]
	add	w8, w8, #1
	str	w8, [x22, #16]
	bl	_critical_exit
	ldr	x9, [sp, #8]
	ldr	x8, [x9, #16]
	cbz	x8, LBB0_52
; %bb.50:
	ldr	w1, [x9, #108]
	mov	x0, x21
	mov	x2, x19
	mov	x3, x20
	blr	x8
	cbz	x0, LBB0_52
; %bb.51:
	ldr	x8, [sp, #8]
	ldr	w0, [x8, #104]
	mov	w1, #1
	bl	_counter_u64_add
Lloh62:
	adrp	x8, _SKIP_DTOR@GOTPAGE
Lloh63:
	ldr	x8, [x8, _SKIP_DTOR@GOTPAGEOFF]
	ldr	x0, [sp, #8]
Lloh64:
	ldr	w8, [x8]
Lloh65:
	adrp	x9, _SKIP_CNT@GOTPAGE
Lloh66:
	ldr	x9, [x9, _SKIP_CNT@GOTPAGEOFF]
Lloh67:
	ldr	w9, [x9]
	orr	w3, w9, w8
	mov	x1, x21
	mov	x2, x19
	bl	_zone_free_item
	mov	x21, #0
	b	LBB0_58
LBB0_52:
	ldr	w8, [x27]
	tst	w8, w20
	b.eq	LBB0_58
; %bb.53:
	ldr	x1, [sp, #8]
	mov	x0, x21
	bl	_uma_zero_item
	b	LBB0_58
LBB0_54:
	bl	_ZONE_LOCK
	ldr	x8, [sp, #8]
	ldr	w8, [x8]
Lloh68:
	adrp	x9, _UMA_ZONE_NUMA@GOTPAGE
Lloh69:
	ldr	x9, [x9, _UMA_ZONE_NUMA@GOTPAGEOFF]
Lloh70:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_56
; %bb.55:
	ldr	w0, [sp, #4]                    ; 4-byte Folded Reload
	bl	_PCPU_GET
	mov	x22, x0
	b	LBB0_57
LBB0_56:
Lloh71:
	adrp	x8, _UMA_ANYDOMAIN@GOTPAGE
Lloh72:
	ldr	x8, [x8, _UMA_ANYDOMAIN@GOTPAGEOFF]
Lloh73:
	ldr	w22, [x8]
LBB0_57:
	ldr	x0, [sp, #8]
	mov	x1, x19
	mov	x2, x22
	mov	x3, x20
	bl	_zone_alloc_item_locked
	mov	x21, x0
LBB0_58:
	mov	x0, x21
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #112
	ret
LBB0_59:
	cmp	x8, #1
	b.lt	LBB0_63
; %bb.60:
	ldp	x9, x10, [x0, #48]
	sub	x9, x9, w27, sxtw
	str	x9, [x0, #48]
	cmp	x10, #1
	ldr	w22, [sp, #4]                   ; 4-byte Folded Reload
	b.lt	LBB0_57
; %bb.61:
	add	x9, x9, #1
	cmp	x9, x8
	b.ge	LBB0_57
; %bb.62:
	bl	_wakeup_one
	b	LBB0_57
LBB0_63:
	ldr	w22, [sp, #4]                   ; 4-byte Folded Reload
	b	LBB0_57
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpAdd	Lloh7, Lloh8
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh18, Lloh19
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpAdd	Lloh23, Lloh24
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGot	Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpAdd	Lloh25, Lloh26
	.loh AdrpAdd	Lloh32, Lloh33
	.loh AdrpAdd	Lloh36, Lloh37
	.loh AdrpLdrGot	Lloh34, Lloh35
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGotLdr	Lloh41, Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh44, Lloh45, Lloh46
	.loh AdrpLdrGot	Lloh49, Lloh50
	.loh AdrpAdd	Lloh47, Lloh48
	.loh AdrpAdd	Lloh51, Lloh52
	.loh AdrpLdrGot	Lloh53, Lloh54
	.loh AdrpLdrGot	Lloh58, Lloh59
	.loh AdrpLdrGotLdr	Lloh55, Lloh56, Lloh57
	.loh AdrpAdd	Lloh60, Lloh61
	.loh AdrpLdrGotLdr	Lloh65, Lloh66, Lloh67
	.loh AdrpLdrGotLdr	Lloh62, Lloh63, Lloh64
	.loh AdrpLdrGotLdr	Lloh68, Lloh69, Lloh70
	.loh AdrpLdrGotLdr	Lloh71, Lloh72, Lloh73
	.cfi_endproc
                                        ; -- End function
	.comm	_RANDOM_UMA,4,2                 ; @RANDOM_UMA
	.comm	_KTR_UMA,4,2                    ; @KTR_UMA
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"uma_zalloc_arg thread %x zone %s(%p) flags %d"

	.comm	_curthread,8,3                  ; @curthread
	.comm	_M_WAITOK,4,2                   ; @M_WAITOK
	.comm	_WARN_GIANTOK,4,2               ; @WARN_GIANTOK
	.comm	_WARN_SLEEPOK,4,2               ; @WARN_SLEEPOK
l_.str.1:                               ; @.str.1
	.asciz	"uma_zalloc_arg: zone \"%s\""

	.comm	_M_EXEC,4,2                     ; @M_EXEC
l_.str.2:                               ; @.str.2
	.asciz	"uma_zalloc_arg: called with M_EXEC"

l_.str.3:                               ; @.str.3
	.asciz	"uma_zalloc_arg: called with spinlock or critical section held"

	.comm	_UMA_ZONE_PCPU,4,2              ; @UMA_ZONE_PCPU
	.comm	_M_ZERO,4,2                     ; @M_ZERO
l_.str.4:                               ; @.str.4
	.asciz	"allocating from a pcpu zone with M_ZERO passed"

	.comm	_curcpu,4,2                     ; @curcpu
l_.str.5:                               ; @.str.5
	.asciz	"uma_zalloc: Bucket pointer mangled."

	.comm	_SKIP_DTOR,4,2                  ; @SKIP_DTOR
	.comm	_SKIP_CNT,4,2                   ; @SKIP_CNT
l_.str.6:                               ; @.str.6
	.asciz	"uma_zalloc: zone %s(%p) swapping empty with alloc"

	.comm	_bucketdisable,8,3              ; @bucketdisable
	.comm	_UMA_ZONE_NUMA,4,2              ; @UMA_ZONE_NUMA
	.comm	_UMA_ANYDOMAIN,4,2              ; @UMA_ANYDOMAIN
l_.str.7:                               ; @.str.7
	.asciz	"uma_zalloc_arg: Returning an empty bucket."

l_.str.8:                               ; @.str.8
	.asciz	"uma_zalloc: zone %s(%p) bucket zone returned %p"

	.comm	_trash_dtor,8,3                 ; @trash_dtor
.subsections_via_symbols
