	.file	"extr_lobject.c_luaO_arith.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	luaO_arith
	.type	luaO_arith, @function
luaO_arith:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	mov	r15, r8
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	mov	r14, rcx
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13, rdi
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12, rdx
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	mov	ebp, esi
	sub	rsp, 16
	.cfi_def_cfa_offset 64
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 8[rsp], rax
	xor	eax, eax
	cmp	esi, 131
	jg	.L2
	cmp	esi, 129
	jg	.L10
	lea	eax, -128[rsi]
	cmp	eax, 1
	ja	.L4
.L5:
	mov	rsi, rsp
	mov	rdi, r12
	call	tointeger@PLT
	test	eax, eax
	jne	.L45
.L8:
	xor	edi, edi
	test	r13, r13
	setne	dil
	call	lua_assert@PLT
	mov	esi, DWORD PTR TM_ADD[rip]
	mov	edi, DWORD PTR TMS[rip]
	sub	ebp, DWORD PTR LUA_OPADD[rip]
	add	esi, ebp
	call	cast@PLT
	mov	rcx, r15
	mov	rdx, r14
	mov	rsi, r12
	mov	r8d, eax
	mov	rdi, r13
	call	luaT_trybinTM@PLT
.L1:
	mov	rax, QWORD PTR 8[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L46
	add	rsp, 16
	.cfi_remember_state
	.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
	.p2align 4,,10
	.p2align 3
.L2:
	.cfi_restore_state
	lea	eax, -132[rsi]
	cmp	eax, 3
	jbe	.L5
.L4:
	mov	rdi, r12
	call	ttisinteger@PLT
	test	eax, eax
	je	.L10
	mov	rdi, r14
	call	ttisinteger@PLT
	test	eax, eax
	jne	.L47
	.p2align 4,,10
	.p2align 3
.L10:
	mov	rsi, rsp
	mov	rdi, r12
	call	tonumber@PLT
	test	eax, eax
	je	.L8
	lea	rsi, 4[rsp]
	mov	rdi, r14
	call	tonumber@PLT
	test	eax, eax
	je	.L8
	mov	ecx, DWORD PTR 4[rsp]
	mov	edx, DWORD PTR [rsp]
	mov	esi, ebp
	mov	rdi, r13
	call	numarith@PLT
	mov	rdi, r15
	mov	esi, eax
	call	setfltvalue@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L45:
	lea	rsi, 4[rsp]
	mov	rdi, r14
	call	tointeger@PLT
	test	eax, eax
	je	.L8
	mov	ecx, DWORD PTR 4[rsp]
	mov	edx, DWORD PTR [rsp]
	jmp	.L39
	.p2align 4,,10
	.p2align 3
.L47:
	mov	rdi, r14
	call	ivalue@PLT
	mov	rdi, r12
	mov	r14d, eax
	call	ivalue@PLT
	mov	ecx, r14d
	mov	edx, eax
.L39:
	mov	esi, ebp
	mov	rdi, r13
	call	intarith@PLT
	mov	rdi, r15
	mov	esi, eax
	call	setivalue@PLT
	jmp	.L1
.L46:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	luaO_arith, .-luaO_arith
	.comm	TM_ADD,4,4
	.comm	TMS,4,4
	.comm	LUA_OPADD,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_lobject.c_luaO_arith.c"
	.text
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	luaO_arith
	.syntax unified
	.arm
	.fpu softvfp
	.type	luaO_arith, %function
luaO_arith:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, lr}
	mov	r7, r3
	ldr	r3, .L47
	sub	sp, sp, #24
	cmp	r1, #131
	mov	r4, r1
	mov	r6, r0
	mov	r5, r2
	ldr	r3, [r3]
	str	r3, [sp, #20]
	mov	r3,#0
	ldr	r8, [sp, #48]
	bgt	.L2
	cmp	r1, #129
	bgt	.L10
	sub	r3, r1, #128
	cmp	r3, #1
	bhi	.L4
.L5:
	mov	r0, r5
	add	r1, sp, #12
	bl	tointeger
	cmp	r0, #0
	bne	.L44
.L8:
	subs	r0, r6, #0
	movne	r0, #1
	bl	lua_assert
	ldr	r3, .L47+4
	ldr	r2, .L47+8
	ldr	r3, [r3]
	ldr	r1, [r2]
	sub	r4, r4, r3
	ldr	r3, .L47+12
	add	r1, r4, r1
	ldr	r0, [r3]
	bl	cast
	mov	r3, r8
	str	r0, [sp]
	mov	r2, r7
	mov	r1, r5
	mov	r0, r6
	bl	luaT_trybinTM
.L1:
	ldr	r3, .L47
	ldr	r2, [r3]
	ldr	r3, [sp, #20]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L45
	add	sp, sp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, pc}
.L2:
	sub	r3, r1, #132
	cmp	r3, #3
	bls	.L5
.L4:
	mov	r0, r5
	bl	ttisinteger
	cmp	r0, #0
	beq	.L10
	mov	r0, r7
	bl	ttisinteger
	cmp	r0, #0
	bne	.L46
.L10:
	mov	r0, r5
	add	r1, sp, #12
	bl	tonumber
	cmp	r0, #0
	beq	.L8
	mov	r0, r7
	add	r1, sp, #16
	bl	tonumber
	cmp	r0, #0
	beq	.L8
	mov	r1, r4
	mov	r0, r6
	ldr	r3, [sp, #16]
	ldr	r2, [sp, #12]
	bl	numarith
	mov	r1, r0
	mov	r0, r8
	bl	setfltvalue
	b	.L1
.L44:
	mov	r0, r7
	add	r1, sp, #16
	bl	tointeger
	cmp	r0, #0
	beq	.L8
	mov	r1, r4
	mov	r0, r6
	ldr	r3, [sp, #16]
	ldr	r2, [sp, #12]
	bl	intarith
	mov	r1, r0
	mov	r0, r8
	bl	setivalue
	b	.L1
.L46:
	mov	r0, r5
	bl	ivalue
	mov	r5, r0
	mov	r0, r7
	bl	ivalue
	mov	r1, r4
	mov	r3, r0
	mov	r2, r5
	mov	r0, r6
	bl	intarith
	mov	r1, r0
	mov	r0, r8
	bl	setivalue
	b	.L1
.L45:
	bl	__stack_chk_fail
.L48:
	.align	2
.L47:
	.word	.LC0
	.word	LUA_OPADD
	.word	TM_ADD
	.word	TMS
	.size	luaO_arith, .-luaO_arith
	.comm	TM_ADD,4,4
	.comm	TMS,4,4
	.comm	LUA_OPADD,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
