	.file	"extr_subpage_prot.c_check_faulted.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"fault"
.LC1:
	.string	"pass"
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC2:
	.string	"Failed at %p (p=%ld,sp=%ld,w=%d), want=%s, got=%s !\n"
	.align 8
.LC3:
	.string	"Fault expected at %p and happened at %p !\n"
	.text
	.p2align 4
	.type	check_faulted, @function
check_faulted:
.LFB0:
	.cfi_startproc
	endbr64
	lea	rax, 3[rsi]
	mov	r11, rdx
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	r8d, ecx
	cqo
	mov	rbp, rdi
	shr	rdx, 60
	add	rax, rdx
	and	eax, 15
	sub	rax, rdx
	cmp	rax, r11
	sete	dl
	test	ecx, ecx
	je	.L2
	lea	rax, 1[rsi]
	mov	rcx, rax
	sar	rcx, 63
	shr	rcx, 60
	add	rax, rcx
	and	eax, 15
	sub	rax, rcx
	cmp	rax, r11
	sete	al
	or	edx, eax
.L2:
	mov	ecx, DWORD PTR faulted[rip]
	movzx	eax, dl
	cmp	ecx, eax
	je	.L3
	lea	r9, .LC1[rip]
	lea	rax, .LC0[rip]
	test	ecx, ecx
	mov	rcx, r9
	lea	rdi, .LC2[rip]
	cmovne	rcx, rax
	test	dl, dl
	mov	rdx, rsi
	mov	rsi, rbp
	cmovne	r9, rax
	sub	rsp, 8
	.cfi_def_cfa_offset 24
	xor	eax, eax
	push	rcx
	.cfi_def_cfa_offset 32
	mov	rcx, r11
	call	printf@PLT
	add	DWORD PTR errors[rip], 1
	mov	eax, DWORD PTR faulted[rip]
	pop	rdx
	.cfi_def_cfa_offset 24
	pop	rcx
	.cfi_def_cfa_offset 16
.L3:
	test	eax, eax
	je	.L1
	mov	rdx, QWORD PTR dar[rip]
	cmp	rdx, rbp
	je	.L7
	mov	rsi, rbp
	lea	rdi, .LC3[rip]
	xor	eax, eax
	call	printf@PLT
.L7:
	mov	DWORD PTR faulted[rip], 0
#APP
# 41 "data/linux/tools/testing/selftests/powerpc/mm/extr_subpage_prot.c_check_faulted.c" 1
	sync
# 0 "" 2
#NO_APP
.L1:
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	check_faulted, .-check_faulted
	.comm	faulted,4,4
	.comm	errors,4,4
	.comm	dar,8,8
	.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_subpage_prot.c_check_faulted.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"pass\000"
	.align	2
.LC1:
	.ascii	"fault\000"
	.align	2
.LC2:
	.ascii	"Failed at %p (p=%ld,sp=%ld,w=%d), want=%s, got=%s !"
	.ascii	"\012\000"
	.align	2
.LC3:
	.ascii	"Fault expected at %p and happened at %p !\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_faulted, %function
check_faulted:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	add	ip, r1, #3
	push	{r4, r5, r6, lr}
	rsbs	r5, ip, #0
	and	r5, r5, #15
	and	ip, ip, #15
	rsbpl	ip, r5, #0
	sub	ip, ip, r2
	clz	ip, ip
	cmp	r3, #0
	mov	lr, r1
	mov	r4, r0
	sub	sp, sp, #16
	lsr	ip, ip, #5
	beq	.L2
	add	r1, r1, #1
	rsbs	r0, r1, #0
	and	r0, r0, #15
	and	r1, r1, #15
	rsbpl	r1, r0, #0
	cmp	r1, r2
	orreq	ip, ip, #1
.L2:
	ldr	r5, .L18
	ldr	r0, [r5]
	cmp	r0, ip
	beq	.L3
	ldr	r1, .L18+4
	ldr	r6, .L18+8
	cmp	ip, #0
	movne	ip, r1
	moveq	ip, r6
	cmp	r0, #0
	moveq	r1, r6
	str	r3, [sp]
	str	ip, [sp, #4]
	mov	r3, r2
	str	r1, [sp, #8]
	mov	r2, lr
	mov	r1, r4
	ldr	r0, .L18+12
	bl	printf
	ldr	r2, .L18+16
	ldr	ip, [r5]
	ldr	r3, [r2]
	add	r3, r3, #1
	str	r3, [r2]
.L3:
	cmp	ip, #0
	beq	.L1
	ldr	r3, .L18+20
	ldr	r2, [r3]
	cmp	r2, r4
	beq	.L7
	mov	r1, r4
	ldr	r0, .L18+24
	bl	printf
.L7:
	mov	r3, #0
	str	r3, [r5]
	.syntax divided
@ 41 "data/linux/tools/testing/selftests/powerpc/mm/extr_subpage_prot.c_check_faulted.c" 1
	sync
@ 0 "" 2
	.arm
	.syntax unified
.L1:
	add	sp, sp, #16
	@ sp needed
	pop	{r4, r5, r6, pc}
.L19:
	.align	2
.L18:
	.word	faulted
	.word	.LC1
	.word	.LC0
	.word	.LC2
	.word	errors
	.word	dar
	.word	.LC3
	.size	check_faulted, .-check_faulted
	.comm	faulted,4,4
	.comm	errors,4,4
	.comm	dar,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
