	.file	"extr_mcp77.c_mcp77_clk_read.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"unknown clock source %d %08x\n"
	.text
	.p2align 4
	.type	mcp77_clk_read, @function
mcp77_clk_read:
.LFB0:
	.cfi_startproc
	endbr64
	push	r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	push	r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	mov	r13d, esi
	push	r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	push	rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	push	rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	call	mcp77_clk@PLT
	mov	esi, 49236
	mov	r14, QWORD PTR [rax]
	mov	rbp, rax
	mov	rdi, r14
	call	nvkm_rd32@PLT
	mov	r12d, eax
	lea	eax, -128[r13]
	cmp	eax, 9
	ja	.L2
	lea	rdx, .L4[rip]
	movsx	rax, DWORD PTR [rdx+rax*4]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L4:
	.long	.L13-.L4
	.long	.L12-.L4
	.long	.L32-.L4
	.long	.L26-.L4
	.long	.L9-.L4
	.long	.L8-.L4
	.long	.L7-.L4
	.long	.L6-.L4
	.long	.L5-.L4
	.long	.L3-.L4
	.text
	.p2align 4,,10
	.p2align 3
.L12:
	mov	esi, 16416
	mov	rdi, r14
	call	nvkm_rd32@PLT
	sar	eax, 16
	mov	ebx, eax
	mov	eax, r12d
	and	eax, 48
	and	ebx, 7
	cmp	eax, 32
	je	.L22
	cmp	eax, 48
	je	.L23
	test	eax, eax
	je	.L36
.L2:
	mov	ecx, r12d
	mov	edx, r13d
	lea	rsi, .LC0[rip]
	mov	rdi, rbp
	call	nvkm_debug@PLT
.L32:
	xor	eax, eax
.L1:
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L26:
	.cfi_restore_state
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	eax, 100000
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6:
	.cfi_restore_state
	mov	eax, DWORD PTR [r14]
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L5:
	mov	esi, 16424
	mov	rdi, r14
	and	r12d, 3
	call	nvkm_rd32@PLT
	sar	eax, 16
	mov	ecx, eax
	and	ecx, 7
	mov	ebx, ecx
	cmp	r12d, 2
	je	.L16
	cmp	r12d, 3
	je	.L22
	cmp	r12d, 1
	je	.L32
.L24:
	mov	esi, 135
	mov	rdi, rbp
	call	nvkm_clk_read@PLT
	mov	ecx, ebx
	sar	eax, cl
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L3:
	mov	eax, r12d
	and	eax, 50331648
	cmp	eax, 50331648
	jne	.L34
	test	r12d, 512
	je	.L34
	and	r12d, 3072
	cmp	r12d, 1024
	je	.L20
	cmp	r12d, 2048
	je	.L21
	mov	esi, 131
	test	r12d, r12d
	jne	.L32
.L33:
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	rdi, rbp
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	jmp	nvkm_clk_read@PLT
	.p2align 4,,10
	.p2align 3
.L8:
	.cfi_restore_state
	mov	esi, 131
	mov	rdi, rbp
	call	nvkm_clk_read@PLT
	sal	eax, 2
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L7:
	mov	esi, 131
	mov	rdi, rbp
	call	nvkm_clk_read@PLT
	lea	edx, [rax+rax]
	movsx	rax, edx
	sar	edx, 31
	imul	rax, rax, 1431655766
	shr	rax, 32
	sub	eax, edx
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L13:
	mov	rdi, rbp
	call	read_div@PLT
	sar	eax, 8
	mov	ebx, eax
	mov	eax, 500000
	and	ebx, 7
	mov	ecx, ebx
	sar	eax, cl
	and	r12d, 4194304
	je	.L1
	mov	esi, 136
	mov	rdi, rbp
	call	nvkm_clk_read@PLT
	mov	ecx, ebx
	sar	eax, cl
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L9:
	mov	eax, r12d
	and	eax, 786432
	cmp	eax, 524288
	je	.L20
	cmp	eax, 786432
	je	.L15
	test	eax, eax
	jne	.L2
.L21:
	mov	esi, 134
	jmp	.L33
	.p2align 4,,10
	.p2align 3
.L34:
	mov	esi, 136
	jmp	.L33
	.p2align 4,,10
	.p2align 3
.L22:
	mov	esi, 16424
	mov	rdi, rbp
	call	read_pll@PLT
	mov	ecx, ebx
	sar	eax, cl
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L20:
	mov	esi, 133
	jmp	.L33
	.p2align 4,,10
	.p2align 3
.L16:
	mov	esi, 133
	mov	rdi, rbp
	call	nvkm_clk_read@PLT
	mov	ecx, ebx
	sar	eax, cl
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L36:
	and	r12d, 64
	je	.L24
	mov	esi, 131
	mov	rdi, rbp
	call	nvkm_clk_read@PLT
	mov	ecx, ebx
	sar	eax, cl
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L23:
	mov	esi, 16416
	mov	rdi, rbp
	call	read_pll@PLT
	mov	ecx, ebx
	sar	eax, cl
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L15:
	mov	esi, 137
	jmp	.L33
	.cfi_endproc
.LFE0:
	.size	mcp77_clk_read, .-mcp77_clk_read
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_mcp77.c_mcp77_clk_read.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"unknown clock source %d %08x\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	mcp77_clk_read, %function
mcp77_clk_read:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, lr}
	mov	r7, r1
	bl	mcp77_clk
	ldr	r5, [r0]
	mov	r4, r0
	ldr	r1, .L36
	mov	r0, r5
	bl	nvkm_rd32
	sub	ip, r7, #128
	mov	r6, r0
	cmp	ip, #9
	ldrls	pc, [pc, ip, asl #2]
	b	.L2
.L4:
	.word	.L13
	.word	.L12
	.word	.L32
	.word	.L26
	.word	.L9
	.word	.L8
	.word	.L7
	.word	.L6
	.word	.L5
	.word	.L3
.L12:
	mov	r0, r5
	ldr	r1, .L36+4
	bl	nvkm_rd32
	and	r3, r6, #48
	asr	ip, r0, #16
	cmp	r3, #32
	and	r5, ip, #7
	beq	.L22
	cmp	r3, #48
	beq	.L23
	cmp	r3, #0
	beq	.L34
.L2:
	mov	r3, r6
	mov	r2, r7
	mov	r0, r4
	ldr	r1, .L36+8
	bl	nvkm_debug
.L32:
	mov	r0, #0
	pop	{r4, r5, r6, r7, r8, pc}
.L26:
	ldr	r0, .L36+12
	pop	{r4, r5, r6, r7, r8, pc}
.L6:
	ldr	r0, [r5]
	pop	{r4, r5, r6, r7, r8, pc}
.L5:
	mov	r0, r5
	ldr	r1, .L36+16
	bl	nvkm_rd32
	mov	r2, r0
	and	r0, r6, #3
	asr	r2, r2, #16
	cmp	r0, #2
	and	r5, r2, #7
	beq	.L16
	cmp	r0, #3
	beq	.L22
	cmp	r0, #1
	beq	.L32
	mov	r0, r4
	mov	r1, #135
	bl	nvkm_clk_read
	asr	r0, r0, r5
	pop	{r4, r5, r6, r7, r8, pc}
.L3:
	and	r3, r0, #50331648
	cmp	r3, #50331648
	bne	.L31
	tst	r0, #512
	beq	.L31
	and	r0, r0, #3072
	cmp	r0, #1024
	beq	.L20
	cmp	r0, #2048
	beq	.L21
	cmp	r0, #0
	bne	.L32
	mov	r0, r4
	pop	{r4, r5, r6, r7, r8, lr}
	mov	r1, #131
	b	nvkm_clk_read
.L8:
	mov	r0, r4
	mov	r1, #131
	bl	nvkm_clk_read
	lsl	r0, r0, #2
	pop	{r4, r5, r6, r7, r8, pc}
.L7:
	mov	r1, #131
	mov	r0, r4
	bl	nvkm_clk_read
	ldr	r3, .L36+20
	lsl	r2, r0, #1
	smull	r1, r0, r3, r2
	sub	r0, r0, r2, asr #31
	pop	{r4, r5, r6, r7, r8, pc}
.L13:
	mov	r0, r4
	bl	read_div
	tst	r6, #4194304
	asr	r5, r0, #8
	and	r5, r5, #7
	bne	.L35
	ldr	r0, .L36+24
	asr	r0, r0, r5
	pop	{r4, r5, r6, r7, r8, pc}
.L9:
	and	r3, r0, #786432
	cmp	r3, #524288
	beq	.L20
	cmp	r3, #786432
	beq	.L15
	cmp	r3, #0
	bne	.L2
.L21:
	mov	r0, r4
	pop	{r4, r5, r6, r7, r8, lr}
	mov	r1, #134
	b	nvkm_clk_read
.L31:
	mov	r0, r4
	pop	{r4, r5, r6, r7, r8, lr}
	mov	r1, #136
	b	nvkm_clk_read
.L22:
	mov	r0, r4
	ldr	r1, .L36+16
	bl	read_pll
	asr	r0, r0, r5
	pop	{r4, r5, r6, r7, r8, pc}
.L20:
	mov	r0, r4
	pop	{r4, r5, r6, r7, r8, lr}
	mov	r1, #133
	b	nvkm_clk_read
.L35:
	mov	r0, r4
	mov	r1, #136
	bl	nvkm_clk_read
	asr	r0, r0, r5
	pop	{r4, r5, r6, r7, r8, pc}
.L34:
	tst	r6, #64
	mov	r0, r4
	movne	r1, #131
	moveq	r1, #135
	bl	nvkm_clk_read
	asr	r0, r0, r5
	pop	{r4, r5, r6, r7, r8, pc}
.L23:
	mov	r0, r4
	ldr	r1, .L36+4
	bl	read_pll
	asr	r0, r0, r5
	pop	{r4, r5, r6, r7, r8, pc}
.L15:
	mov	r0, r4
	pop	{r4, r5, r6, r7, r8, lr}
	mov	r1, #137
	b	nvkm_clk_read
.L16:
	mov	r0, r4
	mov	r1, #133
	bl	nvkm_clk_read
	asr	r0, r0, r5
	pop	{r4, r5, r6, r7, r8, pc}
.L37:
	.align	2
.L36:
	.word	49236
	.word	16416
	.word	.LC0
	.word	100000
	.word	16424
	.word	1431655766
	.word	500000
	.size	mcp77_clk_read, .-mcp77_clk_read
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
