// File: /workspace/github_cpp_makefile_star2_O2/jstaursky[P]hutch/src/Sleigh/semantics.cc
// Function: ConstTpl::restoreXml(Element const*, AddrSpaceManager const*)
void ConstTpl::restoreXml(const Element *el,const AddrSpaceManager *manage)

{
  const string &typestring(el->getAttributeValue("type"));
  if (typestring == "real") {
    type = real;
    istringstream s(el->getAttributeValue("val"));
    s.unsetf(ios::dec | ios::hex | ios::oct);
    s >> value_real;
  }
  else if (typestring=="handle") {
    type = handle;
    istringstream s(el->getAttributeValue("val"));
    s.unsetf(ios::dec | ios::hex | ios::oct);
    s >> value.handle_index;
    select = readHandleSelector(el->getAttributeValue("s"));
    if (select == v_offset_plus) {
      istringstream s2(el->getAttributeValue("plus"));
      s2.unsetf(ios::dec | ios::hex | ios::oct);
      s2 >> value_real;
    }
  }
  else if (typestring=="start") {
    type = j_start;
  }
  else if (typestring=="next") {
    type = j_next;
  }
  else if (typestring=="curspace") {
    type = j_curspace;
  }
  else if (typestring=="curspace_size") {
    type = j_curspace_size;
  }
  else if (typestring=="spaceid") {
    type = spaceid;
    value.spaceid = manage->getSpaceByName(el->getAttributeValue("name"));
  }
  else if (typestring=="relative") {
    type = j_relative;
    istringstream s(el->getAttributeValue("val"));
    s.unsetf(ios::dec | ios::hex | ios::oct);
    s >> value_real;
  }
  else if (typestring == "flowref") {
    type = j_flowref;
  }
  else if (typestring == "flowref_size") {
    type = j_flowref_size;
  }
  else if (typestring == "flowdest") {
    type = j_flowdest;
  }
  else if (typestring == "flowdest_size") {
    type = j_flowdest_size;
  }
  else
    throw LowlevelError("Bad constant type");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x330, %rsp            # imm = 0x330
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x253df(%rip), %rsi     # 0x86b80
leaq 0x30(%rsp), %rdi
leaq 0x1b0(%rsp), %rdx
callq 0x515e0
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x50230
movq %rax, %r12
leaq 0x30(%rsp), %rdi
callq 0x4e020
leaq 0x25ae1(%rip), %rsi     # 0x872b5
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x61864
andl $0x0, (%rbx)
leaq 0x249c2(%rip), %rsi     # 0x861b0
leaq 0x1b0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x515e0
leaq 0x1b0(%rsp), %rsi
movq %r14, %rdi
callq 0x50230
leaq 0x30(%rsp), %rdi
pushq $0x8
popq %rdx
movq %rax, %rsi
callq 0x51500
leaq 0x1b0(%rsp), %rdi
callq 0x4e020
leaq 0x30(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x48(%rsp,%rax)
addq $0x10, %rbx
movq %rbx, %rsi
callq 0x4e460
leaq 0x30(%rsp), %rdi
callq 0x4e070
addq $0x330, %rsp            # imm = 0x330
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x25a4f(%rip), %rsi     # 0x872ba
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x619a1
movl $0x1, (%rbx)
leaq 0x24928(%rip), %rsi     # 0x861b0
leaq 0x1b0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x515e0
leaq 0x1b0(%rsp), %rsi
movq %r14, %rdi
callq 0x50230
leaq 0x30(%rsp), %rdi
pushq $0x8
popq %rdx
movq %rax, %rsi
callq 0x51500
leaq 0x1b0(%rsp), %rdi
callq 0x4e020
leaq 0x30(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x48(%rsp,%rax)
leaq 0x8(%rbx), %rsi
callq 0x4e750
leaq 0x24898(%rip), %rsi     # 0x86180
leaq 0x1b0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x515e0
leaq 0x1b0(%rsp), %rsi
movq %r14, %rdi
callq 0x50230
movq %rax, %rdi
callq 0x51910
movl %eax, 0x18(%rbx)
leaq 0x1b0(%rsp), %rdi
callq 0x4e020
cmpl $0x3, 0x18(%rbx)
jne 0x6184a
leaq 0x258a6(%rip), %rsi     # 0x871d9
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x515e0
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x50230
leaq 0x1b0(%rsp), %rdi
pushq $0x8
popq %rdx
movq %rax, %rsi
callq 0x51500
leaq 0x10(%rsp), %rdi
callq 0x4e020
leaq 0x1b0(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x1c8(%rsp,%rax)
addq $0x10, %rbx
movq %rbx, %rsi
callq 0x4e460
leaq 0x1b0(%rsp), %rdi
callq 0x4e070
jmp 0x6184a
leaq 0x25e6d(%rip), %rsi     # 0x87815
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x619bf
movl $0x2, (%rbx)
jmp 0x61854
leaq 0x258fb(%rip), %rsi     # 0x872c1
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x619dd
movl $0x3, (%rbx)
jmp 0x61854
leaq 0x258e2(%rip), %rsi     # 0x872c6
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x619fb
movl $0x4, (%rbx)
jmp 0x61854
leaq 0x258cd(%rip), %rsi     # 0x872cf
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x61a19
movl $0x5, (%rbx)
jmp 0x61854
leaq 0x252cb(%rip), %rsi     # 0x86ceb
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x61a76
movl $0x6, (%rbx)
leaq 0x245f8(%rip), %rsi     # 0x86031
leaq 0x30(%rsp), %rdi
leaq 0x1b0(%rsp), %rdx
callq 0x515e0
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x50230
movq %r15, %rdi
movq %rax, %rsi
callq 0x519f0
movq %rax, 0x8(%rbx)
leaq 0x30(%rsp), %rdi
callq 0x4e020
jmp 0x61854
leaq 0x25860(%rip), %rsi     # 0x872dd
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x61af7
movl $0x7, (%rbx)
leaq 0x2471a(%rip), %rsi     # 0x861b0
leaq 0x1b0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x515e0
leaq 0x1b0(%rsp), %rsi
movq %r14, %rdi
callq 0x50230
leaq 0x30(%rsp), %rdi
pushq $0x8
popq %rdx
movq %rax, %rsi
callq 0x51500
leaq 0x1b0(%rsp), %rdi
callq 0x4e020
leaq 0x30(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
andl $-0x4b, 0x48(%rsp,%rax)
addq $0x10, %rbx
movq %rbx, %rsi
callq 0x4e460
jmp 0x6184a
leaq 0x257e8(%rip), %rsi     # 0x872e6
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x61b15
movl $0x8, (%rbx)
jmp 0x61854
leaq 0x257d2(%rip), %rsi     # 0x872ee
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x61b33
movl $0x9, (%rbx)
jmp 0x61854
leaq 0x257c1(%rip), %rsi     # 0x872fb
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x61b51
movl $0xa, (%rbx)
jmp 0x61854
leaq 0x257ac(%rip), %rsi     # 0x87304
movq %r12, %rdi
callq 0x520f0
testb %al, %al
je 0x61b6f
movl $0xb, (%rbx)
jmp 0x61854
pushq $0x20
popq %rdi
callq 0x4e180
movq %rax, %r14
leaq 0x25791(%rip), %rsi     # 0x87312
leaq 0x30(%rsp), %rdi
leaq 0x1b0(%rsp), %rdx
callq 0x515e0
movb $0x1, %bpl
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x4ddf0
xorl %ebp, %ebp
movq 0x4d2f4(%rip), %rsi     # 0xaeea0
movq 0x4d085(%rip), %rdx     # 0xaec38
movq %r14, %rdi
callq 0x51630
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x4e020
testb %bpl, %bpl
jne 0x61bd2
jmp 0x61c4e
movq %rax, %rbx
movq %r14, %rdi
callq 0x4ea60
jmp 0x61c4e
jmp 0x61c1c
jmp 0x61c4b
jmp 0x61c2f
jmp 0x61c4b
jmp 0x61c3c
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
callq 0x4e070
jmp 0x61c1f
jmp 0x61c1c
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x61c15
jmp 0x61c1c
jmp 0x61c1c
jmp 0x61c4b
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
callq 0x4e020
jmp 0x61c1f
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x4e070
jmp 0x61c4e
jmp 0x61c2f
jmp 0x61c4b
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
jmp 0x61c44
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x4e020
jmp 0x61c4e
movq %rax, %rbx
movq %rbx, %rdi
callq 0x518c0