	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function bfin_mac_hard_start_xmit
_bfin_mac_hard_start_xmit:              ## @bfin_mac_hard_start_xmit
	.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	%rbx
	pushq	%rax
	.cfi_offset %rbx, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
	movq	_current_tx_ptr@GOTPCREL(%rip), %r15
	movq	(%r15), %rax
	movq	%rbx, 32(%rax)
	movl	%edi, %ecx
	andl	$3, %ecx
	cmpl	$2, %ecx
	jne	LBB0_2
## %bb.1:
	movslq	(%rbx), %rcx
	movq	%rcx, -8(%rdi)
	addq	$-8, %rdi
	movl	%edi, 16(%rax)
	leal	(%rdi,%rcx,4), %esi
	addl	$16, %esi
	jmp	LBB0_5
LBB0_2:
	movslq	(%rbx), %rdx
	movslq	(%rax), %rdi
	movq	%rdx, (%rdi)
	addq	$2, %rdi
	movq	8(%rbx), %rsi
                                        ## kill: def $edx killed $edx killed $rdx
	callq	_memcpy
	movq	(%r15), %rax
	movl	(%rax), %edi
	movl	%edi, 16(%rax)
	cmpq	$0, 24(%rax)
	je	LBB0_4
## %bb.3:
	movq	$0, 24(%rax)
LBB0_4:
	movl	(%rbx), %eax
	leal	(%rdi,%rax), %esi
	addl	$2, %esi
LBB0_5:
                                        ## kill: def $edi killed $edi killed $rdi
	callq	_blackfin_dcache_flush_range
	xorl	%eax, %eax
	callq	_SSYNC
	movq	_DMAEN@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	(%r15), %rcx
	orl	%eax, 20(%rcx)
	xorl	%eax, %eax
	callq	_bfin_read_DMA2_IRQ_STATUS
	movq	_DMA_RUN@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	jne	LBB0_7
## %bb.6:
	movq	(%r15), %rdi
	addq	$16, %rdi
	callq	_bfin_write_DMA2_NEXT_DESC_PTR
	movq	(%r15), %rax
	movl	20(%rax), %edi
	callq	_bfin_write_DMA2_CONFIG
	xorl	%eax, %eax
	callq	_bfin_read_EMAC_OPMODE
	movq	_TE@GOTPCREL(%rip), %rcx
	orl	(%rcx), %eax
	movl	%eax, %edi
	callq	_bfin_write_EMAC_OPMODE
LBB0_7:
	xorl	%eax, %eax
	callq	_adjust_tx_list
	movq	(%r15), %rax
	movq	8(%rax), %rax
	movq	%rax, (%r15)
	movq	_jiffies@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 8(%r14)
	incl	4(%r14)
	movl	(%rbx), %eax
	addl	%eax, (%r14)
	movq	_NETDEV_TX_OK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_current_tx_ptr,8,3             ## @current_tx_ptr
	.comm	_DMAEN,4,2                      ## @DMAEN
	.comm	_DMA_RUN,4,2                    ## @DMA_RUN
	.comm	_TE,4,2                         ## @TE
	.comm	_jiffies,4,2                    ## @jiffies
	.comm	_NETDEV_TX_OK,4,2               ## @NETDEV_TX_OK
	.no_dead_strip	_bfin_mac_hard_start_xmit
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function bfin_mac_hard_start_xmit
_bfin_mac_hard_start_xmit:              ; @bfin_mac_hard_start_xmit
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-48]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 48
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #32]             ; 16-byte Folded Spill
	add	x29, sp, #32
	.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
	mov	x19, x1
	mov	x20, x0
	ldr	x0, [x0, #8]
Lloh0:
	adrp	x21, _current_tx_ptr@GOTPAGE
Lloh1:
	ldr	x21, [x21, _current_tx_ptr@GOTPAGEOFF]
	ldr	x8, [x21]
	str	x20, [x8, #32]
	and	x9, x0, #0x3
	cmp	x9, #2
	b.ne	LBB0_2
; %bb.1:
	ldrsw	x9, [x20]
	str	x9, [x0, #-8]!
	str	w0, [x8, #16]
	add	w8, w0, w9, lsl #2
	add	w1, w8, #16
                                        ; kill: def $w0 killed $w0 killed $x0
	b	LBB0_5
LBB0_2:
	ldrsw	x2, [x20]
	ldrsw	x0, [x8]
	str	x2, [x0], #2
	ldr	x1, [x20, #8]
                                        ; kill: def $w2 killed $w2 killed $x2
	bl	_memcpy
	ldr	x8, [x21]
	ldr	w0, [x8]
	str	w0, [x8, #16]
	ldr	x9, [x8, #24]
	cbz	x9, LBB0_4
; %bb.3:
	str	xzr, [x8, #24]
LBB0_4:
	ldr	w8, [x20]
	add	w8, w0, w8
	add	w1, w8, #2
LBB0_5:
	bl	_blackfin_dcache_flush_range
	bl	_SSYNC
Lloh2:
	adrp	x8, _DMAEN@GOTPAGE
Lloh3:
	ldr	x8, [x8, _DMAEN@GOTPAGEOFF]
Lloh4:
	ldr	w8, [x8]
	ldr	x9, [x21]
	ldr	w10, [x9, #20]
	orr	w8, w10, w8
	str	w8, [x9, #20]
	bl	_bfin_read_DMA2_IRQ_STATUS
Lloh5:
	adrp	x8, _DMA_RUN@GOTPAGE
Lloh6:
	ldr	x8, [x8, _DMA_RUN@GOTPAGEOFF]
Lloh7:
	ldr	w8, [x8]
	tst	w8, w0
	b.ne	LBB0_7
; %bb.6:
	ldr	x8, [x21]
	add	x0, x8, #16
	bl	_bfin_write_DMA2_NEXT_DESC_PTR
	ldr	x8, [x21]
	ldr	w0, [x8, #20]
	bl	_bfin_write_DMA2_CONFIG
	bl	_bfin_read_EMAC_OPMODE
Lloh8:
	adrp	x8, _TE@GOTPAGE
Lloh9:
	ldr	x8, [x8, _TE@GOTPAGEOFF]
Lloh10:
	ldr	w8, [x8]
	orr	w0, w8, w0
	bl	_bfin_write_EMAC_OPMODE
LBB0_7:
	bl	_adjust_tx_list
	ldr	x8, [x21]
	ldr	x8, [x8, #8]
	str	x8, [x21]
Lloh11:
	adrp	x8, _jiffies@GOTPAGE
Lloh12:
	ldr	x8, [x8, _jiffies@GOTPAGEOFF]
Lloh13:
	ldr	w8, [x8]
	str	w8, [x19, #8]
	ldr	d0, [x19]
	movi.2s	v1, #1
	ld1.s	{ v1 }[0], [x20]
	add.2s	v0, v0, v1
	str	d0, [x19]
Lloh14:
	adrp	x8, _NETDEV_TX_OK@GOTPAGE
Lloh15:
	ldr	x8, [x8, _NETDEV_TX_OK@GOTPAGEOFF]
Lloh16:
	ldr	w0, [x8]
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh8, Lloh9, Lloh10
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGotLdr	Lloh11, Lloh12, Lloh13
	.cfi_endproc
                                        ; -- End function
	.comm	_current_tx_ptr,8,3             ; @current_tx_ptr
	.comm	_DMAEN,4,2                      ; @DMAEN
	.comm	_DMA_RUN,4,2                    ; @DMA_RUN
	.comm	_TE,4,2                         ; @TE
	.comm	_jiffies,4,2                    ; @jiffies
	.comm	_NETDEV_TX_OK,4,2               ; @NETDEV_TX_OK
	.no_dead_strip	_bfin_mac_hard_start_xmit
.subsections_via_symbols
