// File: /workspace/github_cpp_makefile_star2_O1/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 0x40284(%rip), %rsi     # 0x778db
callq 0x2e0f0
testl %eax, %eax
je 0x37688
movq 0x70(%r14), %rsi
movq 0x78(%r14), %rdx
leaq -0x1c8(%rbp), %rdi
callq 0x2e440
leaq 0x3e749(%rip), %rsi     # 0x75dc4
movl $0x1, %edx
movq %rax, %rdi
callq 0x2e440
leaq 0x3e737(%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 0x42507(%rip), %rsi     # 0x79bcf
movl $0x3, %edx
movq %rax, %rdi
callq 0x2e440
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x376e7
callq 0x2e360
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x3775c
movq 0x40(%rax), %rax
movq 0x8(%rax), %rcx
cmpq (%rax), %rcx
je 0x3775c
leaq 0x3e6c9(%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 0x3fc79(%rip), %rsi     # 0x773b6
movl $0x4, %edx
movq %rax, %rdi
callq 0x2e440
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3775c
callq 0x2e360
leaq 0x3e675(%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 0x3fc1a(%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 0x377bf
callq 0x2e360
movq 0x58(%r14), %rbx
movq 0x60(%r14), %r14
cmpq %r14, %rbx
je 0x37847
leaq 0x4089d(%rip), %r15     # 0x78070
leaq -0x1c8(%rbp), %r12
leaq 0x3e644(%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 0x32f92
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 0x3783e
callq 0x2e360
addq $0x20, %rbx
cmpq %r14, %rbx
jne 0x377e1
leaq 0x4283f(%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 0x5672f(%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 0x378bf
jmp 0x378c4
jmp 0x378bf
jmp 0x378bf
jmp 0x378c4
movq %rax, %r14
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0x378cf
jmp 0x378bf
movq %rax, %r14
jmp 0x378d9
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x378d9
callq 0x2e360
movq 0x566c8(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %r14, %rdi
callq 0x2e730