// File: /workspace/github_cpp_makefile_star2_O1/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 0x241d1(%rip), %rsi     # 0x807b3
callq 0x3f590
testl %eax, %eax
je 0x5c767
leaq 0x24254(%rip), %rsi     # 0x8084a
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c787
leaq 0x2413c(%rip), %rsi     # 0x80749
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c7a7
leaq 0x242b3(%rip), %rsi     # 0x808d7
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c7c7
leaq 0x24113(%rip), %rsi     # 0x8074e
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c7e7
leaq 0x24106(%rip), %rsi     # 0x80758
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c807
leaq 0x240f7(%rip), %rsi     # 0x80760
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c827
leaq 0x240e9(%rip), %rsi     # 0x80769
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c84e
leaq 0x240da(%rip), %rsi     # 0x80771
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c875
leaq 0x240cc(%rip), %rsi     # 0x8077a
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c89c
leaq 0x240c0(%rip), %rsi     # 0x80785
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c8c3
leaq 0x241ff(%rip), %rsi     # 0x808db
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c8ea
leaq 0x2409e(%rip), %rsi     # 0x80791
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c911
leaq 0x24086(%rip), %rsi     # 0x80790
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c938
leaq 0x24077(%rip), %rsi     # 0x80798
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c95c
leaq 0x24068(%rip), %rsi     # 0x807a0
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c980
leaq 0x2405b(%rip), %rsi     # 0x807aa
movq %r14, %rdi
callq 0x3f590
testl %eax, %eax
je 0x5c9a5
xorl %r15d, %r15d
jmp 0x5c9de
movl $0x30, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x46826(%rip), %rax     # 0xa2fa8
jmp 0x5c9c8
movl $0x28, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x46776(%rip), %rax     # 0xa2f18
jmp 0x5c9c8
movl $0x18, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x4670e(%rip), %rax     # 0xa2ed0
jmp 0x5c9c8
movl $0x18, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x4665e(%rip), %rax     # 0xa2e40
jmp 0x5c9c8
movl $0x10, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x462de(%rip), %rax     # 0xa2ae0
jmp 0x5c9c8
movl $0x10, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq 0x466b6(%rip), %rax     # 0xa2ed8
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x464bf(%rip), %rax     # 0xa2d08
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x465a8(%rip), %rax     # 0xa2e18
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46389(%rip), %rax     # 0xa2c20
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46602(%rip), %rax     # 0xa2ec0
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x466fb(%rip), %rax     # 0xa2fe0
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46324(%rip), %rax     # 0xa2c30
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x4635d(%rip), %rax     # 0xa2c90
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46176(%rip), %rax     # 0xa2ad0
jmp 0x5c9c8
movl $0x20, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x463b2(%rip), %rax     # 0xa2d30
jmp 0x5c9c8
movl $0x18, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq $0x0, 0x10(%rax)
movq 0x462cd(%rip), %rax     # 0xa2c70
jmp 0x5c9c8
movl $0x18, %edi
callq 0x40800
movq %rax, %r15
movl $0x0, 0x8(%rax)
movq $0x0, 0x10(%rax)
movq 0x46190(%rip), %rax     # 0xa2b58
addq $0x10, %rax
movq %rax, (%r15)
movq (%r15), %rax
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq *0x40(%rax)
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
nop