	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_sbi_init                       ## -- Begin function sbi_init
	.p2align	4, 0x90
_sbi_init:                              ## @sbi_init
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	xorl	%eax, %eax
	callq	_sbi_get_spec_version
	testq	%rax, %rax
	je	LBB0_2
## %bb.1:
	movq	_sbi_spec_version@GOTPCREL(%rip), %rax
	movq	$0, (%rax)
	popq	%rbp
	retq
LBB0_2:
	movq	_sbi_spec_version@GOTPCREL(%rip), %rax
	movq	%rdx, (%rax)
	xorl	%eax, %eax
	callq	_sbi_get_impl_id
	movq	_sbi_impl_id@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	xorl	%eax, %eax
	callq	_sbi_get_impl_version
	movq	_sbi_impl_version@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	xorl	%eax, %eax
	callq	_sbi_get_mvendorid
	movq	_mvendorid@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	xorl	%eax, %eax
	callq	_sbi_get_marchid
	movq	_marchid@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	xorl	%eax, %eax
	callq	_sbi_get_mimpid
	movq	_mimpid@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	movq	_SBI_SET_TIMER@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str(%rip), %rsi
	callq	_KASSERT
	movq	_SBI_CONSOLE_PUTCHAR@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str.1(%rip), %rsi
	callq	_KASSERT
	movq	_SBI_CONSOLE_GETCHAR@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str.2(%rip), %rsi
	callq	_KASSERT
	movq	_SBI_CLEAR_IPI@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str.3(%rip), %rsi
	callq	_KASSERT
	movq	_SBI_SEND_IPI@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str.4(%rip), %rsi
	callq	_KASSERT
	movq	_SBI_REMOTE_FENCE_I@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str.5(%rip), %rsi
	callq	_KASSERT
	movq	_SBI_REMOTE_SFENCE_VMA@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str.6(%rip), %rsi
	callq	_KASSERT
	movq	_SBI_REMOTE_SFENCE_VMA_ASID@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str.7(%rip), %rsi
	callq	_KASSERT
	movq	_SBI_SHUTDOWN@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_sbi_probe_extension
	xorl	%edi, %edi
	testq	%rax, %rax
	setne	%dil
	leaq	L_.str.8(%rip), %rsi
	popq	%rbp
	jmp	_KASSERT                        ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_sbi_spec_version,8,3           ## @sbi_spec_version
	.comm	_sbi_impl_id,4,2                ## @sbi_impl_id
	.comm	_sbi_impl_version,4,2           ## @sbi_impl_version
	.comm	_mvendorid,4,2                  ## @mvendorid
	.comm	_marchid,4,2                    ## @marchid
	.comm	_mimpid,4,2                     ## @mimpid
	.comm	_SBI_SET_TIMER,4,2              ## @SBI_SET_TIMER
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"SBI doesn't implement sbi_set_timer()"

	.comm	_SBI_CONSOLE_PUTCHAR,4,2        ## @SBI_CONSOLE_PUTCHAR
L_.str.1:                               ## @.str.1
	.asciz	"SBI doesn't implement sbi_console_putchar()"

	.comm	_SBI_CONSOLE_GETCHAR,4,2        ## @SBI_CONSOLE_GETCHAR
L_.str.2:                               ## @.str.2
	.asciz	"SBI doesn't implement sbi_console_getchar()"

	.comm	_SBI_CLEAR_IPI,4,2              ## @SBI_CLEAR_IPI
L_.str.3:                               ## @.str.3
	.asciz	"SBI doesn't implement sbi_clear_ipi()"

	.comm	_SBI_SEND_IPI,4,2               ## @SBI_SEND_IPI
L_.str.4:                               ## @.str.4
	.asciz	"SBI doesn't implement sbi_send_ipi()"

	.comm	_SBI_REMOTE_FENCE_I,4,2         ## @SBI_REMOTE_FENCE_I
L_.str.5:                               ## @.str.5
	.asciz	"SBI doesn't implement sbi_remote_fence_i()"

	.comm	_SBI_REMOTE_SFENCE_VMA,4,2      ## @SBI_REMOTE_SFENCE_VMA
L_.str.6:                               ## @.str.6
	.asciz	"SBI doesn't implement sbi_remote_sfence_vma()"

	.comm	_SBI_REMOTE_SFENCE_VMA_ASID,4,2 ## @SBI_REMOTE_SFENCE_VMA_ASID
L_.str.7:                               ## @.str.7
	.asciz	"SBI doesn't implement sbi_remote_sfence_vma_asid()"

	.comm	_SBI_SHUTDOWN,4,2               ## @SBI_SHUTDOWN
L_.str.8:                               ## @.str.8
	.asciz	"SBI doesn't implement sbi_shutdown()"

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_sbi_init                       ; -- Begin function sbi_init
	.p2align	2
_sbi_init:                              ; @sbi_init
	.cfi_startproc
; %bb.0:
	stp	x29, x30, [sp, #-16]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 16
	mov	x29, sp
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	bl	_sbi_get_spec_version
Lloh0:
	adrp	x8, _sbi_spec_version@GOTPAGE
Lloh1:
	ldr	x8, [x8, _sbi_spec_version@GOTPAGEOFF]
	cbz	x0, LBB0_2
; %bb.1:
	str	xzr, [x8]
	ldp	x29, x30, [sp], #16             ; 16-byte Folded Reload
	ret
LBB0_2:
	str	x1, [x8]
	bl	_sbi_get_impl_id
Lloh2:
	adrp	x8, _sbi_impl_id@GOTPAGE
Lloh3:
	ldr	x8, [x8, _sbi_impl_id@GOTPAGEOFF]
Lloh4:
	str	w0, [x8]
	bl	_sbi_get_impl_version
Lloh5:
	adrp	x8, _sbi_impl_version@GOTPAGE
Lloh6:
	ldr	x8, [x8, _sbi_impl_version@GOTPAGEOFF]
Lloh7:
	str	w0, [x8]
	bl	_sbi_get_mvendorid
Lloh8:
	adrp	x8, _mvendorid@GOTPAGE
Lloh9:
	ldr	x8, [x8, _mvendorid@GOTPAGEOFF]
Lloh10:
	str	w0, [x8]
	bl	_sbi_get_marchid
Lloh11:
	adrp	x8, _marchid@GOTPAGE
Lloh12:
	ldr	x8, [x8, _marchid@GOTPAGEOFF]
Lloh13:
	str	w0, [x8]
	bl	_sbi_get_mimpid
Lloh14:
	adrp	x8, _mimpid@GOTPAGE
Lloh15:
	ldr	x8, [x8, _mimpid@GOTPAGEOFF]
Lloh16:
	str	w0, [x8]
Lloh17:
	adrp	x8, _SBI_SET_TIMER@GOTPAGE
Lloh18:
	ldr	x8, [x8, _SBI_SET_TIMER@GOTPAGEOFF]
Lloh19:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh20:
	adrp	x1, l_.str@PAGE
Lloh21:
	add	x1, x1, l_.str@PAGEOFF
	bl	_KASSERT
Lloh22:
	adrp	x8, _SBI_CONSOLE_PUTCHAR@GOTPAGE
Lloh23:
	ldr	x8, [x8, _SBI_CONSOLE_PUTCHAR@GOTPAGEOFF]
Lloh24:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh25:
	adrp	x1, l_.str.1@PAGE
Lloh26:
	add	x1, x1, l_.str.1@PAGEOFF
	bl	_KASSERT
Lloh27:
	adrp	x8, _SBI_CONSOLE_GETCHAR@GOTPAGE
Lloh28:
	ldr	x8, [x8, _SBI_CONSOLE_GETCHAR@GOTPAGEOFF]
Lloh29:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh30:
	adrp	x1, l_.str.2@PAGE
Lloh31:
	add	x1, x1, l_.str.2@PAGEOFF
	bl	_KASSERT
Lloh32:
	adrp	x8, _SBI_CLEAR_IPI@GOTPAGE
Lloh33:
	ldr	x8, [x8, _SBI_CLEAR_IPI@GOTPAGEOFF]
Lloh34:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh35:
	adrp	x1, l_.str.3@PAGE
Lloh36:
	add	x1, x1, l_.str.3@PAGEOFF
	bl	_KASSERT
Lloh37:
	adrp	x8, _SBI_SEND_IPI@GOTPAGE
Lloh38:
	ldr	x8, [x8, _SBI_SEND_IPI@GOTPAGEOFF]
Lloh39:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh40:
	adrp	x1, l_.str.4@PAGE
Lloh41:
	add	x1, x1, l_.str.4@PAGEOFF
	bl	_KASSERT
Lloh42:
	adrp	x8, _SBI_REMOTE_FENCE_I@GOTPAGE
Lloh43:
	ldr	x8, [x8, _SBI_REMOTE_FENCE_I@GOTPAGEOFF]
Lloh44:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh45:
	adrp	x1, l_.str.5@PAGE
Lloh46:
	add	x1, x1, l_.str.5@PAGEOFF
	bl	_KASSERT
Lloh47:
	adrp	x8, _SBI_REMOTE_SFENCE_VMA@GOTPAGE
Lloh48:
	ldr	x8, [x8, _SBI_REMOTE_SFENCE_VMA@GOTPAGEOFF]
Lloh49:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh50:
	adrp	x1, l_.str.6@PAGE
Lloh51:
	add	x1, x1, l_.str.6@PAGEOFF
	bl	_KASSERT
Lloh52:
	adrp	x8, _SBI_REMOTE_SFENCE_VMA_ASID@GOTPAGE
Lloh53:
	ldr	x8, [x8, _SBI_REMOTE_SFENCE_VMA_ASID@GOTPAGEOFF]
Lloh54:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh55:
	adrp	x1, l_.str.7@PAGE
Lloh56:
	add	x1, x1, l_.str.7@PAGEOFF
	bl	_KASSERT
Lloh57:
	adrp	x8, _SBI_SHUTDOWN@GOTPAGE
Lloh58:
	ldr	x8, [x8, _SBI_SHUTDOWN@GOTPAGEOFF]
Lloh59:
	ldr	w0, [x8]
	bl	_sbi_probe_extension
	cmp	x0, #0
	cset	w0, ne
Lloh60:
	adrp	x1, l_.str.8@PAGE
Lloh61:
	add	x1, x1, l_.str.8@PAGEOFF
	ldp	x29, x30, [sp], #16             ; 16-byte Folded Reload
	b	_KASSERT
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpAdd	Lloh60, Lloh61
	.loh AdrpLdrGotLdr	Lloh57, Lloh58, Lloh59
	.loh AdrpAdd	Lloh55, Lloh56
	.loh AdrpLdrGotLdr	Lloh52, Lloh53, Lloh54
	.loh AdrpAdd	Lloh50, Lloh51
	.loh AdrpLdrGotLdr	Lloh47, Lloh48, Lloh49
	.loh AdrpAdd	Lloh45, Lloh46
	.loh AdrpLdrGotLdr	Lloh42, Lloh43, Lloh44
	.loh AdrpAdd	Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh37, Lloh38, Lloh39
	.loh AdrpAdd	Lloh35, Lloh36
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpAdd	Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpAdd	Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh22, Lloh23, Lloh24
	.loh AdrpAdd	Lloh20, Lloh21
	.loh AdrpLdrGotLdr	Lloh17, Lloh18, Lloh19
	.loh AdrpLdrGotStr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGotStr	Lloh11, Lloh12, Lloh13
	.loh AdrpLdrGotStr	Lloh8, Lloh9, Lloh10
	.loh AdrpLdrGotStr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGotStr	Lloh2, Lloh3, Lloh4
	.cfi_endproc
                                        ; -- End function
	.comm	_sbi_spec_version,8,3           ; @sbi_spec_version
	.comm	_sbi_impl_id,4,2                ; @sbi_impl_id
	.comm	_sbi_impl_version,4,2           ; @sbi_impl_version
	.comm	_mvendorid,4,2                  ; @mvendorid
	.comm	_marchid,4,2                    ; @marchid
	.comm	_mimpid,4,2                     ; @mimpid
	.comm	_SBI_SET_TIMER,4,2              ; @SBI_SET_TIMER
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"SBI doesn't implement sbi_set_timer()"

	.comm	_SBI_CONSOLE_PUTCHAR,4,2        ; @SBI_CONSOLE_PUTCHAR
l_.str.1:                               ; @.str.1
	.asciz	"SBI doesn't implement sbi_console_putchar()"

	.comm	_SBI_CONSOLE_GETCHAR,4,2        ; @SBI_CONSOLE_GETCHAR
l_.str.2:                               ; @.str.2
	.asciz	"SBI doesn't implement sbi_console_getchar()"

	.comm	_SBI_CLEAR_IPI,4,2              ; @SBI_CLEAR_IPI
l_.str.3:                               ; @.str.3
	.asciz	"SBI doesn't implement sbi_clear_ipi()"

	.comm	_SBI_SEND_IPI,4,2               ; @SBI_SEND_IPI
l_.str.4:                               ; @.str.4
	.asciz	"SBI doesn't implement sbi_send_ipi()"

	.comm	_SBI_REMOTE_FENCE_I,4,2         ; @SBI_REMOTE_FENCE_I
l_.str.5:                               ; @.str.5
	.asciz	"SBI doesn't implement sbi_remote_fence_i()"

	.comm	_SBI_REMOTE_SFENCE_VMA,4,2      ; @SBI_REMOTE_SFENCE_VMA
l_.str.6:                               ; @.str.6
	.asciz	"SBI doesn't implement sbi_remote_sfence_vma()"

	.comm	_SBI_REMOTE_SFENCE_VMA_ASID,4,2 ; @SBI_REMOTE_SFENCE_VMA_ASID
l_.str.7:                               ; @.str.7
	.asciz	"SBI doesn't implement sbi_remote_sfence_vma_asid()"

	.comm	_SBI_SHUTDOWN,4,2               ; @SBI_SHUTDOWN
l_.str.8:                               ; @.str.8
	.asciz	"SBI doesn't implement sbi_shutdown()"

.subsections_via_symbols
