// File: eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionStmtNode::toString[abi:cxx11]()
string ActionStmtNode::toString() {
    ostringstream oss;
    if(type_==ActionStmtType::NAME_ARGLIST) {
        oss << " " 
            << name1_->toString()
            << "("
            << args_->toString() 
            << ");\n";
    } else if (type_==ActionStmtType::PROG_EXEC) {
        oss << " " 
            << name1_->toString() 
            << " . "
            << name2_->toString()
            << " ( "
            << args_->toString()
            << " );\n";
    } else {
        oss << "parsing error!\n";
    }
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
movq %rdi, -0x250(%rbp)
movq %rdi, %rax
movq %rax, -0x248(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x240(%rbp)
leaq -0x188(%rbp), %rdi
callq 0xaa7b0
movq -0x240(%rbp), %rax
cmpl $0x0, 0x3c(%rax)
jne 0xbf520
leaq 0x7cf46(%rip), %rsi     # 0x13c339
leaq -0x188(%rbp), %rdi
callq 0xaa540
movq %rax, -0x258(%rbp)
jmp 0xbf408
movq -0x240(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1b8(%rbp), %rdi
callq *%rax
jmp 0xbf424
movq -0x258(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x260(%rbp)
jmp 0xbf440
movq -0x260(%rbp), %rdi
leaq 0x7eb3b(%rip), %rsi     # 0x13df89
callq 0xaa540
movq %rax, -0x268(%rbp)
jmp 0xbf45c
movq -0x240(%rbp), %rax
movq 0x58(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1d8(%rbp), %rdi
callq *%rax
jmp 0xbf478
movq -0x268(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x270(%rbp)
jmp 0xbf494
movq -0x270(%rbp), %rdi
leaq 0x7a992(%rip), %rsi     # 0x139e34
callq 0xaa540
jmp 0xbf4a9
leaq -0x1d8(%rbp), %rdi
callq 0xaabe8
leaq -0x1b8(%rbp), %rdi
callq 0xaabe8
jmp 0xbf6e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0xbf712
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0xbf50f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0xaabe8
leaq -0x1b8(%rbp), %rdi
callq 0xaabe8
jmp 0xbf712
movq -0x240(%rbp), %rax
cmpl $0x1, 0x3c(%rax)
jne 0xbf6c8
leaq 0x7ce01(%rip), %rsi     # 0x13c339
leaq -0x188(%rbp), %rdi
callq 0xaa540
movq %rax, -0x278(%rbp)
jmp 0xbf54d
movq -0x240(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1f8(%rbp), %rdi
callq *%rax
jmp 0xbf569
movq -0x278(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x280(%rbp)
jmp 0xbf585
movq -0x280(%rbp), %rdi
leaq 0x7a898(%rip), %rsi     # 0x139e2b
callq 0xaa540
movq %rax, -0x288(%rbp)
jmp 0xbf5a1
movq -0x240(%rbp), %rax
movq 0x48(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x218(%rbp), %rdi
callq *%rax
jmp 0xbf5bd
movq -0x288(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x290(%rbp)
jmp 0xbf5d9
movq -0x290(%rbp), %rdi
leaq 0x7a848(%rip), %rsi     # 0x139e2f
callq 0xaa540
movq %rax, -0x298(%rbp)
jmp 0xbf5f5
movq -0x240(%rbp), %rax
movq 0x58(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x238(%rbp), %rdi
callq *%rax
jmp 0xbf611
movq -0x298(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x2a0(%rbp)
jmp 0xbf62d
movq -0x2a0(%rbp), %rdi
leaq 0x7a7f8(%rip), %rsi     # 0x139e33
callq 0xaa540
jmp 0xbf642
leaq -0x238(%rbp), %rdi
callq 0xaabe8
leaq -0x218(%rbp), %rdi
callq 0xaabe8
leaq -0x1f8(%rbp), %rdi
callq 0xaabe8
jmp 0xbf6df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0xbf6ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0xbf6ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x238(%rbp), %rdi
callq 0xaabe8
leaq -0x218(%rbp), %rdi
callq 0xaabe8
leaq -0x1f8(%rbp), %rdi
callq 0xaabe8
jmp 0xbf712
leaq 0x7a769(%rip), %rsi     # 0x139e38
leaq -0x188(%rbp), %rdi
callq 0xaa540
jmp 0xbf6dd
jmp 0xbf6df
jmp 0xbf6e1
movq -0x250(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0xaa580
jmp 0xbf6f6
leaq -0x188(%rbp), %rdi
callq 0xaa130
movq -0x248(%rbp), %rax
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq
leaq -0x188(%rbp), %rdi
callq 0xaa130
movq -0x190(%rbp), %rdi
callq 0xaaa60
nopw (%rax,%rax)