// File: acliusBackHome[P]kamaya/dist/ParseExpression.cpp
// Function: ParseExpression::get_logic_expression(ExpressionType, ParseExpression const&, ParseExpression const&)
const ParseExpression &
ParseExpression::get_logic_expression(ExpressionType type,
                                      const ParseExpression &expr1, const ParseExpression &expr2) {
    switch (type) {
        case E_LOGIC_OR:
        case E_LOGIC_AND:
        case E_G:
        case E_GE:
        case E_EQUAL:
        case E_NE:
        case E_L:
        case E_LE:
            return generate_expression(type, expr1, expr2);
        default:
            break;
    }
    // 错误调用
    string info = "ParseExpression::get_logic_expression(ExpressionType type,"
                  "const ParseExpression &expr1, const ParseExpression &expr2)";
    info += " expr1=" + to_string(expr1.get_id());
    info += " expr2=" + to_string(expr2.get_id());
    throw ParseException(EX_EXPRESSION_CAN_NOT_GENERATE, info);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl -0x4(%rbp), %eax
addl $-0x11, %eax
subl $0x7, %eax
ja 0x6360c
jmp 0x635f3
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x62a20
addq $0xf0, %rsp
popq %rbp
retq
jmp 0x6360e
leaq -0x39(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x45f0
movq -0xd8(%rbp), %rdx
leaq 0x2cd5b(%rip), %rsi     # 0x90387
leaq -0x38(%rbp), %rdi
callq 0x4450
jmp 0x63637
leaq -0x39(%rbp), %rdi
callq 0x4380
movq -0x10(%rbp), %rdi
callq 0x63810
movq %rax, -0xe0(%rbp)
jmp 0x63652
movq -0xe0(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x15db0
jmp 0x63667
leaq 0x296d3(%rip), %rsi     # 0x8cd41
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rdx
callq 0x15d60
jmp 0x63680
leaq -0x38(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x43f0
jmp 0x6368f
leaq -0x70(%rbp), %rdi
callq 0x4688
leaq -0x90(%rbp), %rdi
callq 0x4688
movq -0x18(%rbp), %rdi
callq 0x63810
movq %rax, -0xe8(%rbp)
jmp 0x636b6
movq -0xe8(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x15db0
jmp 0x636cb
leaq 0x29677(%rip), %rsi     # 0x8cd49
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rdx
callq 0x15d60
jmp 0x636e7
leaq -0x38(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x43f0
jmp 0x636f9
leaq -0xb0(%rbp), %rdi
callq 0x4688
leaq -0xd0(%rbp), %rdi
callq 0x4688
movl $0x28, %edi
callq 0x41c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xf0(%rbp)
movl $0x10, %esi
leaq -0x38(%rbp), %rdx
callq 0x73a90
jmp 0x63738
movq -0xf0(%rbp), %rdi
leaq 0x6260a(%rip), %rsi     # 0xc5d50
leaq -0x4d8bd(%rip), %rdx    # 0x15e90
callq 0x45b0
jmp 0x6380e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x39(%rbp), %rdi
callq 0x4380
jmp 0x63805
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x637fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x637a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x4688
leaq -0x90(%rbp), %rdi
callq 0x4688
jmp 0x637fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x637d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x4688
leaq -0xd0(%rbp), %rdi
callq 0x4688
jmp 0x637fc
movq -0xf0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x4280
leaq -0x38(%rbp), %rdi
callq 0x4688
movq -0x48(%rbp), %rdi
callq 0x45e0
nop