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

{
  s << "<constructor";
  s << " parent=\"0x" << hex << parent->getId() << "\"";
  s << " first=\"" << dec << firstwhitespace << "\"";
  s << " length=\"" << minimumlength << "\"";
  s << " line=\"" << lineno << "\">\n";
  for(int4 i=0;i<operands.size();++i)
    s << "<oper id=\"0x" << hex << operands[i]->getId() << "\"/>\n";
  for(int4 i=0;i<printpiece.size();++i) {
    if (printpiece[i][0]=='\n') {
      int4 index = printpiece[i][1]-'A';
      s << "<opprint id=\"" << dec << index << "\"/>\n";
    }
    else {
      s << "<print piece=\"";
      xml_escape(s, printpiece[i].c_str()); 
      s << "\"/>\n";
    }
  }
  for(int4 i=0;i<context.size();++i)
    context[i]->saveXml(s);
  if (templ != (ConstructTpl *)0)
    templ->saveXml(s,-1);
  for(int4 i=0;i<namedtempl.size();++i) {
    if (namedtempl[i] == (ConstructTpl *)0) // Some sections may be NULL
      continue;
    namedtempl[i]->saveXml(s,i);
  }
  s << "</constructor>\n";
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x58(%rsp), %rdi
leaq 0x431ed(%rip), %rsi     # 0x189341
callq 0xd8300
movq 0x58(%rsp), %rdi
leaq 0x42df2(%rip), %rsi     # 0x188f57
callq 0xd8300
movq %rax, %rdi
movq 0x81e54(%rip), %rsi     # 0x1c7fc8
callq 0xd1180
movq %rax, %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x30(%rsp)
movq 0x8(%rax), %rdi
callq 0xdbac0
movq 0x30(%rsp), %rdi
movl %eax, %esi
callq 0xdbce0
movq %rax, %rdi
leaq 0x432e7(%rip), %rsi     # 0x18948c
callq 0xd8300
movq 0x58(%rsp), %rdi
leaq 0x43198(%rip), %rsi     # 0x18934e
callq 0xd8300
movq %rax, %rdi
movq 0x81bd3(%rip), %rsi     # 0x1c7d98
callq 0xd1180
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0x88(%rax), %esi
callq 0xe03e0
movq %rax, %rdi
leaq 0x432a5(%rip), %rsi     # 0x18948c
callq 0xd8300
movq 0x58(%rsp), %rdi
leaq 0x4315f(%rip), %rsi     # 0x189357
callq 0xd8300
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0x80(%rax), %esi
callq 0xe03e0
movq %rax, %rdi
leaq 0x43272(%rip), %rsi     # 0x18948c
callq 0xd8300
movq 0x58(%rsp), %rdi
leaq 0x43136(%rip), %rsi     # 0x189361
callq 0xd8300
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0x90(%rax), %esi
callq 0xe03e0
movq %rax, %rdi
leaq 0x42bcf(%rip), %rsi     # 0x188e1c
callq 0xd8300
movl $0x0, 0x54(%rsp)
movq 0x38(%rsp), %rdi
movslq 0x54(%rsp), %rax
movq %rax, 0x28(%rsp)
addq $0x18, %rdi
callq 0xd98e0
movq %rax, %rcx
movq 0x28(%rsp), %rax
cmpq %rcx, %rax
jae 0x1462ea
movq 0x58(%rsp), %rdi
leaq 0x430de(%rip), %rsi     # 0x189369
callq 0xd8300
movq %rax, %rdi
movq 0x81d2e(%rip), %rsi     # 0x1c7fc8
callq 0xd1180
movq 0x38(%rsp), %rdi
movq %rax, 0x20(%rsp)
addq $0x18, %rdi
movslq 0x54(%rsp), %rsi
callq 0xcfaf0
movq (%rax), %rdi
callq 0xdbac0
movq 0x20(%rsp), %rdi
movl %eax, %esi
callq 0xdbce0
movq %rax, %rdi
leaq 0x42547(%rip), %rsi     # 0x18881c
callq 0xd8300
movl 0x54(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x54(%rsp)
jmp 0x14625a
movl $0x0, 0x50(%rsp)
movq 0x38(%rsp), %rdi
movslq 0x50(%rsp), %rax
movq %rax, 0x18(%rsp)
addq $0x30, %rdi
callq 0xe1670
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
jae 0x14640f
movq 0x38(%rsp), %rdi
addq $0x30, %rdi
movslq 0x50(%rsp), %rsi
callq 0xda3d0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xd9290
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0x1463a9
movq 0x38(%rsp), %rdi
addq $0x30, %rdi
movslq 0x50(%rsp), %rsi
callq 0xda3d0
movq %rax, %rdi
movl $0x1, %esi
callq 0xd9290
movsbl (%rax), %eax
subl $0x41, %eax
movl %eax, 0x4c(%rsp)
movq 0x58(%rsp), %rdi
leaq 0x42ffe(%rip), %rsi     # 0x189376
callq 0xd8300
movq %rax, %rdi
movq 0x81a11(%rip), %rsi     # 0x1c7d98
callq 0xd1180
movq %rax, %rdi
movl 0x4c(%rsp), %esi
callq 0xe03e0
movq %rax, %rdi
leaq 0x4247a(%rip), %rsi     # 0x18881c
callq 0xd8300
jmp 0x1463fd
movq 0x58(%rsp), %rdi
leaq 0x42fcf(%rip), %rsi     # 0x189384
callq 0xd8300
movq 0x38(%rsp), %rdi
movq 0x58(%rsp), %rax
movq %rax, 0x10(%rsp)
addq $0x30, %rdi
movslq 0x50(%rsp), %rsi
callq 0xda3d0
movq %rax, %rdi
callq 0xd1d80
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0xcfab0
movq 0x58(%rsp), %rdi
leaq 0x42424(%rip), %rsi     # 0x18881c
callq 0xd8300
jmp 0x1463ff
movl 0x50(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x50(%rsp)
jmp 0x1462f2
movl $0x0, 0x48(%rsp)
movq 0x38(%rsp), %rdi
movslq 0x48(%rsp), %rax
movq %rax, 0x8(%rsp)
addq $0x48, %rdi
callq 0xd27b0
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x14646a
movq 0x38(%rsp), %rdi
addq $0x48, %rdi
movslq 0x48(%rsp), %rsi
callq 0xdcd50
movq (%rax), %rdi
movq 0x58(%rsp), %rsi
movq (%rdi), %rax
callq *0x18(%rax)
movl 0x48(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x48(%rsp)
jmp 0x146417
movq 0x38(%rsp), %rax
cmpq $0x0, 0x60(%rax)
je 0x14648e
movq 0x38(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x58(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xd1cf0
movl $0x0, 0x44(%rsp)
movq 0x38(%rsp), %rdi
movslq 0x44(%rsp), %rax
movq %rax, (%rsp)
addq $0x68, %rdi
callq 0xd33b0
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x146505
movq 0x38(%rsp), %rdi
addq $0x68, %rdi
movslq 0x44(%rsp), %rsi
callq 0xdc330
cmpq $0x0, (%rax)
jne 0x1464d4
jmp 0x1464f8
movq 0x38(%rsp), %rdi
addq $0x68, %rdi
movslq 0x44(%rsp), %rsi
callq 0xdc330
movq (%rax), %rdi
movq 0x58(%rsp), %rsi
movl 0x44(%rsp), %edx
callq 0xd1cf0
movl 0x44(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x44(%rsp)
jmp 0x146496
movq 0x58(%rsp), %rdi
leaq 0x42e82(%rip), %rsi     # 0x189393
callq 0xd8300
addq $0x68, %rsp
retq
nopl (%rax,%rax)