// File: /workspace/github_cpp_makefile_star2_O3/devaigergely81[P]flex-bison-example/code_generator_implementation.cc
// Function: if_instruction::get_code[abi:cxx11]()
std::string if_instruction::get_code() {
    std::string else_label = next_label();
    std::string end_label = next_label();
    std::stringstream ss;
    ss << condition->get_code();
    ss << "cmp al,1" << std::endl;
    ss << "jne near " << else_label << std::endl;
    generate_code_of_commands(ss, true_branch);
    ss << "jmp " << end_label << std::endl;
    ss << else_label << ":" << std::endl;
    generate_code_of_commands(ss, false_branch);
    ss << end_label << ":" << std::endl;
    return ss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1f0, %rsp            # imm = 0x1F0
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x60(%rbp), %rdi
callq 0x8f25
leaq -0x40(%rbp), %rdi
callq 0x8f25
leaq -0x208(%rbp), %rdi
callq 0x3190
movq 0x10(%r14), %rsi
movq (%rsi), %rax
leaq -0x80(%rbp), %rdi
callq *0x18(%rax)
leaq -0x1f8(%rbp), %r15
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq %r15, %rdi
callq 0x3270
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa732
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x3240
leaq 0x2a47(%rip), %rsi      # 0xd180
movl $0x8, %edx
movq %r15, %rdi
callq 0x3270
movq -0x1f8(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3210
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
leaq 0x2aad(%rip), %rsi      # 0xd225
movl $0x9, %edx
movq %r15, %rdi
callq 0x3270
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq %r15, %rdi
callq 0x3270
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3210
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq 0x18(%r14), %rsi
movq %r15, %rdi
callq 0xa9bb
leaq 0x2a5d(%rip), %rsi      # 0xd22f
movl $0x4, %edx
movq %r15, %rdi
callq 0x3270
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq %r15, %rdi
callq 0x3270
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3210
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq %r15, %rdi
callq 0x3270
movq %rax, %r12
leaq 0x2a7e(%rip), %rsi      # 0xd2b1
movl $0x1, %edx
movq %rax, %rdi
callq 0x3270
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3210
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq 0x20(%r14), %rsi
movq %r15, %rdi
callq 0xa9bb
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq %r15, %rdi
callq 0x3270
movq %rax, %r14
leaq 0x2a23(%rip), %rsi      # 0xd2b1
movl $0x1, %edx
movq %rax, %rdi
callq 0x3270
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3210
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
leaq -0x1f0(%rbp), %rsi
movq %rbx, %rdi
callq 0x3320
movq 0x76d0(%rip), %rsi      # 0x11fa8
leaq -0x208(%rbp), %rdi
callq 0x31b0
leaq -0x188(%rbp), %rdi
callq 0x30d0
leaq -0x30(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa909
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x3240
leaq -0x50(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa922
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x3240
movq %rbx, %rax
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa962
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x3240
jmp 0xa962
jmp 0xa95f
movq %rax, %rbx
jmp 0xa981
movq %rax, %rbx
jmp 0xa99a
movq %rax, %rbx
movq 0x763f(%rip), %rsi      # 0x11fa8
leaq -0x208(%rbp), %rdi
callq 0x31b0
leaq -0x188(%rbp), %rdi
callq 0x30d0
leaq -0x30(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa99a
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x3240
leaq -0x50(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa9b3
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x3240
movq %rbx, %rdi
callq 0x3380