	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_nes_mh_fix                     ## -- Begin function nes_mh_fix
	.p2align	4, 0x90
_nes_mh_fix:                            ## @nes_mh_fix
	.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
	movq	%rdi, %r13
	movq	8(%rdi), %r12
	leaq	24(%r12), %rbx
	movq	%rbx, %rdi
	callq	_spin_lock_irqsave
	movq	(%r12), %rax
	movq	(%rax), %rcx
	movq	_NES_MAC_SW_IDLE@GOTPCREL(%rip), %r15
	cmpq	(%r15), %rcx
	jne	LBB0_2
## %bb.1:
	movq	32(%r12), %rcx
	cmpq	$0, (%rcx)
	je	LBB0_3
LBB0_2:
	movq	%rbx, %rdi
	callq	_spin_unlock_irqrestore
LBB0_26:
	movq	_jiffies@GOTPCREL(%rip), %rax
	movq	_HZ@GOTPCREL(%rip), %rcx
	movslq	(%rcx), %rcx
	imulq	$1717986919, %rcx, %rcx         ## imm = 0x66666667
	movq	%rcx, %rdx
	shrq	$63, %rdx
	sarq	$33, %rcx
	addl	%edx, %ecx
	movslq	%ecx, %rcx
	addq	(%rax), %rcx
	movq	8(%r13), %rdi
	movq	%rcx, 8(%rdi)
	addq	$8, %rdi
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_add_timer                      ## TAILCALL
LBB0_3:
	movq	_NES_MAC_SW_MH@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movq	%rcx, (%rax)
	movq	%rbx, %rdi
	callq	_spin_unlock_irqrestore
	movq	_NES_IDX_MAC_TX_FRAMES_LOW@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, %r14d
	movq	_NES_IDX_MAC_TX_FRAMES_HIGH@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
	movq	_NES_IDX_MAC_TX_PAUSE_FRAMES@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, %ebx
	movq	_NES_IDX_USED_CHUNKS_TX@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	addl	%ebx, 24(%r13)
	movl	%eax, %ebx
	movq	32(%r13), %rax
	movq	(%rax), %rdi
	testq	%rdi, %rdi
	je	LBB0_25
## %bb.4:
	movl	%r14d, %r15d
	movl	(%r13), %r14d
	callq	_netdev_priv
	movq	(%rax), %rdx
	movzbl	%bl, %eax
	movl	%r14d, %r8d
	movzbl	%r14b, %ecx
	cmpl	%ecx, %eax
	setb	%cl
	xorl	%esi, %esi
	cmpl	$255, (%rdx)
	movl	%ebx, %edi
	setne	%bl
	movl	$65280, %eax                    ## imm = 0xFF00
	cmovel	%esi, %eax
	andb	%cl, %bl
	movzbl	%bl, %r10d
	cmpl	$255, 4(%rdx)
	jne	LBB0_6
## %bb.5:
	movl	%edi, %ecx
	jmp	LBB0_7
LBB0_6:
	orl	$255, %eax
	movl	%edi, %ecx
	movzbl	%ch, %esi
	movl	%r8d, %ebx
	movzbl	%bh, %edi
	cmpl	%edi, %esi
	movl	$1, %esi
	cmovbl	%esi, %r10d
LBB0_7:
	movl	%r15d, %r9d
	movq	_NES_MAC_SW_IDLE@GOTPCREL(%rip), %r15
	shll	$8, %eax
	cmpl	$255, 8(%rdx)
	je	LBB0_9
## %bb.8:
	movl	%r8d, %esi
	shrl	$16, %esi
	movl	%ecx, %edi
	shrl	$16, %edi
	orl	$255, %eax
	movzbl	%dil, %edi
	movzbl	%sil, %esi
	cmpl	%esi, %edi
	movl	$1, %esi
	cmovbl	%esi, %r10d
LBB0_9:
	shll	$8, %eax
	cmpl	$255, 12(%rdx)
	je	LBB0_11
## %bb.10:
	shrl	$24, %r8d
	movl	%ecx, %edx
	shrl	$24, %edx
	orl	$255, %eax
	cmpl	%r8d, %edx
	movl	$1, %edx
	cmovbl	%edx, %r10d
LBB0_11:
	testl	%r9d, %r9d
	jne	LBB0_16
## %bb.12:
	cmpl	$0, -44(%rbp)                   ## 4-byte Folded Reload
	jne	LBB0_16
## %bb.13:
	movl	%ecx, %edx
	andl	%eax, %edx
	je	LBB0_16
## %bb.14:
	testl	%eax, (%r13)
	je	LBB0_16
## %bb.15:
	testl	%r10d, %r10d
	jne	LBB0_16
## %bb.17:
	movl	%ecx, (%r13)
	xorl	%eax, %eax
	callq	_barrier
	movq	_NES_IDX_MAC_TX_CONTROL@GOTPCREL(%rip), %r14
	movl	(%r14), %esi
	movq	%r13, %rdi
	movl	$5, %edx
	callq	_nes_write_indexed
	movq	_mh_pauses_sent@GOTPCREL(%rip), %rax
	incl	(%rax)
	movq	_NES_IDX_MAC_TX_PAUSE_FRAMES@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	testl	%eax, %eax
	je	LBB0_19
## %bb.18:
	addl	%eax, 24(%r13)
	jmp	LBB0_25
LBB0_16:
	movl	%ecx, (%r13)
LBB0_25:
	movq	(%r15), %rax
	movq	(%r12), %rcx
	movq	%rax, (%rcx)
	jmp	LBB0_26
LBB0_19:
	movl	(%r14), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
	movq	_NES_IDX_MAC_TX_CONFIG@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, -68(%rbp)                 ## 4-byte Spill
	movq	_NES_IDX_MAC_TX_PAUSE_QUANTA@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, -64(%rbp)                 ## 4-byte Spill
	movq	_NES_IDX_MAC_RX_CONTROL@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, -60(%rbp)                 ## 4-byte Spill
	movq	_NES_IDX_MAC_RX_CONFIG@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, -56(%rbp)                 ## 4-byte Spill
	movq	_NES_IDX_MAC_EXACT_MATCH_BOTTOM@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, %ebx
	movq	_NES_IDX_MPP_DEBUG@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movl	%eax, %r14d
	movq	_NES_IDX_MAC_TX_PAUSE_FRAMES@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	testl	%eax, %eax
	je	LBB0_21
## %bb.20:
	movl	24(%r13), %eax
	movl	%eax, 28(%r13)
	movq	_NES_DBG_HW@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	L_.str(%rip), %rsi
	callq	_nes_debug
	jmp	LBB0_25
LBB0_21:
	movl	%r14d, -48(%rbp)                ## 4-byte Spill
	movl	%ebx, -52(%rbp)                 ## 4-byte Spill
	movq	_mh_detected@GOTPCREL(%rip), %rax
	incl	(%rax)
	movq	_NES_IDX_MAC_TX_CONTROL@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	xorl	%edx, %edx
	callq	_nes_write_indexed
	movq	_NES_IDX_MAC_TX_CONFIG@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	xorl	%edx, %edx
	callq	_nes_write_indexed
	movq	_NES_SOFTWARE_RESET@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rdi
	addq	16(%r13), %rdi
	callq	_nes_read32
	movq	(%rbx), %rdi
	addq	16(%r13), %rdi
	orl	$29, %eax
	movl	%eax, %esi
	callq	_nes_write32
	movl	$4, %r14d
LBB0_22:                                ## =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rdi
	addq	16(%r13), %rdi
	callq	_nes_read32
	testb	$64, %al
	jne	LBB0_24
## %bb.23:                              ##   in Loop: Header=BB0_22 Depth=1
	leal	1(%r14), %eax
	cmpl	$5000, %r14d                    ## imm = 0x1388
	movl	%eax, %r14d
	jb	LBB0_22
LBB0_24:
	movq	_NES_IDX_ETH_SERDES_COMMON_CONTROL0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	$8, %edx
	callq	_nes_write_indexed
	movq	_NES_IDX_ETH_SERDES_COMMON_STATUS0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movq	_NES_IDX_ETH_SERDES_TX_EMP0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	$777975, %edx                   ## imm = 0xBDEF7
	callq	_nes_write_indexed
	movq	_NES_IDX_ETH_SERDES_TX_DRIVE0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	$-1662570496, %edx              ## imm = 0x9CE73000
	callq	_nes_write_indexed
	movq	_NES_IDX_ETH_SERDES_RX_MODE0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	$267386880, %edx                ## imm = 0xFF00000
	callq	_nes_write_indexed
	movq	_NES_IDX_ETH_SERDES_RX_SIGDET0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	xorl	%edx, %edx
	callq	_nes_write_indexed
	movq	_NES_IDX_ETH_SERDES_BYPASS0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	xorl	%edx, %edx
	callq	_nes_write_indexed
	movq	_NES_IDX_ETH_SERDES_LOOPBACK_CONTROL0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	xorl	%edx, %edx
	callq	_nes_write_indexed
	cmpq	$0, 16(%r12)
	movq	_NES_IDX_ETH_SERDES_RX_EQ_CONTROL0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	$-268164574, %eax               ## imm = 0xF0042222
	movl	$-266853854, %edx               ## imm = 0xF0182222
	cmovel	%eax, %edx
	movq	%r13, %rdi
	callq	_nes_write_indexed
	movq	_NES_IDX_ETH_SERDES_RX_EQ_STATUS0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	callq	_nes_read_indexed
	movq	_NES_IDX_ETH_SERDES_CDR_CONTROL0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	$255, %edx
	callq	_nes_write_indexed
	movq	_NES_IDX_MAC_TX_CONTROL@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	-44(%rbp), %edx                 ## 4-byte Reload
	callq	_nes_write_indexed
	movq	_NES_IDX_MAC_TX_CONFIG@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	-68(%rbp), %edx                 ## 4-byte Reload
	callq	_nes_write_indexed
	movq	_NES_IDX_MAC_TX_PAUSE_QUANTA@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	-64(%rbp), %edx                 ## 4-byte Reload
	callq	_nes_write_indexed
	movq	_NES_IDX_MAC_RX_CONTROL@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	-60(%rbp), %edx                 ## 4-byte Reload
	callq	_nes_write_indexed
	movq	_NES_IDX_MAC_RX_CONFIG@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	-56(%rbp), %edx                 ## 4-byte Reload
	callq	_nes_write_indexed
	movq	_NES_IDX_MAC_EXACT_MATCH_BOTTOM@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	-52(%rbp), %edx                 ## 4-byte Reload
	callq	_nes_write_indexed
	movq	_NES_IDX_MPP_DEBUG@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	-48(%rbp), %edx                 ## 4-byte Reload
	callq	_nes_write_indexed
	jmp	LBB0_25
	.cfi_endproc
                                        ## -- End function
	.comm	_NES_MAC_SW_IDLE,8,3            ## @NES_MAC_SW_IDLE
	.comm	_NES_MAC_SW_MH,8,3              ## @NES_MAC_SW_MH
	.comm	_NES_IDX_MAC_TX_FRAMES_LOW,4,2  ## @NES_IDX_MAC_TX_FRAMES_LOW
	.comm	_NES_IDX_MAC_TX_FRAMES_HIGH,4,2 ## @NES_IDX_MAC_TX_FRAMES_HIGH
	.comm	_NES_IDX_MAC_TX_PAUSE_FRAMES,4,2 ## @NES_IDX_MAC_TX_PAUSE_FRAMES
	.comm	_NES_IDX_USED_CHUNKS_TX,4,2     ## @NES_IDX_USED_CHUNKS_TX
	.comm	_NES_IDX_MAC_TX_CONTROL,4,2     ## @NES_IDX_MAC_TX_CONTROL
	.comm	_mh_pauses_sent,4,2             ## @mh_pauses_sent
	.comm	_NES_IDX_MAC_TX_CONFIG,4,2      ## @NES_IDX_MAC_TX_CONFIG
	.comm	_NES_IDX_MAC_TX_PAUSE_QUANTA,4,2 ## @NES_IDX_MAC_TX_PAUSE_QUANTA
	.comm	_NES_IDX_MAC_RX_CONTROL,4,2     ## @NES_IDX_MAC_RX_CONTROL
	.comm	_NES_IDX_MAC_RX_CONFIG,4,2      ## @NES_IDX_MAC_RX_CONFIG
	.comm	_NES_IDX_MAC_EXACT_MATCH_BOTTOM,4,2 ## @NES_IDX_MAC_EXACT_MATCH_BOTTOM
	.comm	_NES_IDX_MPP_DEBUG,4,2          ## @NES_IDX_MPP_DEBUG
	.comm	_NES_DBG_HW,4,2                 ## @NES_DBG_HW
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"failsafe caught slow outbound pause\n"

	.comm	_mh_detected,4,2                ## @mh_detected
	.comm	_NES_SOFTWARE_RESET,8,3         ## @NES_SOFTWARE_RESET
	.comm	_NES_IDX_ETH_SERDES_COMMON_CONTROL0,4,2 ## @NES_IDX_ETH_SERDES_COMMON_CONTROL0
	.comm	_NES_IDX_ETH_SERDES_COMMON_STATUS0,4,2 ## @NES_IDX_ETH_SERDES_COMMON_STATUS0
	.comm	_NES_IDX_ETH_SERDES_TX_EMP0,4,2 ## @NES_IDX_ETH_SERDES_TX_EMP0
	.comm	_NES_IDX_ETH_SERDES_TX_DRIVE0,4,2 ## @NES_IDX_ETH_SERDES_TX_DRIVE0
	.comm	_NES_IDX_ETH_SERDES_RX_MODE0,4,2 ## @NES_IDX_ETH_SERDES_RX_MODE0
	.comm	_NES_IDX_ETH_SERDES_RX_SIGDET0,4,2 ## @NES_IDX_ETH_SERDES_RX_SIGDET0
	.comm	_NES_IDX_ETH_SERDES_BYPASS0,4,2 ## @NES_IDX_ETH_SERDES_BYPASS0
	.comm	_NES_IDX_ETH_SERDES_LOOPBACK_CONTROL0,4,2 ## @NES_IDX_ETH_SERDES_LOOPBACK_CONTROL0
	.comm	_NES_IDX_ETH_SERDES_RX_EQ_CONTROL0,4,2 ## @NES_IDX_ETH_SERDES_RX_EQ_CONTROL0
	.comm	_NES_IDX_ETH_SERDES_RX_EQ_STATUS0,4,2 ## @NES_IDX_ETH_SERDES_RX_EQ_STATUS0
	.comm	_NES_IDX_ETH_SERDES_CDR_CONTROL0,4,2 ## @NES_IDX_ETH_SERDES_CDR_CONTROL0
	.comm	_jiffies,8,3                    ## @jiffies
	.comm	_HZ,4,2                         ## @HZ
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_nes_mh_fix                     ; -- Begin function nes_mh_fix
	.p2align	2
_nes_mh_fix:                            ; @nes_mh_fix
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #128
	.cfi_def_cfa_offset 128
	stp	x28, x27, [sp, #32]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #48]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #64]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #80]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #96]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #112]            ; 16-byte Folded Spill
	add	x29, sp, #112
	.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	x19, x0
	ldr	x27, [x0, #8]
	add	x20, x27, #24
	mov	x0, x20
	bl	_spin_lock_irqsave
	ldr	x8, [x27]
	ldr	x9, [x8]
Lloh0:
	adrp	x28, _NES_MAC_SW_IDLE@GOTPAGE
Lloh1:
	ldr	x28, [x28, _NES_MAC_SW_IDLE@GOTPAGEOFF]
	ldr	x10, [x28]
	cmp	x9, x10
	b.ne	LBB0_2
; %bb.1:
	ldr	x9, [x27, #32]
	ldr	x9, [x9]
	cbz	x9, LBB0_4
LBB0_2:
	mov	x0, x20
	bl	_spin_unlock_irqrestore
LBB0_3:
Lloh2:
	adrp	x8, _jiffies@GOTPAGE
Lloh3:
	ldr	x8, [x8, _jiffies@GOTPAGEOFF]
Lloh4:
	adrp	x9, _HZ@GOTPAGE
Lloh5:
	ldr	x9, [x9, _HZ@GOTPAGEOFF]
Lloh6:
	ldr	x8, [x8]
Lloh7:
	ldrsw	x9, [x9]
	mov	w10, #26215
	movk	w10, #26214, lsl #16
	mul	x9, x9, x10
	lsr	x10, x9, #63
	asr	x9, x9, #33
	add	w9, w9, w10
	add	x8, x8, w9, sxtw
	ldr	x0, [x19, #8]
	str	x8, [x0, #8]!
	ldp	x29, x30, [sp, #112]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #96]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #80]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #64]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #48]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #32]             ; 16-byte Folded Reload
	add	sp, sp, #128
	b	_add_timer
LBB0_4:
Lloh8:
	adrp	x9, _NES_MAC_SW_MH@GOTPAGE
Lloh9:
	ldr	x9, [x9, _NES_MAC_SW_MH@GOTPAGEOFF]
Lloh10:
	ldr	x9, [x9]
	str	x9, [x8]
	mov	x0, x20
	bl	_spin_unlock_irqrestore
Lloh11:
	adrp	x8, _NES_IDX_MAC_TX_FRAMES_LOW@GOTPAGE
Lloh12:
	ldr	x8, [x8, _NES_IDX_MAC_TX_FRAMES_LOW@GOTPAGEOFF]
Lloh13:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x20, x0
Lloh14:
	adrp	x8, _NES_IDX_MAC_TX_FRAMES_HIGH@GOTPAGE
Lloh15:
	ldr	x8, [x8, _NES_IDX_MAC_TX_FRAMES_HIGH@GOTPAGEOFF]
Lloh16:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x21, x0
Lloh17:
	adrp	x24, _NES_IDX_MAC_TX_PAUSE_FRAMES@GOTPAGE
Lloh18:
	ldr	x24, [x24, _NES_IDX_MAC_TX_PAUSE_FRAMES@GOTPAGEOFF]
	ldr	w1, [x24]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x23, x0
Lloh19:
	adrp	x8, _NES_IDX_USED_CHUNKS_TX@GOTPAGE
Lloh20:
	ldr	x8, [x8, _NES_IDX_USED_CHUNKS_TX@GOTPAGEOFF]
Lloh21:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x22, x0
	ldr	w8, [x19, #24]
	add	w8, w8, w23
	str	w8, [x19, #24]
	ldr	x8, [x19, #32]
	ldr	x0, [x8]
	cbz	x0, LBB0_10
; %bb.5:
	ldr	w23, [x19]
	bl	_netdev_priv
	ldr	x8, [x0]
	and	w9, w22, #0xff
	cmp	w9, w23, uxtb
	cset	w9, lo
	mov	w10, #65280
	ldp	w11, w12, [x8]
	cmp	w11, #255
	csel	w10, wzr, w10, eq
	cset	w11, ne
	and	w9, w11, w9
	lsr	w11, w23, #8
	orr	w13, w10, #0xff
	ubfx	w14, w22, #8, #8
	cmp	w14, w11, uxtb
	csinc	w11, w9, wzr, hs
	cmp	w12, #255
	csel	w10, w10, w13, eq
	csel	w9, w9, w11, eq
	lsl	w10, w10, #8
	lsr	w11, w23, #16
	orr	w12, w10, #0xff
	ubfx	w13, w22, #16, #8
	cmp	w13, w11, uxtb
	csinc	w11, w9, wzr, hs
	ldp	w13, w8, [x8, #8]
	cmp	w13, #255
	csel	w10, w10, w12, eq
	csel	w11, w9, w11, eq
	lsl	w9, w10, #8
	lsr	w10, w22, #24
	orr	w12, w9, #0xff
	cmp	w10, w23, lsr #24
	csinc	w10, w11, wzr, hs
	cmp	w8, #255
	csel	w9, w9, w12, eq
	csel	w8, w11, w10, eq
	cbnz	w20, LBB0_9
; %bb.6:
	cbnz	w21, LBB0_9
; %bb.7:
	and	w10, w9, w22
	cbz	w10, LBB0_9
; %bb.8:
	ldr	w10, [x19]
	and	w9, w10, w9
	cmp	w9, #0
	ccmp	w8, #0, #0, ne
	b.eq	LBB0_11
LBB0_9:
	str	w22, [x19]
LBB0_10:
	ldr	x8, [x28]
	ldr	x9, [x27]
	str	x8, [x9]
	b	LBB0_3
LBB0_11:
	str	w22, [x19]
	bl	_barrier
Lloh22:
	adrp	x20, _NES_IDX_MAC_TX_CONTROL@GOTPAGE
Lloh23:
	ldr	x20, [x20, _NES_IDX_MAC_TX_CONTROL@GOTPAGEOFF]
	ldr	w1, [x20]
	mov	x0, x19
	mov	w2, #5
	bl	_nes_write_indexed
Lloh24:
	adrp	x8, _mh_pauses_sent@GOTPAGE
Lloh25:
	ldr	x8, [x8, _mh_pauses_sent@GOTPAGEOFF]
	ldr	w9, [x8]
	add	w9, w9, #1
	str	w9, [x8]
	ldr	w1, [x24]
	mov	x0, x19
	bl	_nes_read_indexed
	cbz	w0, LBB0_13
; %bb.12:
	ldr	w8, [x19, #24]
	add	w8, w8, w0
	str	w8, [x19, #24]
	b	LBB0_10
LBB0_13:
	ldr	w1, [x20]
	mov	x0, x19
	bl	_nes_read_indexed
	str	w0, [sp, #28]                   ; 4-byte Folded Spill
Lloh26:
	adrp	x8, _NES_IDX_MAC_TX_CONFIG@GOTPAGE
Lloh27:
	ldr	x8, [x8, _NES_IDX_MAC_TX_CONFIG@GOTPAGEOFF]
Lloh28:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x21, x0
Lloh29:
	adrp	x8, _NES_IDX_MAC_TX_PAUSE_QUANTA@GOTPAGE
Lloh30:
	ldr	x8, [x8, _NES_IDX_MAC_TX_PAUSE_QUANTA@GOTPAGEOFF]
Lloh31:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x25, x0
Lloh32:
	adrp	x8, _NES_IDX_MAC_RX_CONTROL@GOTPAGE
Lloh33:
	ldr	x8, [x8, _NES_IDX_MAC_RX_CONTROL@GOTPAGEOFF]
Lloh34:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x26, x0
Lloh35:
	adrp	x8, _NES_IDX_MAC_RX_CONFIG@GOTPAGE
Lloh36:
	ldr	x8, [x8, _NES_IDX_MAC_RX_CONFIG@GOTPAGEOFF]
Lloh37:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x20, x0
Lloh38:
	adrp	x8, _NES_IDX_MAC_EXACT_MATCH_BOTTOM@GOTPAGE
Lloh39:
	ldr	x8, [x8, _NES_IDX_MAC_EXACT_MATCH_BOTTOM@GOTPAGEOFF]
Lloh40:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x22, x0
Lloh41:
	adrp	x8, _NES_IDX_MPP_DEBUG@GOTPAGE
Lloh42:
	ldr	x8, [x8, _NES_IDX_MPP_DEBUG@GOTPAGEOFF]
Lloh43:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
	mov	x23, x0
	ldr	w1, [x24]
	mov	x0, x19
	bl	_nes_read_indexed
	cbz	w0, LBB0_15
; %bb.14:
	ldr	w8, [x19, #24]
	str	w8, [x19, #28]
Lloh44:
	adrp	x8, _NES_DBG_HW@GOTPAGE
Lloh45:
	ldr	x8, [x8, _NES_DBG_HW@GOTPAGEOFF]
Lloh46:
	ldr	w0, [x8]
Lloh47:
	adrp	x1, l_.str@PAGE
Lloh48:
	add	x1, x1, l_.str@PAGEOFF
	bl	_nes_debug
	b	LBB0_10
LBB0_15:
	stp	w23, w22, [sp, #4]              ; 8-byte Folded Spill
	stp	w20, w26, [sp, #12]             ; 8-byte Folded Spill
	stp	w25, w21, [sp, #20]             ; 8-byte Folded Spill
Lloh49:
	adrp	x8, _mh_detected@GOTPAGE
Lloh50:
	ldr	x8, [x8, _mh_detected@GOTPAGEOFF]
	ldr	w9, [x8]
	add	w9, w9, #1
	str	w9, [x8]
Lloh51:
	adrp	x20, _NES_IDX_MAC_TX_CONTROL@GOTPAGE
Lloh52:
	ldr	x20, [x20, _NES_IDX_MAC_TX_CONTROL@GOTPAGEOFF]
	ldr	w1, [x20]
	mov	x0, x19
	mov	w2, #0
	bl	_nes_write_indexed
Lloh53:
	adrp	x8, _NES_IDX_MAC_TX_CONFIG@GOTPAGE
Lloh54:
	ldr	x8, [x8, _NES_IDX_MAC_TX_CONFIG@GOTPAGEOFF]
Lloh55:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #0
	bl	_nes_write_indexed
	ldr	x8, [x19, #16]
Lloh56:
	adrp	x24, _NES_SOFTWARE_RESET@GOTPAGE
Lloh57:
	ldr	x24, [x24, _NES_SOFTWARE_RESET@GOTPAGEOFF]
	ldr	x9, [x24]
	add	x0, x9, x8
	bl	_nes_read32
	ldr	x8, [x19, #16]
	ldr	x9, [x24]
	add	x8, x9, x8
	mov	w9, #29
	orr	w1, w0, w9
	mov	x0, x8
	bl	_nes_write32
	mov	w22, #4
LBB0_16:                                ; =>This Inner Loop Header: Depth=1
	ldr	x8, [x19, #16]
	ldr	x9, [x24]
	add	x0, x9, x8
	bl	_nes_read32
	tbnz	w0, #6, LBB0_18
; %bb.17:                               ;   in Loop: Header=BB0_16 Depth=1
	lsr	w8, w22, #3
	add	w22, w22, #1
	cmp	w8, #625
	b.lo	LBB0_16
LBB0_18:
Lloh58:
	adrp	x8, _NES_IDX_ETH_SERDES_COMMON_CONTROL0@GOTPAGE
Lloh59:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_COMMON_CONTROL0@GOTPAGEOFF]
Lloh60:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #8
	bl	_nes_write_indexed
Lloh61:
	adrp	x8, _NES_IDX_ETH_SERDES_COMMON_STATUS0@GOTPAGE
Lloh62:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_COMMON_STATUS0@GOTPAGEOFF]
Lloh63:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
Lloh64:
	adrp	x8, _NES_IDX_ETH_SERDES_TX_EMP0@GOTPAGE
Lloh65:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_TX_EMP0@GOTPAGEOFF]
Lloh66:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #57079
	movk	w2, #11, lsl #16
	bl	_nes_write_indexed
Lloh67:
	adrp	x8, _NES_IDX_ETH_SERDES_TX_DRIVE0@GOTPAGE
Lloh68:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_TX_DRIVE0@GOTPAGEOFF]
Lloh69:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #12288
	movk	w2, #40167, lsl #16
	bl	_nes_write_indexed
Lloh70:
	adrp	x8, _NES_IDX_ETH_SERDES_RX_MODE0@GOTPAGE
Lloh71:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_RX_MODE0@GOTPAGEOFF]
Lloh72:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #267386880
	bl	_nes_write_indexed
Lloh73:
	adrp	x8, _NES_IDX_ETH_SERDES_RX_SIGDET0@GOTPAGE
Lloh74:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_RX_SIGDET0@GOTPAGEOFF]
Lloh75:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #0
	bl	_nes_write_indexed
Lloh76:
	adrp	x8, _NES_IDX_ETH_SERDES_BYPASS0@GOTPAGE
Lloh77:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_BYPASS0@GOTPAGEOFF]
Lloh78:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #0
	bl	_nes_write_indexed
Lloh79:
	adrp	x8, _NES_IDX_ETH_SERDES_LOOPBACK_CONTROL0@GOTPAGE
Lloh80:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_LOOPBACK_CONTROL0@GOTPAGEOFF]
Lloh81:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #0
	bl	_nes_write_indexed
Lloh82:
	adrp	x8, _NES_IDX_ETH_SERDES_RX_EQ_CONTROL0@GOTPAGE
Lloh83:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_RX_EQ_CONTROL0@GOTPAGEOFF]
	ldr	x9, [x27, #16]
Lloh84:
	ldr	w1, [x8]
	mov	w8, #8738
	movk	w8, #61444, lsl #16
	add	w10, w8, #320, lsl #12          ; =1310720
	cmp	x9, #0
	csel	w2, w8, w10, eq
	mov	x0, x19
	bl	_nes_write_indexed
Lloh85:
	adrp	x8, _NES_IDX_ETH_SERDES_RX_EQ_STATUS0@GOTPAGE
Lloh86:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_RX_EQ_STATUS0@GOTPAGEOFF]
Lloh87:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_nes_read_indexed
Lloh88:
	adrp	x8, _NES_IDX_ETH_SERDES_CDR_CONTROL0@GOTPAGE
Lloh89:
	ldr	x8, [x8, _NES_IDX_ETH_SERDES_CDR_CONTROL0@GOTPAGEOFF]
Lloh90:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #255
	bl	_nes_write_indexed
	ldr	w1, [x20]
	mov	x0, x19
	ldr	w2, [sp, #28]                   ; 4-byte Folded Reload
	bl	_nes_write_indexed
Lloh91:
	adrp	x8, _NES_IDX_MAC_TX_CONFIG@GOTPAGE
Lloh92:
	ldr	x8, [x8, _NES_IDX_MAC_TX_CONFIG@GOTPAGEOFF]
Lloh93:
	ldr	w1, [x8]
	mov	x0, x19
	ldr	w2, [sp, #24]                   ; 4-byte Folded Reload
	bl	_nes_write_indexed
Lloh94:
	adrp	x8, _NES_IDX_MAC_TX_PAUSE_QUANTA@GOTPAGE
Lloh95:
	ldr	x8, [x8, _NES_IDX_MAC_TX_PAUSE_QUANTA@GOTPAGEOFF]
Lloh96:
	ldr	w1, [x8]
	mov	x0, x19
	ldr	w2, [sp, #20]                   ; 4-byte Folded Reload
	bl	_nes_write_indexed
Lloh97:
	adrp	x8, _NES_IDX_MAC_RX_CONTROL@GOTPAGE
Lloh98:
	ldr	x8, [x8, _NES_IDX_MAC_RX_CONTROL@GOTPAGEOFF]
Lloh99:
	ldr	w1, [x8]
	mov	x0, x19
	ldr	w2, [sp, #16]                   ; 4-byte Folded Reload
	bl	_nes_write_indexed
Lloh100:
	adrp	x8, _NES_IDX_MAC_RX_CONFIG@GOTPAGE
Lloh101:
	ldr	x8, [x8, _NES_IDX_MAC_RX_CONFIG@GOTPAGEOFF]
Lloh102:
	ldr	w1, [x8]
	mov	x0, x19
	ldr	w2, [sp, #12]                   ; 4-byte Folded Reload
	bl	_nes_write_indexed
Lloh103:
	adrp	x8, _NES_IDX_MAC_EXACT_MATCH_BOTTOM@GOTPAGE
Lloh104:
	ldr	x8, [x8, _NES_IDX_MAC_EXACT_MATCH_BOTTOM@GOTPAGEOFF]
Lloh105:
	ldr	w1, [x8]
	mov	x0, x19
	ldr	w2, [sp, #8]                    ; 4-byte Folded Reload
	bl	_nes_write_indexed
Lloh106:
	adrp	x8, _NES_IDX_MPP_DEBUG@GOTPAGE
Lloh107:
	ldr	x8, [x8, _NES_IDX_MPP_DEBUG@GOTPAGEOFF]
Lloh108:
	ldr	w1, [x8]
	mov	x0, x19
	ldr	w2, [sp, #4]                    ; 4-byte Folded Reload
	bl	_nes_write_indexed
	b	LBB0_10
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh7
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh6
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh21
	.loh AdrpLdrGot	Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGotLdr	Lloh11, Lloh12, Lloh13
	.loh AdrpLdrGotLdr	Lloh8, Lloh9, Lloh10
	.loh AdrpLdrGot	Lloh24, Lloh25
	.loh AdrpLdrGot	Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh41, Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh26, Lloh27, Lloh28
	.loh AdrpAdd	Lloh47, Lloh48
	.loh AdrpLdrGotLdr	Lloh44, Lloh45, Lloh46
	.loh AdrpLdrGot	Lloh56, Lloh57
	.loh AdrpLdrGotLdr	Lloh53, Lloh54, Lloh55
	.loh AdrpLdrGot	Lloh51, Lloh52
	.loh AdrpLdrGot	Lloh49, Lloh50
	.loh AdrpLdrGotLdr	Lloh106, Lloh107, Lloh108
	.loh AdrpLdrGotLdr	Lloh103, Lloh104, Lloh105
	.loh AdrpLdrGotLdr	Lloh100, Lloh101, Lloh102
	.loh AdrpLdrGotLdr	Lloh97, Lloh98, Lloh99
	.loh AdrpLdrGotLdr	Lloh94, Lloh95, Lloh96
	.loh AdrpLdrGotLdr	Lloh91, Lloh92, Lloh93
	.loh AdrpLdrGotLdr	Lloh88, Lloh89, Lloh90
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpLdrGotLdr	Lloh82, Lloh83, Lloh84
	.loh AdrpLdrGotLdr	Lloh79, Lloh80, Lloh81
	.loh AdrpLdrGotLdr	Lloh76, Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh73, Lloh74, Lloh75
	.loh AdrpLdrGotLdr	Lloh70, Lloh71, Lloh72
	.loh AdrpLdrGotLdr	Lloh67, Lloh68, Lloh69
	.loh AdrpLdrGotLdr	Lloh64, Lloh65, Lloh66
	.loh AdrpLdrGotLdr	Lloh61, Lloh62, Lloh63
	.loh AdrpLdrGotLdr	Lloh58, Lloh59, Lloh60
	.cfi_endproc
                                        ; -- End function
	.comm	_NES_MAC_SW_IDLE,8,3            ; @NES_MAC_SW_IDLE
	.comm	_NES_MAC_SW_MH,8,3              ; @NES_MAC_SW_MH
	.comm	_NES_IDX_MAC_TX_FRAMES_LOW,4,2  ; @NES_IDX_MAC_TX_FRAMES_LOW
	.comm	_NES_IDX_MAC_TX_FRAMES_HIGH,4,2 ; @NES_IDX_MAC_TX_FRAMES_HIGH
	.comm	_NES_IDX_MAC_TX_PAUSE_FRAMES,4,2 ; @NES_IDX_MAC_TX_PAUSE_FRAMES
	.comm	_NES_IDX_USED_CHUNKS_TX,4,2     ; @NES_IDX_USED_CHUNKS_TX
	.comm	_NES_IDX_MAC_TX_CONTROL,4,2     ; @NES_IDX_MAC_TX_CONTROL
	.comm	_mh_pauses_sent,4,2             ; @mh_pauses_sent
	.comm	_NES_IDX_MAC_TX_CONFIG,4,2      ; @NES_IDX_MAC_TX_CONFIG
	.comm	_NES_IDX_MAC_TX_PAUSE_QUANTA,4,2 ; @NES_IDX_MAC_TX_PAUSE_QUANTA
	.comm	_NES_IDX_MAC_RX_CONTROL,4,2     ; @NES_IDX_MAC_RX_CONTROL
	.comm	_NES_IDX_MAC_RX_CONFIG,4,2      ; @NES_IDX_MAC_RX_CONFIG
	.comm	_NES_IDX_MAC_EXACT_MATCH_BOTTOM,4,2 ; @NES_IDX_MAC_EXACT_MATCH_BOTTOM
	.comm	_NES_IDX_MPP_DEBUG,4,2          ; @NES_IDX_MPP_DEBUG
	.comm	_NES_DBG_HW,4,2                 ; @NES_DBG_HW
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"failsafe caught slow outbound pause\n"

	.comm	_mh_detected,4,2                ; @mh_detected
	.comm	_NES_SOFTWARE_RESET,8,3         ; @NES_SOFTWARE_RESET
	.comm	_NES_IDX_ETH_SERDES_COMMON_CONTROL0,4,2 ; @NES_IDX_ETH_SERDES_COMMON_CONTROL0
	.comm	_NES_IDX_ETH_SERDES_COMMON_STATUS0,4,2 ; @NES_IDX_ETH_SERDES_COMMON_STATUS0
	.comm	_NES_IDX_ETH_SERDES_TX_EMP0,4,2 ; @NES_IDX_ETH_SERDES_TX_EMP0
	.comm	_NES_IDX_ETH_SERDES_TX_DRIVE0,4,2 ; @NES_IDX_ETH_SERDES_TX_DRIVE0
	.comm	_NES_IDX_ETH_SERDES_RX_MODE0,4,2 ; @NES_IDX_ETH_SERDES_RX_MODE0
	.comm	_NES_IDX_ETH_SERDES_RX_SIGDET0,4,2 ; @NES_IDX_ETH_SERDES_RX_SIGDET0
	.comm	_NES_IDX_ETH_SERDES_BYPASS0,4,2 ; @NES_IDX_ETH_SERDES_BYPASS0
	.comm	_NES_IDX_ETH_SERDES_LOOPBACK_CONTROL0,4,2 ; @NES_IDX_ETH_SERDES_LOOPBACK_CONTROL0
	.comm	_NES_IDX_ETH_SERDES_RX_EQ_CONTROL0,4,2 ; @NES_IDX_ETH_SERDES_RX_EQ_CONTROL0
	.comm	_NES_IDX_ETH_SERDES_RX_EQ_STATUS0,4,2 ; @NES_IDX_ETH_SERDES_RX_EQ_STATUS0
	.comm	_NES_IDX_ETH_SERDES_CDR_CONTROL0,4,2 ; @NES_IDX_ETH_SERDES_CDR_CONTROL0
	.comm	_jiffies,8,3                    ; @jiffies
	.comm	_HZ,4,2                         ; @HZ
.subsections_via_symbols
