// File: /workspace/github_cpp_makefile_star2_O3/jstaursky[P]hutch/src/Sleigh/slghpatexpress.cc
// Function: PatternExpression::restoreExpression(Element const*, Translate*)
PatternExpression *PatternExpression::restoreExpression(const Element *el,Translate *trans)

{
  PatternExpression *res;
  const string &nm(el->getName());

  if (nm == "tokenfield")
    res = new TokenField();
  else if (nm == "contextfield")
    res = new ContextField();
  else if (nm == "intb")
    res = new ConstantValue();
  else if (nm == "operand_exp")
    res = new OperandValue();
  else if (nm == "start_exp")
    res = new StartInstructionValue();
  else if (nm == "end_exp")
    res = new EndInstructionValue();
  else if (nm == "plus_exp")
    res = new PlusExpression();
  else if (nm == "sub_exp")
    res = new SubExpression();
  else if (nm == "mult_exp")
    res = new MultExpression();
  else if (nm == "lshift_exp")
    res = new LeftShiftExpression();
  else if (nm == "rshift_exp")
    res = new RightShiftExpression();
  else if (nm == "and_exp")
    res = new AndExpression();
  else if (nm == "or_exp")
    res = new OrExpression();
  else if (nm == "xor_exp")
    res = new XorExpression();
  else if (nm == "div_exp")
    res = new DivExpression();
  else if (nm == "minus_exp")
    res = new MinusExpression();
  else if (nm == "not_exp")
    res = new NotExpression();
  else
    return (PatternExpression *)0;

  res->restoreXml(el,trans);
  return res;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x24499(%rip), %rsi     # 0x807b3
callq 0x3f590
testl %eax, %eax
je 0x5c49f
leaq 0x2451c(%rip), %rsi     # 0x8084a
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c4bf
leaq 0x24404(%rip), %rsi     # 0x80749
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c4df
leaq 0x2457b(%rip), %rsi     # 0x808d7
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c4ff
leaq 0x243db(%rip), %rsi     # 0x8074e
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c51f
leaq 0x243ce(%rip), %rsi     # 0x80758
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c53f
leaq 0x243bf(%rip), %rsi     # 0x80760
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c55f
leaq 0x243b1(%rip), %rsi     # 0x80769
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c586
leaq 0x243a2(%rip), %rsi     # 0x80771
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c5ad
leaq 0x24394(%rip), %rsi     # 0x8077a
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c5d4
leaq 0x24388(%rip), %rsi     # 0x80785
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c5fb
leaq 0x244c7(%rip), %rsi     # 0x808db
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c622
leaq 0x24366(%rip), %rsi     # 0x80791
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c649
leaq 0x2434e(%rip), %rsi     # 0x80790
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c670
leaq 0x2433f(%rip), %rsi     # 0x80798
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c694
leaq 0x24330(%rip), %rsi     # 0x807a0
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c6b8
leaq 0x24323(%rip), %rsi     # 0x807aa
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c6dd
xorl %r15d, %r15d
jmp 0x5c713
movl $0x30, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x46aee(%rip), %rax     # 0xa2fa8
jmp 0x5c700
movl $0x28, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x46a3e(%rip), %rax     # 0xa2f18
jmp 0x5c700
movl $0x18, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x469d6(%rip), %rax     # 0xa2ed0
jmp 0x5c700
movl $0x18, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x46926(%rip), %rax     # 0xa2e40
jmp 0x5c700
movl $0x10, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x465a6(%rip), %rax     # 0xa2ae0
jmp 0x5c700
movl $0x10, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x4697e(%rip), %rax     # 0xa2ed8
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46787(%rip), %rax     # 0xa2d08
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46870(%rip), %rax     # 0xa2e18
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46651(%rip), %rax     # 0xa2c20
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x468ca(%rip), %rax     # 0xa2ec0
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x469c3(%rip), %rax     # 0xa2fe0
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x465ec(%rip), %rax     # 0xa2c30
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46625(%rip), %rax     # 0xa2c90
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x4643e(%rip), %rax     # 0xa2ad0
jmp 0x5c700
movl $0x20, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x4667a(%rip), %rax     # 0xa2d30
jmp 0x5c700
movl $0x18, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq $0x0, 0x10(%rax)
movq 0x46595(%rip), %rax     # 0xa2c70
jmp 0x5c700
movl $0x18, %edi
callq 0x40810
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq $0x0, 0x10(%rax)
movq 0x46458(%rip), %rax     # 0xa2b58
addq $0x10, %rax
movq %rax, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq *0x40(%rax)
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq