// File: /workspace/github_c_makefile_star2_O0/masyagin1998[P]GCI/src/bytecode-generator/bytecode-generator.c
// Function: emit_loop
static void emit_loop(bytecode_generator_type_t bc_gen, size_t loop_start)
{
    int offset;
    
    PUSH_BACK(bc_gen->bc->op_codes, BC_OP_JUMP);

    offset = ((int) (bc_gen->bc->op_codes_len - loop_start + 1)) * (-1);
    
    PUSH_BACK(bc_gen->bc->op_codes, offset);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x13e10
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, 0x10(%rax)
jne 0x13d88
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq $0x1, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rdi
shlq $0x3, %rdi
callq 0x1130
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x13d81
movq 0xb2a6(%rip), %rax      # 0x1eff0
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r8
shlq $0x3, %r8
leaq 0x48aa(%rip), %rsi      # 0x1860e
leaq 0x5675(%rip), %rdx      # 0x193e0
movl $0x26a, %ecx            # imm = 0x26A
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1170
jmp 0x13d83
jmp 0x13e0e
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
shlq %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
shlq $0x3, %rsi
callq 0x1150
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x13e0a
movq 0xb21d(%rip), %rax      # 0x1eff0
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r8
shlq $0x3, %r8
leaq 0x4ba8(%rip), %rsi      # 0x18995
leaq 0x55ec(%rip), %rdx      # 0x193e0
movl $0x26a, %ecx            # imm = 0x26A
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1170
jmp 0x13e0c
jmp 0x13e0e
jmp 0x13e10
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq $0x1d, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
subq -0x10(%rbp), %rax
addq $0x1, %rax
imull $-0x1, %eax, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x13f8d
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, 0x10(%rax)
jne 0x13f05
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq $0x1, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rdi
shlq $0x3, %rdi
callq 0x1130
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x13efe
movq 0xb129(%rip), %rax      # 0x1eff0
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r8
shlq $0x3, %r8
leaq 0x472d(%rip), %rsi      # 0x1860e
leaq 0x54f8(%rip), %rdx      # 0x193e0
movl $0x26e, %ecx            # imm = 0x26E
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1170
jmp 0x13f00
jmp 0x13f8b
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
shlq %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
shlq $0x3, %rsi
callq 0x1150
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x13f87
movq 0xb0a0(%rip), %rax      # 0x1eff0
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %r8
shlq $0x3, %r8
leaq 0x4a2b(%rip), %rsi      # 0x18995
leaq 0x546f(%rip), %rdx      # 0x193e0
movl $0x26e, %ecx            # imm = 0x26E
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1170
jmp 0x13f89
jmp 0x13f8b
jmp 0x13f8d
movslq -0x14(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)