	.file	"extr_jsm_neo.c_neo_parse_modem.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC0:
	.string	"neo_parse_modem: port: %d msignals: %x\n"
	.align 8
.LC1:
	.string	"Port: %d DTR: %d RTS: %d CTS: %d DSR: %d RI: %d CD: %d\n"
	.text
	.p2align 4
	.type	neo_parse_modem, @function
neo_parse_modem:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	r9d, esi
	mov	rbp, rdi
	lea	rcx, .LC0[rip]
	push	rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	mov	ebx, esi
	xor	eax, eax
	and	ebx, 248
	sub	rsp, 8
	.cfi_def_cfa_offset 32
	mov	rdx, QWORD PTR 16[rdi]
	mov	r8d, DWORD PTR 8[rdi]
	mov	esi, DWORD PTR INFO[rip]
	mov	edi, DWORD PTR MSIGS[rip]
	call	jsm_printk@PLT
	test	DWORD PTR UART_MSR_DDCD[rip], ebx
	jne	.L20
.L2:
	mov	ecx, DWORD PTR UART_MSR_CTS[rip]
	mov	r8d, ebx
	and	r8d, ecx
	test	DWORD PTR UART_MSR_DDSR[rip], ebx
	jne	.L21
.L3:
	mov	edi, DWORD PTR UART_MSR_DCD[rip]
	mov	eax, DWORD PTR 0[rbp]
	mov	r10d, DWORD PTR UART_MSR_RI[rip]
	mov	esi, edi
	mov	edx, edi
	or	esi, eax
	not	edx
	and	edx, eax
	mov	eax, esi
	mov	esi, DWORD PTR UART_MSR_DSR[rip]
	test	edi, ebx
	cmove	eax, edx
	mov	edx, esi
	mov	r9d, esi
	not	edx
	or	r9d, eax
	and	edx, eax
	test	esi, ebx
	mov	eax, r10d
	cmovne	edx, r9d
	mov	r9d, r10d
	not	eax
	or	r9d, edx
	and	eax, edx
	test	r10d, ebx
	mov	edx, r9d
	cmove	edx, eax
	mov	eax, ecx
	not	eax
	mov	r9d, edx
	and	eax, edx
	mov	rdx, QWORD PTR 16[rbp]
	or	r9d, ecx
	test	r8d, r8d
	mov	r8d, DWORD PTR 8[rbp]
	cmovne	eax, r9d
	xor	r9d, r9d
	mov	DWORD PTR 0[rbp], eax
	or	eax, DWORD PTR 4[rbp]
	test	DWORD PTR UART_MCR_DTR[rip], eax
	setne	r9b
	sub	rsp, 8
	.cfi_def_cfa_offset 40
	test	edi, eax
	setne	dil
	movzx	edi, dil
	push	rdi
	.cfi_def_cfa_offset 48
	xor	edi, edi
	test	r10d, eax
	setne	dil
	test	esi, eax
	setne	sil
	test	eax, ecx
	push	rdi
	.cfi_def_cfa_offset 56
	mov	edi, DWORD PTR MSIGS[rip]
	setne	cl
	test	DWORD PTR UART_MCR_RTS[rip], eax
	movzx	esi, sil
	setne	al
	movzx	ecx, cl
	push	rsi
	.cfi_def_cfa_offset 64
	mov	esi, DWORD PTR INFO[rip]
	movzx	eax, al
	push	rcx
	.cfi_def_cfa_offset 72
	lea	rcx, .LC1[rip]
	push	rax
	.cfi_def_cfa_offset 80
	xor	eax, eax
	call	jsm_printk@PLT
	add	rsp, 56
	.cfi_def_cfa_offset 24
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20:
	.cfi_def_cfa_offset 32
	mov	esi, DWORD PTR UART_MSR_DCD[rip]
	lea	rdi, 24[rbp]
	and	esi, ebx
	call	uart_handle_dcd_change@PLT
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L21:
	mov	esi, r8d
	lea	rdi, 24[rbp]
	call	uart_handle_cts_change@PLT
	mov	ecx, DWORD PTR UART_MSR_CTS[rip]
	mov	r8d, ebx
	and	r8d, ecx
	jmp	.L3
	.cfi_endproc
.LFE0:
	.size	neo_parse_modem, .-neo_parse_modem
	.comm	UART_MSR_RI,4,4
	.comm	UART_MSR_DSR,4,4
	.comm	UART_MSR_DDSR,4,4
	.comm	UART_MSR_DDCD,4,4
	.comm	UART_MSR_DCD,4,4
	.comm	UART_MSR_CTS,4,4
	.comm	UART_MCR_RTS,4,4
	.comm	UART_MCR_DTR,4,4
	.comm	MSIGS,4,4
	.comm	INFO,4,4
	.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_jsm_neo.c_neo_parse_modem.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"neo_parse_modem: port: %d msignals: %x\012\000"
	.align	2
.LC1:
	.ascii	"Port: %d DTR: %d RTS: %d CTS: %d DSR: %d RI: %d CD:"
	.ascii	" %d\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	neo_parse_modem, %function
neo_parse_modem:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, lr}
	mov	r7, r1
	ldr	r3, [r0, #8]
	sub	sp, sp, #36
	ldr	r6, .L21
	ldr	r5, .L21+4
	str	r1, [sp, #4]
	str	r3, [sp]
	ldr	r2, [r0, #12]
	ldr	r3, .L21+8
	mov	r4, r0
	ldr	r1, [r6]
	ldr	r0, [r5]
	bl	jsm_printk
	ldr	r3, .L21+12
	and	r7, r7, #248
	ldr	r3, [r3]
	ldr	r8, .L21+16
	tst	r7, r3
	bne	.L17
.L2:
	ldr	r3, .L21+20
	ldr	r9, .L21+24
	ldr	r3, [r3]
	ldr	r2, [r9]
	tst	r7, r3
	and	r1, r7, r2
	bne	.L20
.L3:
	ldr	r0, .L21+28
	ldr	lr, [r8]
	ldr	ip, .L21+32
	ldr	r3, [r4]
	ldr	r0, [r0]
	ldr	ip, [ip]
	tst	lr, r7
	orrne	r3, lr, r3
	biceq	r3, r3, lr
	tst	r0, r7
	orrne	r3, r0, r3
	biceq	r3, r3, r0
	tst	ip, r7
	orrne	r3, ip, r3
	biceq	r3, r3, ip
	cmp	r1, #0
	ldr	r1, [r4, #4]
	orrne	r3, r3, r2
	biceq	r3, r3, r2
	str	r3, [r4]
	orr	r3, r3, r1
	tst	lr, r3
	ldr	lr, .L21+36
	movne	r7, #1
	moveq	r7, #0
	ldr	r1, .L21+40
	tst	ip, r3
	movne	r8, #1
	ldr	ip, [lr]
	moveq	r8, #0
	tst	r0, r3
	ldr	r1, [r1]
	movne	r9, #1
	moveq	r9, #0
	tst	r3, r2
	movne	lr, #1
	moveq	lr, #0
	tst	r3, ip
	movne	ip, #1
	moveq	ip, #0
	tst	r3, r1
	movne	r2, #1
	moveq	r2, #0
	ldr	r3, [r4, #8]
	stmib	sp, {r2, ip, lr}
	str	r3, [sp]
	str	r7, [sp, #24]
	str	r8, [sp, #20]
	str	r9, [sp, #16]
	ldr	r1, [r6]
	ldr	r0, [r5]
	ldr	r2, [r4, #12]
	ldr	r3, .L21+44
	bl	jsm_printk
	add	sp, sp, #36
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, pc}
.L17:
	ldr	r1, [r8]
	add	r0, r4, #16
	and	r1, r1, r7
	bl	uart_handle_dcd_change
	b	.L2
.L20:
	add	r0, r4, #16
	bl	uart_handle_cts_change
	ldr	r2, [r9]
	and	r1, r7, r2
	b	.L3
.L22:
	.align	2
.L21:
	.word	INFO
	.word	MSIGS
	.word	.LC0
	.word	UART_MSR_DDCD
	.word	UART_MSR_DCD
	.word	UART_MSR_DDSR
	.word	UART_MSR_CTS
	.word	UART_MSR_DSR
	.word	UART_MSR_RI
	.word	UART_MCR_RTS
	.word	UART_MCR_DTR
	.word	.LC1
	.size	neo_parse_modem, .-neo_parse_modem
	.comm	UART_MSR_RI,4,4
	.comm	UART_MSR_DSR,4,4
	.comm	UART_MSR_DDSR,4,4
	.comm	UART_MSR_DDCD,4,4
	.comm	UART_MSR_DCD,4,4
	.comm	UART_MSR_CTS,4,4
	.comm	UART_MCR_RTS,4,4
	.comm	UART_MCR_DTR,4,4
	.comm	MSIGS,4,4
	.comm	INFO,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
