// File: /workspace/github_c_makefile_star2_O3/zenkj[P]luajit-arm64/src/host/minilua.c
// Function: luaC_step
static void luaC_step(lua_State*L){
global_State*g=G(L);
l_mem lim=(1024u/100)*g->gcstepmul;
if(lim==0)
lim=(((lu_mem)(~(lu_mem)0)-2)-1)/2;
g->gcdept+=g->totalbytes-g->GCthreshold;
do{
lim-=singlestep(L);
if(g->gcstate==0)
break;
}while(lim>0);
if(g->gcstate!=0){
if(g->gcdept<1024u)
g->GCthreshold=g->totalbytes+1024u;
else{
g->gcdept-=1024u;
g->GCthreshold=g->totalbytes;
}
}
else{
setthreshold(g);
}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x20(%rdi), %r13
movl 0x94(%r13), %eax
addl %eax, %eax
leal (%rax,%rax,4), %eax
testl %eax, %eax
movabsq $0x7ffffffffffffffe, %rbp # imm = 0x7FFFFFFFFFFFFFFE
cmovneq %rax, %rbp
movq 0x78(%r13), %rax
subq 0x70(%r13), %rax
addq %rax, 0x88(%r13)
leaq 0xe54d(%rip), %r12      # 0x15150
movq %r13, (%rsp)
movq 0x20(%rbx), %r14
movzbl 0x21(%r14), %eax
cmpq $0x4, %rax
ja 0x6dd6
movslq (%r12,%rax,4), %rax
addq %r12, %rax
jmpq *%rax
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%r14)
movq $0x0, 0x48(%r14)
movq 0xb0(%r14), %rsi
testb $0x3, 0x9(%rsi)
je 0x6c4f
movq %r14, %rdi
callq 0x46ab
movq 0xb0(%r14), %rsi
cmpl $0x4, 0x80(%rsi)
jl 0x6c6a
movq 0x78(%rsi), %rsi
testb $0x3, 0x9(%rsi)
je 0x6c6a
movq %r14, %rdi
callq 0x46ab
movq 0x20(%rbx), %rax
cmpl $0x4, 0xa8(%rax)
jl 0x6c8c
movq 0xa0(%rax), %rsi
testb $0x3, 0x9(%rsi)
je 0x6c8c
movq %r14, %rdi
callq 0x46ab
movq %r14, %rdi
callq 0x8ed9
movb $0x1, 0x21(%r14)
jmp 0x6dd6
cmpq $0x0, 0x50(%r14)
je 0x6dc6
movq %rbx, %rdi
callq 0x8dfe
movq 0x80(%r14), %rcx
movl $0x64, %eax
cmpq $0x65, %rcx
jb 0x7043
addq $-0x64, %rcx
movq %rcx, 0x80(%r14)
jmp 0x7043
movq 0x78(%r14), %r15
movslq 0x24(%r14), %rsi
leal 0x1(%rsi), %eax
movl %eax, 0x24(%r14)
shlq $0x3, %rsi
addq (%r14), %rsi
movq %rbx, %rdi
movq $-0x3, %rdx
callq 0x8b0a
movl 0x24(%r14), %eax
cmpl 0xc(%r14), %eax
jl 0x6d0b
movb $0x3, 0x21(%r14)
movq 0x78(%r14), %rax
subq %r15, %rax
addq %rax, 0x80(%r14)
movl $0xa, %eax
jmp 0x7043
movq 0x30(%r14), %rsi
movq 0x78(%r14), %r12
movl $0x28, %edx
movq %rbx, %rdi
callq 0x8b0a
movq %rax, 0x30(%r14)
cmpq $0x0, (%rax)
jne 0x6d9a
movq 0x20(%rbx), %r13
movl 0xc(%r13), %esi
leal 0x3(%rsi), %eax
testl %esi, %esi
cmovnsl %esi, %eax
cmpl $0x41, %esi
jl 0x6d6a
sarl $0x2, %eax
cmpl %eax, 0x8(%r13)
jae 0x6d6a
shrl %esi
movq %rbx, %rdi
callq 0x417d
movq 0x68(%r13), %rdx
cmpq $0x41, %rdx
jb 0x6d91
movq %rdx, %r15
shrq %r15
movq 0x58(%r13), %rsi
movq %rbx, %rdi
movq %r15, %rcx
callq 0x43d1
movq %rax, 0x58(%r13)
movq %r15, 0x68(%r13)
movb $0x4, 0x21(%r14)
movq (%rsp), %r13
movq 0x78(%r14), %rax
subq %r12, %rax
addq %rax, 0x80(%r14)
movl $0x190, %eax            # imm = 0x190
jmp 0x703c
cmpq $0x0, 0x38(%r14)
je 0x6ddd
movq %r14, %rdi
callq 0x84ba
jmp 0x7043
movb $0x0, 0x21(%r14)
movq $0x0, 0x88(%r14)
xorl %eax, %eax
jmp 0x7043
leaq 0xb8(%r14), %r15
movq 0xd8(%r14), %r12
cmpq %r15, %r12
je 0x6e2f
testb $0x7, 0x9(%r12)
jne 0x6e14
movq 0x10(%r12), %rax
cmpl $0x4, 0x8(%rax)
jl 0x6e14
movq (%rax), %rsi
testb $0x3, 0x9(%rsi)
je 0x6e14
movq %r14, %rdi
callq 0x46ab
movq 0x20(%r12), %r12
cmpq %r15, %r12
jne 0x6df0
jmp 0x6e28
movq %r14, %rdi
callq 0x84ba
cmpq $0x0, 0x38(%r14)
jne 0x6e20
movq 0x48(%r14), %rax
movq %rax, 0x38(%r14)
movq $0x0, 0x48(%r14)
testb $0x3, 0x9(%rbx)
je 0x6e50
movq %r14, %rdi
movq %rbx, %rsi
callq 0x46ab
movq %r14, %rdi
callq 0x8ed9
cmpq $0x0, 0x38(%r14)
je 0x6e69
movq %r14, %rdi
callq 0x84ba
jmp 0x6e58
movq 0x40(%r14), %rax
movq %rax, 0x38(%r14)
movq $0x0, 0x40(%r14)
testq %rax, %rax
je 0x6e8d
movq %r14, %rdi
callq 0x84ba
cmpq $0x0, 0x38(%r14)
jne 0x6e7e
movq %rbx, %rdi
xorl %esi, %esi
callq 0x8f0e
movq %rax, %r15
movq 0x50(%r14), %r12
testq %r12, %r12
je 0x6ecd
movq (%r12), %r12
movb 0x9(%r12), %al
andb $-0x8, %al
movb 0x20(%r14), %cl
andb $0x3, %cl
orb %al, %cl
movb %cl, 0x9(%r12)
movq %r14, %rdi
movq %r12, %rsi
callq 0x46ab
cmpq 0x50(%r14), %r12
jne 0x6ea3
cmpq $0x0, 0x38(%r14)
je 0x6eeb
xorl %r12d, %r12d
movq %r14, %rdi
callq 0x84ba
addq %rax, %r12
cmpq $0x0, 0x38(%r14)
jne 0x6ed7
jmp 0x6eee
xorl %r12d, %r12d
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x700f
testb $0x10, 0x9(%rax)
je 0x6f5d
movslq 0x38(%rax), %rcx
testq %rcx, %rcx
je 0x6f5d
movq %rcx, %rdx
shlq $0x4, %rdx
addq $-0x8, %rdx
movq 0x18(%rax), %rsi
movl (%rsi,%rdx), %r8d
cmpl $0x4, %r8d
jl 0x6f51
movq -0x8(%rsi,%rdx), %r9
movzbl 0x9(%r9), %edi
jne 0x6f39
andb $-0x4, %dil
movb %dil, 0x9(%r9)
jmp 0x6f51
testb $0x3, %dil
jne 0x6f4a
cmpl $0x7, %r8d
jne 0x6f51
andl $0x8, %edi
je 0x6f51
movl $0x0, (%rsi,%rdx)
decq %rcx
addq $-0x10, %rdx
testq %rcx, %rcx
jne 0x6f15
movzbl 0xb(%rax), %ecx
cmpq $0x1f, %rcx
ja 0x7006
movabsq $0x100000000, %rdx      # imm = 0x100000000
shlq %cl, %rdx
sarq $0x20, %rdx
leaq (%rdx,%rdx,4), %rcx
leaq -0x10(,%rcx,8), %rcx
movq 0x20(%rax), %rsi
movl -0x10(%rsi,%rcx), %edi
testl %edi, %edi
je 0x6ffa
cmpl $0x4, (%rsi,%rcx)
jl 0x6fb9
movq -0x8(%rsi,%rcx), %r9
movb 0x9(%r9), %r8b
jne 0x6fb3
andb $-0x4, %r8b
movb %r8b, 0x9(%r9)
movl -0x10(%rsi,%rcx), %edi
jmp 0x6fb9
testb $0x3, %r8b
jne 0x6fe5
cmpl $0x4, %edi
jl 0x6ffa
movq -0x18(%rsi,%rcx), %r9
movzbl 0x9(%r9), %r8d
jne 0x6fd4
andb $-0x4, %r8b
movb %r8b, 0x9(%r9)
jmp 0x6ffa
testb $0x3, %r8b
jne 0x6fe5
cmpl $0x7, %edi
jne 0x6ffa
andl $0x8, %r8d
je 0x6ffa
movl $0x0, -0x10(%rsi,%rcx)
cmpl $0x4, (%rsi,%rcx)
jl 0x6ffa
movl $0xb, (%rsi,%rcx)
decq %rdx
addq $-0x28, %rcx
testq %rdx, %rdx
jne 0x6f88
movq 0x30(%rax), %rax
jmp 0x6ef2
xorb $0x3, 0x20(%r14)
movl $0x0, 0x24(%r14)
leaq 0x28(%r14), %rax
movq %rax, 0x30(%r14)
movb $0x2, 0x21(%r14)
movq 0x78(%r14), %rax
addq %r15, %r12
subq %r12, %rax
movq %rax, 0x80(%r14)
xorl %eax, %eax
leaq 0xe10d(%rip), %r12      # 0x15150
movb 0x21(%r13), %cl
testb %cl, %cl
je 0x7057
subq %rax, %rbp
testq %rbp, %rbp
jg 0x6c07
testb %cl, %cl
je 0x7075
movq 0x88(%r13), %rax
cmpq $0x3ff, %rax            # imm = 0x3FF
ja 0x709e
movl $0x400, %eax            # imm = 0x400
addq 0x78(%r13), %rax
jmp 0x70af
movq 0x80(%r13), %rax
shrq $0x2, %rax
movabsq $0x28f5c28f5c28f5c3, %rcx # imm = 0x28F5C28F5C28F5C3
mulq %rcx
shrq $0x2, %rdx
movslq 0x90(%r13), %rax
imulq %rdx, %rax
jmp 0x70af
addq $-0x400, %rax           # imm = 0xFC00
movq %rax, 0x88(%r13)
movq 0x78(%r13), %rax
movq %rax, 0x70(%r13)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq