// File: melop[P]admixem/./parser/parser.cpp
// Function: Parser::Comparison(bool)
const double Parser::Comparison (const bool get)  // LT, GT, LE, EQ etc.
  {
  double left = AddSubtract (get);
  while (true)
    {
    switch (type_)
      {
      case LT:  left = left <  AddSubtract (true) ? 1.0 : 0.0; break;
      case GT:  left = left >  AddSubtract (true) ? 1.0 : 0.0; break;
      case LE:  left = left <= AddSubtract (true) ? 1.0 : 0.0; break;
      case GE:  left = left >= AddSubtract (true) ? 1.0 : 0.0; break;
      case EQ:  left = left == AddSubtract (true) ? 1.0 : 0.0; break;
      case NE:  left = left != AddSubtract (true) ? 1.0 : 0.0; break;
           default:    return left;
      } // end of switch on type
    }   // end of loop
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x20(%rbp)
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0xbeb0
movsd %xmm0, -0x18(%rbp)
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
addl $-0x3c, %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0x6, %eax
ja 0xc155
movq -0x28(%rbp), %rax
leaq 0x6a342(%rip), %rcx     # 0x762e4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
movl $0x1, %esi
callq 0xbeb0
movaps %xmm0, %xmm1
movsd -0x30(%rbp), %xmm0
movsd 0x6a03d(%rip), %xmm3    # 0x76010
xorps %xmm2, %xmm2
cmpltsd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0xc160
movq -0x20(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movl $0x1, %esi
callq 0xbeb0
movsd -0x38(%rbp), %xmm1
movsd 0x69ff7(%rip), %xmm3    # 0x76010
xorps %xmm2, %xmm2
cmpltsd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0xc160
movq -0x20(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl $0x1, %esi
callq 0xbeb0
movaps %xmm0, %xmm1
movsd -0x40(%rbp), %xmm0
movsd 0x69fae(%rip), %xmm3    # 0x76010
xorps %xmm2, %xmm2
cmplesd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0xc160
movq -0x20(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl $0x1, %esi
callq 0xbeb0
movsd -0x48(%rbp), %xmm1
movsd 0x69f68(%rip), %xmm3    # 0x76010
xorps %xmm2, %xmm2
cmplesd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0xc160
movq -0x20(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movl $0x1, %esi
callq 0xbeb0
movaps %xmm0, %xmm1
movsd -0x50(%rbp), %xmm0
movsd 0x69f1f(%rip), %xmm3    # 0x76010
xorps %xmm2, %xmm2
cmpeqsd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0xc160
movq -0x20(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movl $0x1, %esi
callq 0xbeb0
movaps %xmm0, %xmm1
movsd -0x58(%rbp), %xmm0
movsd 0x69ed9(%rip), %xmm3    # 0x76010
xorps %xmm2, %xmm2
cmpneqsd %xmm1, %xmm0
movaps %xmm0, %xmm1
andpd %xmm3, %xmm1
andnpd %xmm2, %xmm0
orpd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0xc160
movsd -0x18(%rbp), %xmm0
addq $0x60, %rsp
popq %rbp
retq
jmp 0xbf7e
nopw %cs:(%rax,%rax)