	.file	"extr_dwarf_pro_attr.c_dwarf_add_AT_location_expr.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	dwarf_add_AT_location_expr
	.type	dwarf_add_AT_location_expr, @function
dwarf_add_AT_location_expr:
.LFB0:
	.cfi_startproc
	endbr64
	push	r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	mov	r13d, edx
	push	r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	mov	r12, r8
	push	rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	push	rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	sub	rsp, 24
	.cfi_def_cfa_offset 64
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 8[rsp], rax
	xor	eax, eax
	test	rsi, rsi
	sete	dl
	test	rcx, rcx
	sete	al
	or	dl, al
	jne	.L12
	test	rdi, rdi
	je	.L12
	mov	rbp, rsi
	mov	rdx, r8
	mov	rsi, rsp
	mov	rbx, rcx
	mov	rdi, rbp
	call	_dwarf_attr_alloc@PLT
	cmp	rax, QWORD PTR DW_DLE_NONE[rip]
	je	.L5
.L14:
	mov	rax, QWORD PTR DW_DLV_BADADDR[rip]
.L1:
	mov	rbx, QWORD PTR 8[rsp]
	xor	rbx, QWORD PTR fs:40
	jne	.L16
	add	rsp, 24
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	pop	rbx
	.cfi_def_cfa_offset 32
	pop	rbp
	.cfi_def_cfa_offset 24
	pop	r12
	.cfi_def_cfa_offset 16
	pop	r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	.cfi_restore_state
	mov	edx, DWORD PTR DW_DLE_ARGUMENT[rip]
	mov	rsi, r12
	call	DWARF_SET_ERROR@PLT
	mov	rax, QWORD PTR DW_DLV_BADADDR[rip]
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L5:
	mov	rax, QWORD PTR [rsp]
	mov	rsi, r12
	mov	rdi, rbx
	mov	QWORD PTR 32[rax], rbp
	mov	DWORD PTR 24[rax], r13d
	mov	QWORD PTR 16[rax], rbx
	call	_dwarf_expr_into_block@PLT
	cmp	rax, QWORD PTR DW_DLE_NONE[rip]
	jne	.L14
	mov	rsi, QWORD PTR [rsp]
	mov	rax, QWORD PTR [rbx]
	mov	ecx, DWORD PTR 8[rbx]
	cmp	rax, QWORD PTR UCHAR_MAX[rip]
	mov	rdx, QWORD PTR 8[rsi]
	mov	QWORD PTR [rdx], rax
	mov	DWORD PTR 24[rdx], ecx
	jle	.L17
	cmp	rax, QWORD PTR USHRT_MAX[rip]
	jg	.L9
	mov	eax, DWORD PTR DW_FORM_block2[rip]
	mov	DWORD PTR [rsi], eax
.L8:
	mov	edx, DWORD PTR at_next[rip]
	mov	rdi, rbp
	call	STAILQ_INSERT_TAIL@PLT
	mov	rax, QWORD PTR [rsp]
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L17:
	mov	eax, DWORD PTR DW_FORM_block1[rip]
	mov	DWORD PTR [rsi], eax
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L9:
	cmp	rax, QWORD PTR UINT_MAX[rip]
	jg	.L10
	mov	eax, DWORD PTR DW_FORM_block4[rip]
	mov	DWORD PTR [rsi], eax
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L10:
	mov	eax, DWORD PTR DW_FORM_block[rip]
	mov	DWORD PTR [rsi], eax
	jmp	.L8
.L16:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	dwarf_add_AT_location_expr, .-dwarf_add_AT_location_expr
	.comm	at_next,4,4
	.comm	USHRT_MAX,8,8
	.comm	UINT_MAX,8,8
	.comm	UCHAR_MAX,8,8
	.comm	DW_FORM_block4,4,4
	.comm	DW_FORM_block2,4,4
	.comm	DW_FORM_block1,4,4
	.comm	DW_FORM_block,4,4
	.comm	DW_DLV_BADADDR,8,8
	.comm	DW_DLE_NONE,8,8
	.comm	DW_DLE_ARGUMENT,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_dwarf_pro_attr.c_dwarf_add_AT_location_expr.c"
	.text
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	dwarf_add_AT_location_expr
	.syntax unified
	.arm
	.fpu softvfp
	.type	dwarf_add_AT_location_expr, %function
dwarf_add_AT_location_expr:
	@ args = 4, pretend = 0, frame = 8
	@ frame_needed = 0, uses_anonymous_args = 0
	clz	ip, r3
	cmp	r1, #0
	lsr	ip, ip, #5
	moveq	ip, #1
	cmp	r0, #0
	moveq	ip, #1
	push	{r4, r5, r6, r7, r8, lr}
	mov	r7, r2
	ldr	r2, .L17
	sub	sp, sp, #8
	cmp	ip, #0
	ldr	r2, [r2]
	str	r2, [sp, #4]
	mov	r2,#0
	ldr	r6, [sp, #32]
	bne	.L14
	mov	r5, r1
	mov	r2, r6
	mov	r1, sp
	mov	r0, r5
	mov	r4, r3
	bl	_dwarf_attr_alloc
	ldr	r8, .L17+4
	ldr	r3, [r8]
	cmp	r0, r3
	beq	.L4
.L12:
	ldr	r3, .L17+8
	ldr	r0, [r3]
.L1:
	ldr	r3, .L17
	ldr	r2, [r3]
	ldr	r3, [sp, #4]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L15
	add	sp, sp, #8
	@ sp needed
	pop	{r4, r5, r6, r7, r8, pc}
.L14:
	ldr	r3, .L17+12
	mov	r1, r6
	ldr	r2, [r3]
	bl	DWARF_SET_ERROR
	ldr	r3, .L17+8
	ldr	r0, [r3]
	b	.L1
.L4:
	ldr	r3, [sp]
	mov	r1, r6
	str	r5, [r3, #16]
	str	r7, [r3, #12]
	str	r4, [r3, #8]
	mov	r0, r4
	bl	_dwarf_expr_into_block
	ldr	r3, [r8]
	cmp	r0, r3
	bne	.L12
	ldr	r3, .L17+16
	ldr	r1, [sp]
	ldr	ip, [r3]
	ldr	r3, [r4]
	ldr	r0, [r4, #4]
	ldr	r2, [r1, #4]
	cmp	r3, ip
	str	r0, [r2, #12]
	str	r3, [r2]
	ble	.L16
	ldr	r2, .L17+20
	ldr	r2, [r2]
	cmp	r3, r2
	bgt	.L8
	ldr	r3, .L17+24
	ldr	r3, [r3]
	str	r3, [r1]
.L7:
	ldr	r3, .L17+28
	mov	r0, r5
	ldr	r2, [r3]
	bl	STAILQ_INSERT_TAIL
	ldr	r0, [sp]
	b	.L1
.L16:
	ldr	r3, .L17+32
	ldr	r3, [r3]
	str	r3, [r1]
	b	.L7
.L8:
	ldr	r2, .L17+36
	ldr	r2, [r2]
	cmp	r3, r2
	ldrle	r3, .L17+40
	ldrgt	r3, .L17+44
	ldr	r3, [r3]
	str	r3, [r1]
	b	.L7
.L15:
	bl	__stack_chk_fail
.L18:
	.align	2
.L17:
	.word	.LC0
	.word	DW_DLE_NONE
	.word	DW_DLV_BADADDR
	.word	DW_DLE_ARGUMENT
	.word	UCHAR_MAX
	.word	USHRT_MAX
	.word	DW_FORM_block2
	.word	at_next
	.word	DW_FORM_block1
	.word	UINT_MAX
	.word	DW_FORM_block4
	.word	DW_FORM_block
	.size	dwarf_add_AT_location_expr, .-dwarf_add_AT_location_expr
	.comm	at_next,4,4
	.comm	USHRT_MAX,4,4
	.comm	UINT_MAX,4,4
	.comm	UCHAR_MAX,4,4
	.comm	DW_FORM_block4,4,4
	.comm	DW_FORM_block2,4,4
	.comm	DW_FORM_block1,4,4
	.comm	DW_FORM_block,4,4
	.comm	DW_DLV_BADADDR,4,4
	.comm	DW_DLE_NONE,4,4
	.comm	DW_DLE_ARGUMENT,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
