// File: /workspace/github_c_makefile_star2_O1/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
subq $0x28, %rsp
movq %rdi, %rbp
movq 0x20(%rdi), %r13
movl 0x94(%r13), %eax
addl %eax, %eax
leal (%rax,%rax,4), %eax
testl %eax, %eax
movabsq $0x7ffffffffffffffe, %r15 # imm = 0x7FFFFFFFFFFFFFFE
cmovneq %rax, %r15
movq 0x78(%r13), %rax
subq 0x70(%r13), %rax
addq %rax, 0x88(%r13)
leaq 0xd7ac(%rip), %r12      # 0x140e0
movq %r13, 0x18(%rsp)
movq %rdi, 0x10(%rsp)
movq 0x20(%rbp), %r14
movzbl 0x21(%r14), %eax
cmpq $0x4, %rax
ja 0x6b11
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 0x697f
movq %r14, %rdi
callq 0x4593
movq 0xb0(%r14), %rax
cmpl $0x4, 0x80(%rax)
jl 0x69a1
movq 0x78(%rax), %rsi
testb $0x3, 0x9(%rsi)
je 0x69a1
movq %r14, %rdi
callq 0x4593
movq 0x20(%rbp), %rax
cmpl $0x4, 0xa8(%rax)
jl 0x69c3
movq 0xa0(%rax), %rsi
testb $0x3, 0x9(%rsi)
je 0x69c3
movq %r14, %rdi
callq 0x4593
movq %r14, %rdi
callq 0x8ab1
movb $0x1, 0x21(%r14)
jmp 0x6b11
cmpq $0x0, 0x50(%r14)
je 0x6b01
movq %rbp, %rdi
callq 0x89d2
movq 0x80(%r14), %rcx
movl $0x64, %eax
cmpq $0x65, %rcx
jb 0x6d50
addq $-0x64, %rcx
movq %rcx, 0x80(%r14)
jmp 0x6d50
movq 0x78(%r14), %rbx
movslq 0x24(%r14), %rsi
leal 0x1(%rsi), %eax
movl %eax, 0x24(%r14)
shlq $0x3, %rsi
addq (%r14), %rsi
movq %rbp, %rdi
movq $-0x3, %rdx
callq 0x86de
movl 0x24(%r14), %eax
cmpl 0xc(%r14), %eax
jl 0x6a42
movb $0x3, 0x21(%r14)
movq 0x78(%r14), %rax
subq %rbx, %rax
addq %rax, 0x80(%r14)
movl $0xa, %eax
jmp 0x6d50
movq 0x30(%r14), %rsi
movq 0x78(%r14), %r12
movl $0x28, %edx
movq %rbp, %rdi
callq 0x86de
movq %rax, 0x30(%r14)
cmpq $0x0, (%rax)
jne 0x6ad5
movq 0x20(%rbp), %rbx
movl 0xc(%rbx), %esi
leal 0x3(%rsi), %eax
testl %esi, %esi
cmovnsl %esi, %eax
cmpl $0x41, %esi
jl 0x6a9f
sarl $0x2, %eax
cmpl %eax, 0x8(%rbx)
jae 0x6a9f
shrl %esi
movq %rbp, %rdi
callq 0x404e
movq 0x68(%rbx), %rdx
cmpq $0x41, %rdx
jb 0x6ad0
movq %r15, 0x8(%rsp)
movq %rdx, %r15
shrq %r15
movq 0x58(%rbx), %rsi
movq %rbp, %rdi
movq %r15, %rcx
callq 0x42ab
movq %rax, 0x58(%rbx)
movq %r15, 0x68(%rbx)
movq 0x8(%rsp), %r15
movb $0x4, 0x21(%r14)
movq 0x78(%r14), %rax
subq %r12, %rax
addq %rax, 0x80(%r14)
movl $0x190, %eax            # imm = 0x190
jmp 0x6d49
cmpq $0x0, 0x38(%r14)
je 0x6b18
movq %r14, %rdi
callq 0x81ec
jmp 0x6d50
movb $0x0, 0x21(%r14)
movq $0x0, 0x88(%r14)
xorl %eax, %eax
jmp 0x6d50
movq %r15, 0x8(%rsp)
leaq 0xb8(%r14), %rbx
movq 0xd8(%r14), %r15
cmpq %rbx, %r15
je 0x6b60
testb $0x7, 0x9(%r15)
jne 0x6b52
movq 0x10(%r15), %rax
cmpl $0x4, 0x8(%rax)
jl 0x6b52
movq (%rax), %rsi
testb $0x3, 0x9(%rsi)
je 0x6b52
movq %r14, %rdi
callq 0x4593
movq 0x20(%r15), %r15
jmp 0x6b2b
movq %r14, %rdi
callq 0x81ec
cmpq $0x0, 0x38(%r14)
jne 0x6b58
movq 0x48(%r14), %rax
movq %rax, 0x38(%r14)
movq $0x0, 0x48(%r14)
testb $0x3, 0x9(%rbp)
je 0x6b88
movq %r14, %rdi
movq %rbp, %rsi
callq 0x4593
movq %r14, %rdi
callq 0x8ab1
cmpq $0x0, 0x38(%r14)
je 0x6ba1
movq %r14, %rdi
callq 0x81ec
jmp 0x6b90
movq 0x40(%r14), %rax
movq %rax, 0x38(%r14)
movq $0x0, 0x40(%r14)
testq %rax, %rax
je 0x6bc5
movq %r14, %rdi
callq 0x81ec
cmpq $0x0, 0x38(%r14)
jne 0x6bb6
movq %rbp, %rdi
xorl %esi, %esi
callq 0x8ae6
movq %rax, 0x20(%rsp)
movq 0x50(%r14), %r12
testq %r12, %r12
je 0x6c07
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 0x4593
cmpq 0x50(%r14), %r12
jne 0x6bdd
cmpq $0x0, 0x38(%r14)
je 0x6c25
xorl %r12d, %r12d
movq %r14, %rdi
callq 0x81ec
addq %rax, %r12
cmpq $0x0, 0x38(%r14)
jne 0x6c11
jmp 0x6c28
xorl %r12d, %r12d
movq 0x48(%r14), %r15
testq %r15, %r15
je 0x6d0b
testb $0x10, 0x9(%r15)
je 0x6c7a
movslq 0x38(%r15), %rbx
testq %rbx, %rbx
je 0x6c7a
movq %rbx, %r13
shlq $0x4, %r13
addq $-0x10, %r13
movq 0x18(%r15), %rbp
movq %rbp, %rdi
addq %r13, %rdi
xorl %esi, %esi
callq 0x8bb4
testl %eax, %eax
je 0x6c6e
movl $0x0, 0x8(%rbp,%r13)
decq %rbx
addq $-0x10, %r13
testq %rbx, %rbx
jne 0x6c50
movzbl 0xb(%r15), %ecx
cmpq $0x1f, %rcx
ja 0x6d02
movabsq $0x100000000, %r13      # imm = 0x100000000
shlq %cl, %r13
sarq $0x20, %r13
leaq (,%r13,4), %rax
addq %r13, %rax
leaq -0x28(,%rax,8), %rbx
movq 0x20(%r15), %rbp
cmpl $0x0, 0x8(%rbp,%rbx)
je 0x6cf6
cmpl $0x4, 0x18(%rbp,%rbx)
jl 0x6cd0
movq 0x10(%rbp,%rbx), %rcx
movb 0x9(%rcx), %al
jne 0x6ccc
andb $-0x4, %al
movb %al, 0x9(%rcx)
jmp 0x6cd0
testb $0x3, %al
jne 0x6cdf
leaq (%rbx,%rbp), %rdi
xorl %esi, %esi
callq 0x8bb4
testl %eax, %eax
je 0x6cf6
movl $0x0, 0x8(%rbp,%rbx)
cmpl $0x4, 0x18(%rbp,%rbx)
jl 0x6cf6
movl $0xb, 0x18(%rbp,%rbx)
decq %r13
addq $-0x28, %rbx
testq %r13, %r13
jne 0x6ca9
movq 0x30(%r15), %r15
jmp 0x6c2c
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 0x20(%rsp), %r12
subq %r12, %rax
movq %rax, 0x80(%r14)
xorl %eax, %eax
movq 0x18(%rsp), %r13
movq 0x10(%rsp), %rbp
movq 0x8(%rsp), %r15
leaq 0xd390(%rip), %r12      # 0x140e0
movb 0x21(%r13), %cl
testb %cl, %cl
je 0x6d64
subq %rax, %r15
testq %r15, %r15
jg 0x693e
testb %cl, %cl
je 0x6d82
movq 0x88(%r13), %rax
cmpq $0x3ff, %rax            # imm = 0x3FF
ja 0x6dab
movl $0x400, %eax            # imm = 0x400
addq 0x78(%r13), %rax
jmp 0x6dbc
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 0x6dbc
addq $-0x400, %rax           # imm = 0xFC00
movq %rax, 0x88(%r13)
movq 0x78(%r13), %rax
movq %rax, 0x70(%r13)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq