// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x1c8(%rbp), %rdi
callq 0x2e550
leaq 0x70(%r14), %rdi
leaq 0x40666(%rip), %rsi     # 0x778db
callq 0x2e0f0
testl %eax, %eax
je 0x372a6
movq 0x70(%r14), %rsi
movq 0x78(%r14), %rdx
leaq -0x1c8(%rbp), %rdi
callq 0x2e440
leaq 0x3eb2b(%rip), %rsi     # 0x75dc4
movl $0x1, %edx
movq %rax, %rdi
callq 0x2e440
leaq 0x3eb19(%rip), %rsi     # 0x75dc6
leaq -0x1c8(%rbp), %rdi
movl $0x6, %edx
callq 0x2e440
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x48(%rbp), %rdi
callq *(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x1c8(%rbp), %rdi
callq 0x2e440
leaq 0x428e9(%rip), %rsi     # 0x79bcf
movl $0x3, %edx
movq %rax, %rdi
callq 0x2e440
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37305
callq 0x2e360
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x3737a
movq 0x40(%rax), %rax
movq 0x8(%rax), %rcx
cmpq (%rax), %rcx
je 0x3737a
leaq 0x3eaab(%rip), %rsi     # 0x75dcd
leaq -0x1c8(%rbp), %rdi
movl $0xa, %edx
callq 0x2e440
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0x48(%rbp), %rdi
callq *(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x1c8(%rbp), %rdi
callq 0x2e440
leaq 0x4005b(%rip), %rsi     # 0x773b6
movl $0x4, %edx
movq %rax, %rdi
callq 0x2e440
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3737a
callq 0x2e360
leaq 0x3ea57(%rip), %rsi     # 0x75dd8
leaq -0x1c8(%rbp), %rdi
movl $0xc, %edx
callq 0x2e440
movq 0x50(%r14), %rsi
movq (%rsi), %rax
leaq -0x48(%rbp), %rdi
callq *(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x1c8(%rbp), %rdi
callq 0x2e440
leaq 0x3fffc(%rip), %rsi     # 0x773b6
movl $0x4, %edx
movq %rax, %rdi
callq 0x2e440
movq %rbx, -0x50(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x373dd
callq 0x2e360
movq 0x58(%r14), %rbx
movq 0x60(%r14), %r14
cmpq %r14, %rbx
je 0x37465
leaq 0x40c7f(%rip), %r15     # 0x78070
leaq -0x1c8(%rbp), %r12
leaq 0x3ea26(%rip), %r13     # 0x75e25
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0x32cbc
movl $0x2, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x2e440
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %r12, %rdi
callq 0x2e440
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2e440
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3745c
callq 0x2e360
addq $0x20, %rbx
cmpq %r14, %rbx
jne 0x373ff
leaq 0x42c21(%rip), %rsi     # 0x7a08d
leaq -0x1c8(%rbp), %rdi
movl $0x3, %edx
callq 0x2e440
movq -0x50(%rbp), %rbx
leaq -0x1c0(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x56b11(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x374dd
jmp 0x374e2
jmp 0x374dd
jmp 0x374dd
jmp 0x374e2
movq %rax, %r14
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0x374ed
jmp 0x374dd
movq %rax, %r14
jmp 0x374f7
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x374f7
callq 0x2e360
movq 0x56aaa(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %r14, %rdi
callq 0x2e730