// File: /workspace/github_cpp_makefile_star2_O2/jstaursky[P]hutch/src/Sleigh/slghsymbol.cc
// Function: SymbolTable::saveXml(std::ostream&) const
void SymbolTable::saveXml(ostream &s) const

{
  s << "<symbol_table";
  s << " scopesize=\"" << dec << table.size() << "\"";
  s << " symbolsize=\"" << symbollist.size() << "\">\n";
  for(int4 i=0;i<table.size();++i) {
    s << "<scope id=\"0x" << hex << table[i]->getId() << "\"";
    s << " parent=\"0x";
    if (table[i]->getParent() == (SymbolScope *)0)
      s << "0";
    else
      s << hex << table[i]->getParent()->getId();
    s << "\"/>\n";
  }

				// First save the headers
  for(int4 i=0;i<symbollist.size();++i)
    symbollist[i]->saveXmlHeader(s);

				// Now save the content of each symbol
  for(int4 i=0;i<symbollist.size();++i) // Must save IN ORDER
    symbollist[i]->saveXml(s);
  s << "</symbol_table>\n";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x19324(%rip), %rsi     # 0x88050
movq %rbx, %rdi
callq 0x4f5b0
leaq 0x19323(%rip), %rsi     # 0x8805e
movq %rbx, %rdi
callq 0x4f5b0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x2, %edx
movl %edx, 0x18(%rax,%rcx)
movq 0x20(%r14), %rsi
subq 0x18(%r14), %rsi
sarq $0x3, %rsi
movq %rax, %rdi
callq 0x4e990
leaq 0x19849(%rip), %rsi     # 0x885bc
movq %rax, %rdi
callq 0x4f5b0
leaq 0x192e9(%rip), %rsi     # 0x8806b
movq %rbx, %rdi
callq 0x4f5b0
movq 0x8(%r14), %rsi
subq (%r14), %rsi
sarq $0x3, %rsi
movq %rax, %rdi
callq 0x4e990
leaq 0x19035(%rip), %rsi     # 0x87dd9
movq %rax, %rdi
callq 0x4f5b0
xorl %r15d, %r15d
leaq 0x192c3(%rip), %r12     # 0x88079
leaq 0x192ca(%rip), %r13     # 0x88087
leaq 0x18a30(%rip), %rbp     # 0x877f4
movq 0x20(%r14), %rax
subq 0x18(%r14), %rax
sarq $0x3, %rax
cmpq %r15, %rax
jbe 0x6ee7a
movq %rbx, %rdi
movq %r12, %rsi
callq 0x4f5b0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rax,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rax,%rcx)
movq 0x18(%r14), %rcx
movq (%rcx,%r15,8), %rcx
movl 0x38(%rcx), %esi
movq %rax, %rdi
callq 0x4e990
movq %rax, %rdi
leaq 0x197a6(%rip), %rsi     # 0x885bc
callq 0x4f5b0
movq %rbx, %rdi
movq %r13, %rsi
callq 0x4f5b0
movq 0x18(%r14), %rax
movq (%rax,%r15,8), %rax
movq (%rax), %rax
testq %rax, %rax
je 0x6ee58
movq (%rbx), %rcx
movq -0x18(%rcx), %rcx
movl 0x18(%rbx,%rcx), %edx
andl $-0x4b, %edx
orl $0x8, %edx
movl %edx, 0x18(%rbx,%rcx)
movl 0x38(%rax), %esi
movq %rbx, %rdi
callq 0x4e990
jmp 0x6ee67
movq %rbx, %rdi
leaq 0x17cc4(%rip), %rsi     # 0x86b26
callq 0x4f5b0
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x4f5b0
incq %r15
jmp 0x6edc4
xorl %r15d, %r15d
movq (%r14), %rax
movq 0x8(%r14), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r15, %rdx
jbe 0x6eea5
movq (%rax,%r15,8), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
incq %r15
jmp 0x6ee7d
xorl %r15d, %r15d
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r15, %rcx
jbe 0x6eecd
movq (%rax,%r15,8), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x20(%rax)
incq %r15
movq (%r14), %rax
movq 0x8(%r14), %rcx
jmp 0x6eea8
leaq 0x191bf(%rip), %rsi     # 0x88093
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4f5b0