	.file	"extr_machine_routines.c_ml_nofault_copy.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	ml_nofault_copy
	.type	ml_nofault_copy, @function
ml_nofault_copy:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	sub	rsp, 24
	.cfi_def_cfa_offset 80
	test	rdx, rdx
	jle	.L4
	mov	QWORD PTR 8[rsp], 0
	mov	r12d, edi
	mov	r13d, esi
	mov	rbp, rdx
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L20:
	mov	edi, r13d
	call	kvtophys@PLT
	mov	r14, rax
	test	rax, rax
	je	.L1
	mov	rdi, rax
	call	i386_btop@PLT
	mov	edi, eax
	call	pmap_valid_page@PLT
	test	eax, eax
	je	.L1
	mov	rdi, r15
	call	i386_btop@PLT
	mov	edi, eax
	call	pmap_valid_page@PLT
	test	eax, eax
	je	.L1
	mov	rdx, QWORD PTR PAGE_MASK[rip]
	mov	rbx, QWORD PTR PAGE_SIZE[rip]
	mov	rsi, r14
	mov	rdi, r15
	mov	rax, rdx
	mov	rcx, rbx
	and	rax, r15
	sub	rcx, rax
	cmp	rcx, rbp
	mov	rax, rcx
	cmovg	rax, rbp
	and	rdx, r14
	sub	rbx, rdx
	cmp	rbx, rax
	cmovg	rbx, rax
	mov	rdx, rbx
	sub	rbp, rbx
	add	r12d, ebx
	add	r13d, ebx
	call	bcopy_phys@PLT
	add	QWORD PTR 8[rsp], rbx
	test	rbp, rbp
	jle	.L1
.L3:
	mov	edi, r12d
	call	kvtophys@PLT
	mov	r15, rax
	test	rax, rax
	jne	.L20
.L1:
	mov	rax, QWORD PTR 8[rsp]
	add	rsp, 24
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
.L4:
	.cfi_restore_state
	mov	QWORD PTR 8[rsp], 0
	jmp	.L1
	.cfi_endproc
.LFE0:
	.size	ml_nofault_copy, .-ml_nofault_copy
	.comm	PAGE_SIZE,8,8
	.comm	PAGE_MASK,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_machine_routines.c_ml_nofault_copy.c"
	.text
	.align	2
	.global	ml_nofault_copy
	.syntax unified
	.arm
	.fpu softvfp
	.type	ml_nofault_copy, %function
ml_nofault_copy:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
	subs	r6, r2, #0
	ble	.L4
	mov	r7, r0
	mov	r8, r1
	mov	r9, #0
	ldr	fp, .L21
	b	.L3
.L20:
	mov	r0, r8
	bl	kvtophys
	subs	r10, r0, #0
	beq	.L1
	bl	i386_btop
	bl	pmap_valid_page
	cmp	r0, #0
	beq	.L1
	mov	r0, r5
	bl	i386_btop
	bl	pmap_valid_page
	cmp	r0, #0
	beq	.L1
	ldr	r3, .L21+4
	ldr	r4, [fp]
	ldr	r3, [r3]
	mov	r1, r10
	and	r2, r3, r5
	sub	r2, r4, r2
	cmp	r2, r6
	movge	r2, r6
	and	r3, r3, r10
	sub	r4, r4, r3
	cmp	r4, r2
	movge	r4, r2
	mov	r0, r5
	mov	r2, r4
	sub	r6, r6, r4
	bl	bcopy_phys
	cmp	r6, #0
	add	r9, r9, r4
	add	r7, r7, r4
	add	r8, r8, r4
	ble	.L1
.L3:
	mov	r0, r7
	bl	kvtophys
	subs	r5, r0, #0
	bne	.L20
.L1:
	mov	r0, r9
	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4:
	mov	r9, #0
	b	.L1
.L22:
	.align	2
.L21:
	.word	PAGE_SIZE
	.word	PAGE_MASK
	.size	ml_nofault_copy, .-ml_nofault_copy
	.comm	PAGE_SIZE,4,4
	.comm	PAGE_MASK,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
