	.file	"extr_armada_xp_edac.c_axp_mc_calc_address.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	axp_mc_calc_address, @function
axp_mc_calc_address:
.LFB0:
	.cfi_startproc
	endbr64
	mov	r9, rsi
	mov	eax, DWORD PTR [rdi]
	mov	rsi, QWORD PTR 8[rdi]
	mov	rsi, QWORD PTR [rsi+r9*8]
	cmp	eax, 8
	je	.L9
	cmp	eax, 4
	je	.L10
	lea	eax, [r8+r8]
	and	eax, 2046
	mov	r8d, eax
	test	rsi, rsi
	je	.L7
	sal	edx, 16
	and	edx, 458752
	or	edx, eax
	mov	eax, ecx
	sal	eax, 14
	and	eax, 1073217536
	or	edx, eax
	mov	eax, ecx
	sal	eax, 11
	movzx	eax, ax
	or	eax, edx
	ret
	.p2align 4,,10
	.p2align 3
.L10:
	lea	eax, 0[0+r8*4]
	and	eax, 4092
	mov	r8d, eax
	test	rsi, rsi
	je	.L6
	sal	edx, 16
	and	edx, 458752
	mov	eax, edx
	mov	edx, ecx
	sal	edx, 15
	or	eax, r8d
	and	edx, 2146959360
	or	edx, eax
	mov	eax, ecx
	sal	eax, 12
	movzx	eax, ax
	or	eax, edx
	ret
	.p2align 4,,10
	.p2align 3
.L9:
	lea	eax, 0[0+r8*8]
	and	eax, 8184
	mov	r8d, eax
	test	rsi, rsi
	je	.L3
	sal	edx, 16
	and	edx, 458752
	or	edx, eax
	mov	eax, ecx
	sal	eax, 16
	and	eax, -524288
	or	edx, eax
	mov	eax, ecx
	sal	eax, 13
	movzx	eax, ax
	or	eax, edx
	ret
	.p2align 4,,10
	.p2align 3
.L7:
	sal	edx, 11
	mov	eax, ecx
	and	edx, 14336
	and	eax, 1073725440
	or	eax, edx
	or	eax, r8d
	ret
	.p2align 4,,10
	.p2align 3
.L3:
	sal	edx, 13
	mov	eax, ecx
	movzx	edx, dx
	xor	ax, ax
	or	eax, edx
	or	eax, r8d
	ret
	.p2align 4,,10
	.p2align 3
.L6:
	sal	edx, 12
	mov	eax, ecx
	and	edx, 28672
	and	eax, 2147450880
	or	eax, edx
	or	eax, r8d
	ret
	.cfi_endproc
.LFE0:
	.size	axp_mc_calc_address, .-axp_mc_calc_address
	.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_armada_xp_edac.c_axp_mc_calc_address.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	axp_mc_calc_address, %function
axp_mc_calc_address:
	@ args = 4, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	ldr	lr, [r0]
	ldr	ip, [r0, #4]
	cmp	lr, #8
	ldr	r1, [ip, r1, lsl #2]
	beq	.L10
	cmp	lr, #4
	beq	.L11
	ldr	r0, .L12
	cmp	r1, #0
	ldr	r1, [sp, #4]
	and	r1, r0, r1, lsl #1
	beq	.L7
	ldr	lr, .L12+4
	lsl	r2, r2, #16
	ldr	ip, .L12+8
	and	r2, r2, #458752
	orr	r0, r2, r1
	and	r2, lr, r3, lsl #14
	orr	r2, r0, r2
	and	r0, ip, r3, lsl #11
	orr	r0, r2, r0
	ldr	pc, [sp], #4
.L11:
	ldr	r0, .L12+12
	cmp	r1, #0
	ldr	r1, [sp, #4]
	and	r1, r0, r1, lsl #2
	beq	.L6
	ldr	ip, .L12+16
	lsl	r0, r2, #16
	and	r0, r0, #458752
	ldr	r2, .L12+8
	orr	r0, r0, r1
	and	r1, ip, r3, lsl #15
	orr	r0, r0, r1
	and	r3, r2, r3, lsl #12
	orr	r0, r0, r3
	ldr	pc, [sp], #4
.L10:
	ldr	r0, .L12+20
	cmp	r1, #0
	ldr	r1, [sp, #4]
	and	r1, r0, r1, lsl #3
	beq	.L3
	ldr	ip, .L12+24
	lsl	r2, r2, #16
	ldr	r0, .L12+8
	and	r2, r2, #458752
	orr	r2, r2, r1
	and	r1, ip, r3, lsl #16
	orr	r2, r2, r1
	and	r0, r0, r3, lsl #13
	orr	r0, r2, r0
	ldr	pc, [sp], #4
.L7:
	lsl	r0, r2, #11
	and	r0, r0, #14336
	bic	r3, r3, #16320
	orr	r0, r0, r1
	bic	r3, r3, #-1073741761
	orr	r0, r0, r3
	ldr	pc, [sp], #4
.L3:
	ldr	ip, .L12+8
	lsr	r0, r3, #16
	and	r2, ip, r2, lsl #13
	orr	r2, r2, r1
	lsl	r0, r0, #16
	orr	r0, r2, r0
	ldr	pc, [sp], #4
.L6:
	ldr	r0, .L12+28
	lsl	r2, r2, #12
	and	r2, r2, #28672
	orr	r2, r2, r1
	and	r0, r0, r3
	orr	r0, r2, r0
	ldr	pc, [sp], #4
.L13:
	.align	2
.L12:
	.word	2046
	.word	1073217536
	.word	65535
	.word	4092
	.word	2146959360
	.word	8184
	.word	-524288
	.word	2147450880
	.size	axp_mc_calc_address, .-axp_mc_calc_address
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
