// File: eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: TableNode::toString[abi:cxx11]()
string TableNode::toString() {
    ostringstream oss;
    if(pragma_.compare("")!=0) {
        oss << pragma_ << "\n";
    }
    oss << "table " << name_->toString() << " {\n";
    if (reads_ && reads_->list_->size() > 0) {
        oss << "  reads {\n"
            << reads_->toString()
            << "  }\n";
    }
    oss << "  actions {\n"
        << actions_->toString()
        << "  }\n";
    for (auto str : options_) {
        oss << "  " << str << ";\n";
    }
    oss << "}\n\n";
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x290, %rsp            # imm = 0x290
movq %rdi, -0x248(%rbp)
movq %rdi, %rax
movq %rax, -0x240(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x238(%rbp)
leaq -0x188(%rbp), %rdi
callq 0xaa7b0
movq -0x238(%rbp), %rdi
addq $0x70, %rdi
leaq 0x7e5a6(%rip), %rsi     # 0x13bba3
callq 0xaa180
cmpl $0x0, %eax
je 0xbd655
movq -0x238(%rbp), %rsi
addq $0x70, %rsi
leaq -0x188(%rbp), %rdi
callq 0xaa4c0
movq %rax, -0x250(%rbp)
jmp 0xbd627
movq -0x250(%rbp), %rdi
leaq 0x7c79f(%rip), %rsi     # 0x139dd4
callq 0xaa540
jmp 0xbd63c
jmp 0xbd655
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0xbd98d
leaq 0x7c77a(%rip), %rsi     # 0x139dd6
leaq -0x188(%rbp), %rdi
callq 0xaa540
movq %rax, -0x258(%rbp)
jmp 0xbd671
movq -0x238(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1b8(%rbp), %rdi
callq *%rax
jmp 0xbd68d
movq -0x258(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x260(%rbp)
jmp 0xbd6a9
movq -0x260(%rbp), %rdi
leaq 0x808e0(%rip), %rsi     # 0x13df97
callq 0xaa540
jmp 0xbd6be
leaq -0x1b8(%rbp), %rdi
callq 0xaabe8
movq -0x238(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0xbd7b7
movq -0x238(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x40(%rax), %rdi
callq 0xb4620
cmpq $0x0, %rax
jbe 0xbd7b7
leaq 0x7c6dc(%rip), %rsi     # 0x139ddd
leaq -0x188(%rbp), %rdi
callq 0xaa540
movq %rax, -0x268(%rbp)
jmp 0xbd716
movq -0x238(%rbp), %rax
movq 0x48(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1d8(%rbp), %rdi
callq *%rax
jmp 0xbd732
movq -0x268(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x270(%rbp)
jmp 0xbd74e
movq -0x270(%rbp), %rdi
leaq 0x7df22(%rip), %rsi     # 0x13b67e
callq 0xaa540
jmp 0xbd763
leaq -0x1d8(%rbp), %rdi
callq 0xaabe8
jmp 0xbd7b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0xaabe8
jmp 0xbd98d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0xaabe8
jmp 0xbd98d
leaq 0x7c62a(%rip), %rsi     # 0x139de8
leaq -0x188(%rbp), %rdi
callq 0xaa540
movq %rax, -0x278(%rbp)
jmp 0xbd7d3
movq -0x238(%rbp), %rax
movq 0x50(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1f8(%rbp), %rdi
callq *%rax
jmp 0xbd7ef
movq -0x278(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x280(%rbp)
jmp 0xbd80b
movq -0x280(%rbp), %rdi
leaq 0x7de65(%rip), %rsi     # 0x13b67e
callq 0xaa540
jmp 0xbd820
leaq -0x1f8(%rbp), %rdi
callq 0xaabe8
movq -0x238(%rbp), %rax
addq $0x58, %rax
movq %rax, -0x200(%rbp)
movq -0x200(%rbp), %rdi
callq 0xc0590
movq %rax, -0x208(%rbp)
movq -0x200(%rbp), %rdi
callq 0xc05c0
movq %rax, -0x210(%rbp)
leaq -0x208(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0xc05f0
testb $0x1, %al
jne 0xbd880
jmp 0xbd947
leaq -0x208(%rbp), %rdi
callq 0xc0630
movq %rax, %rsi
leaq -0x230(%rbp), %rdi
callq 0xaa290
jmp 0xbd89d
leaq 0x7ea94(%rip), %rsi     # 0x13c338
leaq -0x188(%rbp), %rdi
callq 0xaa540
movq %rax, -0x288(%rbp)
jmp 0xbd8b9
movq -0x288(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0xaa4c0
movq %rax, -0x290(%rbp)
jmp 0xbd8d5
movq -0x290(%rbp), %rdi
leaq 0x7c552(%rip), %rsi     # 0x139e35
callq 0xaa540
jmp 0xbd8ea
leaq -0x230(%rbp), %rdi
callq 0xaabe8
leaq -0x208(%rbp), %rdi
callq 0xc0650
jmp 0xbd864
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0xaabe8
jmp 0xbd98d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x230(%rbp), %rdi
callq 0xaabe8
jmp 0xbd98d
leaq 0x80b07(%rip), %rsi     # 0x13e455
leaq -0x188(%rbp), %rdi
callq 0xaa540
jmp 0xbd95c
movq -0x248(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0xaa580
jmp 0xbd971
leaq -0x188(%rbp), %rdi
callq 0xaa130
movq -0x240(%rbp), %rax
addq $0x290, %rsp            # imm = 0x290
popq %rbp
retq
leaq -0x188(%rbp), %rdi
callq 0xaa130
movq -0x190(%rbp), %rdi
callq 0xaaa60
nopw %cs:(%rax,%rax)