// File: /workspace/github_cpp_makefile_star2_O2/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 0x1fd13(%rip), %rsi     # 0x87793
callq 0x520f0
testb %al, %al
je 0x67aa4
pushq $0x30
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
movq 0x47501(%rip), %rax     # 0xaefa0
jmp 0x67dc2
leaq 0x1fd7f(%rip), %rsi     # 0x8782a
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67ad2
pushq $0x28
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
movq 0x47443(%rip), %rax     # 0xaef10
jmp 0x67dc2
leaq 0x1fc50(%rip), %rsi     # 0x87729
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67b00
pushq $0x18
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
movq 0x473cd(%rip), %rax     # 0xaeec8
jmp 0x67dc2
leaq 0x1fdb0(%rip), %rsi     # 0x878b7
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67b2e
pushq $0x18
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
movq 0x47307(%rip), %rax     # 0xaee30
jmp 0x67dc2
leaq 0x1fbf9(%rip), %rsi     # 0x8772e
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67b5c
pushq $0x10
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
movq 0x46f89(%rip), %rax     # 0xaeae0
jmp 0x67dc2
leaq 0x1fbd5(%rip), %rsi     # 0x87738
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67b8a
pushq $0x10
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
movq 0x4734b(%rip), %rax     # 0xaeed0
jmp 0x67dc2
leaq 0x1fbaf(%rip), %rsi     # 0x87740
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67bbf
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x4714e(%rip), %rax     # 0xaed08
jmp 0x67dc2
leaq 0x1fb83(%rip), %rsi     # 0x87749
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67bf4
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x47211(%rip), %rax     # 0xaee00
jmp 0x67dc2
leaq 0x1fb56(%rip), %rsi     # 0x87751
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67c29
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46ffc(%rip), %rax     # 0xaec20
jmp 0x67dc2
leaq 0x1fb2a(%rip), %rsi     # 0x8775a
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67c5e
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x4725f(%rip), %rax     # 0xaeeb8
jmp 0x67dc2
leaq 0x1fb00(%rip), %rsi     # 0x87765
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67c93
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x4734a(%rip), %rax     # 0xaefd8
jmp 0x67dc2
leaq 0x1fc21(%rip), %rsi     # 0x878bb
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67cc8
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46f6d(%rip), %rax     # 0xaec30
jmp 0x67dc2
leaq 0x1faa2(%rip), %rsi     # 0x87771
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67cfd
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46f98(%rip), %rax     # 0xaec90
jmp 0x67dc2
leaq 0x1fa6c(%rip), %rsi     # 0x87770
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67d32
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46da3(%rip), %rax     # 0xaead0
jmp 0x67dc2
leaq 0x1fa3f(%rip), %rsi     # 0x87778
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67d64
pushq $0x20
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movq 0x46fc6(%rip), %rax     # 0xaed28
jmp 0x67dc2
leaq 0x1fa15(%rip), %rsi     # 0x87780
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67d94
pushq $0x18
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
andq $0x0, 0x10(%rax)
movq 0x46ede(%rip), %rax     # 0xaec70
jmp 0x67dc2
leaq 0x1f9ef(%rip), %rsi     # 0x8778a
movq %r14, %rdi
callq 0x520f0
testb %al, %al
je 0x67dde
pushq $0x18
popq %rdi
callq 0x4f5d0
movq %rax, %r15
andl $0x0, 0x8(%rax)
andq $0x0, 0x10(%rax)
movq 0x46d96(%rip), %rax     # 0xaeb58
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
xorl %r15d, %r15d
jmp 0x67dd5
nop