	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_uart_putchar                   ## -- Begin function uart_putchar
	.p2align	4, 0x90
_uart_putchar:                          ## @uart_putchar
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movq	_tx_buffer_head@GOTPCREL(%rip), %rax
	movslq	(%rax), %rdx
	incq	%rdx
	movq	_TX_BUFFER_SIZE@GOTPCREL(%rip), %rsi
	xorl	%ecx, %ecx
	cmpq	%rdx, (%rsi)
	cmovaq	%rdx, %rcx
	movq	_tx_buffer_tail@GOTPCREL(%rip), %rdx
	cmpq	%rcx, (%rdx)
	jne	LBB0_2
	.p2align	4, 0x90
LBB0_1:                                 ## =>This Inner Loop Header: Depth=1
	jmp	LBB0_1
LBB0_2:
	movq	_tx_buffer@GOTPCREL(%rip), %rdx
	movq	(%rdx), %rdx
	movq	%rdi, (%rdx,%rcx,8)
	movl	%ecx, (%rax)
	movq	_RXEN0@GOTPCREL(%rip), %rax
	movb	(%rax), %al
	movq	_TXEN0@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	movl	$1, %edx
	shll	%cl, %edx
	btsl	%eax, %edx
	movq	_RXCIE0@GOTPCREL(%rip), %rax
	movb	(%rax), %al
	btsl	%eax, %edx
	movq	_UDRIE0@GOTPCREL(%rip), %rax
	movb	(%rax), %al
	btsl	%eax, %edx
	movq	_UCSR0B@GOTPCREL(%rip), %rax
	movl	%edx, (%rax)
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_tx_buffer_head,4,2             ## @tx_buffer_head
	.comm	_TX_BUFFER_SIZE,8,3             ## @TX_BUFFER_SIZE
	.comm	_tx_buffer_tail,8,3             ## @tx_buffer_tail
	.comm	_tx_buffer,8,3                  ## @tx_buffer
	.comm	_RXEN0,4,2                      ## @RXEN0
	.comm	_TXEN0,4,2                      ## @TXEN0
	.comm	_RXCIE0,4,2                     ## @RXCIE0
	.comm	_UDRIE0,4,2                     ## @UDRIE0
	.comm	_UCSR0B,4,2                     ## @UCSR0B
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_uart_putchar                   ; -- Begin function uart_putchar
	.p2align	2
_uart_putchar:                          ; @uart_putchar
	.cfi_startproc
; %bb.0:
Lloh0:
	adrp	x8, _tx_buffer_head@GOTPAGE
Lloh1:
	ldr	x8, [x8, _tx_buffer_head@GOTPAGEOFF]
	ldrsw	x9, [x8]
	add	x10, x9, #1
Lloh2:
	adrp	x11, _TX_BUFFER_SIZE@GOTPAGE
Lloh3:
	ldr	x11, [x11, _TX_BUFFER_SIZE@GOTPAGEOFF]
Lloh4:
	ldr	x11, [x11]
	cmp	x11, x10
	csinc	x9, xzr, x9, ls
Lloh5:
	adrp	x10, _tx_buffer_tail@GOTPAGE
Lloh6:
	ldr	x10, [x10, _tx_buffer_tail@GOTPAGEOFF]
Lloh7:
	ldr	x10, [x10]
	cmp	x10, x9
	b.ne	LBB0_2
LBB0_1:                                 ; =>This Inner Loop Header: Depth=1
	b	LBB0_1
LBB0_2:
Lloh8:
	adrp	x10, _tx_buffer@GOTPAGE
Lloh9:
	ldr	x10, [x10, _tx_buffer@GOTPAGEOFF]
Lloh10:
	ldr	x10, [x10]
	str	x0, [x10, x9, lsl #3]
	str	w9, [x8]
Lloh11:
	adrp	x8, _RXEN0@GOTPAGE
Lloh12:
	ldr	x8, [x8, _RXEN0@GOTPAGEOFF]
Lloh13:
	ldr	w8, [x8]
	mov	w9, #1
	lsl	w8, w9, w8
Lloh14:
	adrp	x10, _TXEN0@GOTPAGE
Lloh15:
	ldr	x10, [x10, _TXEN0@GOTPAGEOFF]
Lloh16:
	ldr	w10, [x10]
	lsl	w10, w9, w10
Lloh17:
	adrp	x11, _RXCIE0@GOTPAGE
Lloh18:
	ldr	x11, [x11, _RXCIE0@GOTPAGEOFF]
	orr	w8, w10, w8
Lloh19:
	ldr	w10, [x11]
	lsl	w10, w9, w10
	orr	w8, w8, w10
Lloh20:
	adrp	x10, _UDRIE0@GOTPAGE
Lloh21:
	ldr	x10, [x10, _UDRIE0@GOTPAGEOFF]
Lloh22:
	ldr	w10, [x10]
	lsl	w9, w9, w10
	orr	w8, w8, w9
Lloh23:
	adrp	x9, _UCSR0B@GOTPAGE
Lloh24:
	ldr	x9, [x9, _UCSR0B@GOTPAGEOFF]
Lloh25:
	str	w8, [x9]
	ret
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGotStr	Lloh23, Lloh24, Lloh25
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGotLdr	Lloh17, Lloh18, Lloh19
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGotLdr	Lloh11, Lloh12, Lloh13
	.loh AdrpLdrGotLdr	Lloh8, Lloh9, Lloh10
	.cfi_endproc
                                        ; -- End function
	.comm	_tx_buffer_head,4,2             ; @tx_buffer_head
	.comm	_TX_BUFFER_SIZE,8,3             ; @TX_BUFFER_SIZE
	.comm	_tx_buffer_tail,8,3             ; @tx_buffer_tail
	.comm	_tx_buffer,8,3                  ; @tx_buffer
	.comm	_RXEN0,4,2                      ; @RXEN0
	.comm	_TXEN0,4,2                      ; @TXEN0
	.comm	_RXCIE0,4,2                     ; @RXCIE0
	.comm	_UDRIE0,4,2                     ; @UDRIE0
	.comm	_UCSR0B,4,2                     ; @UCSR0B
.subsections_via_symbols
