// File: /workspace/github_cpp_makefile_star2_O2/acliusBackHome[P]kamaya/dist/ParseExpression.cpp
// Function: ParseExpression::get_assign_expression(ParseExpression const&, ParseExpression const&)
const ParseExpression &ParseExpression::get_assign_expression(
        const ParseExpression &unary_expr, const ParseExpression &expr) {
    ParseExpression res;
    if (unary_expr.is_const()) {
        string info = "ParseExpression::get_assign_expression"
                      "(const ParseExpression &unary_expr, const ParseExpression &expr)";
        info += "unary_expr=" + to_string(unary_expr.get_id());
        info += "expr=" + to_string(expr.get_id());
        throw ParseException(EX_CAN_NOT_ASSIGN_CONST, info);
    }
    try {
        if (ParseType::convert(unary_expr.get_ret_type(), expr.get_ret_type())) {
            res.expr_type = E_ASSIGN;
            res.child[0] = get_expr_id(unary_expr);
            res.child[1] = get_expr_id(expr);
            res.ret_type_id = unary_expr.get_ret_type().get_id();
        }
    } catch (ParseException &exc) {
        string info = "in ParseExpression::get_assign_expression("
                      "const ParseExpression &unary_expr, const ParseExpression &expr)";
        info += " unary_expr: " + to_string(unary_expr.get_id());
        info += " expr: " + to_string(expr.get_id());
        exc.push_trace(info);
        throw exc;
    }
    update(res);
    return get_expression(res.get_id());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x98, %rsp
orq $-0x1, -0x90(%rbp)
movq %rsi, %rbx
andl $0x0, -0x88(%rbp)
movq %rdi, %r15
xorps %xmm0, %xmm0
movaps %xmm0, -0xb0(%rbp)
movaps %xmm0, -0xa0(%rbp)
callq 0x24972
testb %al, %al
jne 0x25b40
movq %r15, %rdi
callq 0x249b0
movq %rax, %r14
movq %rbx, %rdi
callq 0x249b0
movq %r14, %rdi
movq %rax, %rsi
callq 0x228e4
testb %al, %al
je 0x25b00
movl $0x19, -0x88(%rbp)
movq %r15, %rdi
callq 0x25a38
movq %rax, -0xb0(%rbp)
movq %rbx, %rdi
callq 0x25a38
movq %rax, -0xa8(%rbp)
movq %r15, %rdi
callq 0x249b0
movq %rax, %rdi
callq 0x212de
movq %rax, -0x90(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x24716
leaq -0xb0(%rbp), %rdi
callq 0x25a38
movq %rax, %rdi
callq 0x247e8
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x25150
movq %rbx, %rax
addq $0x98, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1594c(%rip), %rsi     # 0x3b493
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x4130
movq %r15, %rdi
callq 0x25a38
leaq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0xc865
leaq 0x15915(%rip), %rsi     # 0x3b484
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rdx
callq 0xc837
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4580
leaq -0x38(%rbp), %rdi
callq 0x4598
leaq -0x58(%rbp), %rdi
callq 0x4598
movq %rbx, %rdi
callq 0x25a38
leaq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0xc865
leaq 0x158c8(%rip), %rsi     # 0x3b47e
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rdx
callq 0xc837
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4580
leaq -0x38(%rbp), %rdi
callq 0x4598
leaq -0x58(%rbp), %rdi
callq 0x4598
pushq $0x28
popq %rdi
callq 0x4180
movq %rax, %rbx
pushq $0x14
popq %rsi
leaq -0x78(%rbp), %rdx
movq %rax, %rdi
callq 0x2b53c
leaq 0x2d16d(%rip), %rsi     # 0x52d70
leaq -0x19362(%rip), %rdx    # 0xc8a8
movq %rbx, %rdi
callq 0x44e0
jmp 0x25d54
jmp 0x25c48
movq %rax, %r14
movq %rbx, %rdi
callq 0x4220
jmp 0x25c4b
jmp 0x25c2c
jmp 0x25c3a
jmp 0x25c48
movq %rax, %r14
leaq -0x38(%rbp), %rdi
callq 0x4598
jmp 0x25c3d
movq %rax, %r14
leaq -0x58(%rbp), %rdi
callq 0x4598
jmp 0x25c4b
movq %rax, %r14
leaq -0x78(%rbp), %rdi
callq 0x4598
jmp 0x25d8e
jmp 0x25c5b
movq %rax, %r14
jmp 0x25d8e
movq %rax, %r14
cmpl $0x1, %edx
jne 0x25d8e
movq %r14, %rdi
callq 0x4140
movq %rax, %r14
leaq 0x1580f(%rip), %rsi     # 0x3b490
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x4130
movq %r15, %rdi
callq 0x25a38
leaq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0xc865
leaq 0x15851(%rip), %rsi     # 0x3b4fa
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rdx
callq 0xc837
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4580
leaq -0x38(%rbp), %rdi
callq 0x4598
leaq -0x58(%rbp), %rdi
callq 0x4598
movq %rbx, %rdi
callq 0x25a38
leaq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0xc865
leaq 0x15818(%rip), %rsi     # 0x3b508
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rdx
callq 0xc837
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4580
leaq -0x38(%rbp), %rdi
callq 0x4598
leaq -0x58(%rbp), %rdi
callq 0x4598
leaq -0x78(%rbp), %rsi
movq %r14, %rdi
callq 0x2b7ea
pushq $0x28
popq %rdi
callq 0x4180
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2b876
leaq 0x2d02b(%rip), %rsi     # 0x52d70
leaq -0x194a4(%rip), %rdx    # 0xc8a8
movq %rbx, %rdi
callq 0x44e0
jmp 0x25d78
jmp 0x25d5c
jmp 0x25d6a
jmp 0x25d78
movq %rax, %r14
leaq -0x38(%rbp), %rdi
callq 0x4598
jmp 0x25d6d
movq %rax, %r14
leaq -0x58(%rbp), %rdi
callq 0x4598
jmp 0x25d7b
movq %rax, %r14
leaq -0x78(%rbp), %rdi
callq 0x4598
jmp 0x25d89
movq %rax, %r14
callq 0x44b0
leaq -0xb0(%rbp), %rdi
callq 0x25150
movq %r14, %rdi
callq 0x4500
movq %rax, %rdi
callq 0xca0b