	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_uart_init                      ## -- Begin function uart_init
	.p2align	4, 0x90
_uart_init:                             ## @uart_init
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%rbx
	pushq	%rax
	.cfi_offset %rbx, -24
	movl	%edi, %ebx
	xorl	%eax, %eax
	callq	_cli
	movq	_F_CPU@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	leal	3(%rcx), %eax
	testl	%ecx, %ecx
	cmovnsl	%ecx, %eax
	sarl	$2, %eax
	cltd
	idivl	%ebx
                                        ## kill: def $eax killed $eax def $rax
	movl	%eax, %ecx
	decl	%ecx
	shrl	$31, %ecx
	addl	%ecx, %eax
	decl	%eax
	sarl	%eax
	movq	_UBRR0@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	movq	_U2X0@GOTPCREL(%rip), %rax
	movb	(%rax), %cl
	movl	$1, %edx
	shll	%cl, %edx
	movl	$1, %eax
	movq	_UCSR0A@GOTPCREL(%rip), %rcx
	movl	%edx, (%rcx)
	movq	_RXEN0@GOTPCREL(%rip), %rcx
	movb	(%rcx), %dl
	movq	_TXEN0@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	movl	$1, %esi
	shll	%cl, %esi
	btsl	%edx, %esi
	movq	_RXCIE0@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	btsl	%ecx, %esi
	movq	_UCSR0B@GOTPCREL(%rip), %rcx
	movl	%esi, (%rcx)
	movq	_UCSZ01@GOTPCREL(%rip), %rcx
	movb	(%rcx), %dl
	movq	_UCSZ00@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	shll	%cl, %eax
	btsl	%edx, %eax
	movq	_UCSR0C@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	movq	_tx_buffer_tail@GOTPCREL(%rip), %rax
	movq	$0, (%rax)
	movq	_tx_buffer_head@GOTPCREL(%rip), %rax
	movq	$0, (%rax)
	movq	_rx_buffer_tail@GOTPCREL(%rip), %rax
	movq	$0, (%rax)
	movq	_rx_buffer_head@GOTPCREL(%rip), %rax
	movq	$0, (%rax)
	xorl	%eax, %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	jmp	_sei                            ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_F_CPU,4,2                      ## @F_CPU
	.comm	_UBRR0,4,2                      ## @UBRR0
	.comm	_U2X0,4,2                       ## @U2X0
	.comm	_UCSR0A,4,2                     ## @UCSR0A
	.comm	_RXEN0,4,2                      ## @RXEN0
	.comm	_TXEN0,4,2                      ## @TXEN0
	.comm	_RXCIE0,4,2                     ## @RXCIE0
	.comm	_UCSR0B,4,2                     ## @UCSR0B
	.comm	_UCSZ01,4,2                     ## @UCSZ01
	.comm	_UCSZ00,4,2                     ## @UCSZ00
	.comm	_UCSR0C,4,2                     ## @UCSR0C
	.comm	_tx_buffer_tail,8,3             ## @tx_buffer_tail
	.comm	_tx_buffer_head,8,3             ## @tx_buffer_head
	.comm	_rx_buffer_tail,8,3             ## @rx_buffer_tail
	.comm	_rx_buffer_head,8,3             ## @rx_buffer_head
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_uart_init                      ; -- Begin function uart_init
	.p2align	2
_uart_init:                             ; @uart_init
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x29, x30, [sp, #16]             ; 16-byte Folded Spill
	add	x29, sp, #16
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	mov	x19, x0
	bl	_cli
Lloh0:
	adrp	x8, _F_CPU@GOTPAGE
Lloh1:
	ldr	x8, [x8, _F_CPU@GOTPAGEOFF]
Lloh2:
	ldr	w8, [x8]
	add	w9, w8, #3
	cmp	w8, #0
	csel	w8, w9, w8, lt
	asr	w8, w8, #2
Lloh3:
	adrp	x9, _UBRR0@GOTPAGE
Lloh4:
	ldr	x9, [x9, _UBRR0@GOTPAGEOFF]
	sdiv	w8, w8, w19
	sub	w10, w8, #1
	cmp	w10, #0
	csel	w8, w8, w10, lt
Lloh5:
	adrp	x10, _U2X0@GOTPAGE
Lloh6:
	ldr	x10, [x10, _U2X0@GOTPAGEOFF]
	asr	w8, w8, #1
Lloh7:
	str	w8, [x9]
Lloh8:
	ldr	w8, [x10]
	mov	w9, #1
	lsl	w8, w9, w8
Lloh9:
	adrp	x10, _UCSR0A@GOTPAGE
Lloh10:
	ldr	x10, [x10, _UCSR0A@GOTPAGEOFF]
Lloh11:
	str	w8, [x10]
Lloh12:
	adrp	x8, _RXEN0@GOTPAGE
Lloh13:
	ldr	x8, [x8, _RXEN0@GOTPAGEOFF]
Lloh14:
	ldr	w8, [x8]
Lloh15:
	adrp	x10, _TXEN0@GOTPAGE
Lloh16:
	ldr	x10, [x10, _TXEN0@GOTPAGEOFF]
	lsl	w8, w9, w8
Lloh17:
	ldr	w10, [x10]
	lsl	w10, w9, w10
	orr	w8, w10, w8
Lloh18:
	adrp	x10, _RXCIE0@GOTPAGE
Lloh19:
	ldr	x10, [x10, _RXCIE0@GOTPAGEOFF]
Lloh20:
	ldr	w10, [x10]
	lsl	w10, w9, w10
	orr	w8, w8, w10
Lloh21:
	adrp	x10, _UCSR0B@GOTPAGE
Lloh22:
	ldr	x10, [x10, _UCSR0B@GOTPAGEOFF]
Lloh23:
	str	w8, [x10]
Lloh24:
	adrp	x8, _UCSZ01@GOTPAGE
Lloh25:
	ldr	x8, [x8, _UCSZ01@GOTPAGEOFF]
Lloh26:
	ldr	w8, [x8]
	lsl	w8, w9, w8
Lloh27:
	adrp	x10, _UCSZ00@GOTPAGE
Lloh28:
	ldr	x10, [x10, _UCSZ00@GOTPAGEOFF]
Lloh29:
	ldr	w10, [x10]
	lsl	w9, w9, w10
	orr	w8, w9, w8
Lloh30:
	adrp	x9, _UCSR0C@GOTPAGE
Lloh31:
	ldr	x9, [x9, _UCSR0C@GOTPAGEOFF]
Lloh32:
	str	w8, [x9]
Lloh33:
	adrp	x8, _tx_buffer_tail@GOTPAGE
Lloh34:
	ldr	x8, [x8, _tx_buffer_tail@GOTPAGEOFF]
Lloh35:
	str	xzr, [x8]
Lloh36:
	adrp	x8, _tx_buffer_head@GOTPAGE
Lloh37:
	ldr	x8, [x8, _tx_buffer_head@GOTPAGEOFF]
Lloh38:
	str	xzr, [x8]
Lloh39:
	adrp	x8, _rx_buffer_tail@GOTPAGE
Lloh40:
	ldr	x8, [x8, _rx_buffer_tail@GOTPAGEOFF]
Lloh41:
	str	xzr, [x8]
Lloh42:
	adrp	x8, _rx_buffer_head@GOTPAGE
Lloh43:
	ldr	x8, [x8, _rx_buffer_head@GOTPAGEOFF]
Lloh44:
	str	xzr, [x8]
	ldp	x29, x30, [sp, #16]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp], #32             ; 16-byte Folded Reload
	b	_sei
	.loh AdrpLdrGotStr	Lloh42, Lloh43, Lloh44
	.loh AdrpLdrGotStr	Lloh39, Lloh40, Lloh41
	.loh AdrpLdrGotStr	Lloh36, Lloh37, Lloh38
	.loh AdrpLdrGotStr	Lloh33, Lloh34, Lloh35
	.loh AdrpLdrGotStr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotStr	Lloh21, Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotStr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh8
	.loh AdrpLdrGotStr	Lloh3, Lloh4, Lloh7
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.cfi_endproc
                                        ; -- End function
	.comm	_F_CPU,4,2                      ; @F_CPU
	.comm	_UBRR0,4,2                      ; @UBRR0
	.comm	_U2X0,4,2                       ; @U2X0
	.comm	_UCSR0A,4,2                     ; @UCSR0A
	.comm	_RXEN0,4,2                      ; @RXEN0
	.comm	_TXEN0,4,2                      ; @TXEN0
	.comm	_RXCIE0,4,2                     ; @RXCIE0
	.comm	_UCSR0B,4,2                     ; @UCSR0B
	.comm	_UCSZ01,4,2                     ; @UCSZ01
	.comm	_UCSZ00,4,2                     ; @UCSZ00
	.comm	_UCSR0C,4,2                     ; @UCSR0C
	.comm	_tx_buffer_tail,8,3             ; @tx_buffer_tail
	.comm	_tx_buffer_head,8,3             ; @tx_buffer_head
	.comm	_rx_buffer_tail,8,3             ; @rx_buffer_tail
	.comm	_rx_buffer_head,8,3             ; @rx_buffer_head
.subsections_via_symbols
