// File: jstaursky[P]hutch/src/Sleigh/slgh_compile.cc
// Function: ConsistencyChecker::printOpName(std::ostream&, OpTpl*)
void ConsistencyChecker::printOpName(ostream &s,OpTpl *op)

{
  switch(op->getOpcode()) {
  case CPUI_COPY:
    s << "Copy(=)";
    break;
  case CPUI_LOAD:
    s << "Load(*)";
    break;
  case CPUI_STORE:
    s << "Store(*)";
    break;
  case CPUI_BRANCH:
    s << "Branch(goto)";
    break;
  case CPUI_CBRANCH:
    s << "Conditional branch(if)";
    break;
  case CPUI_BRANCHIND:
    s << "Indirect branch(goto[])";
    break;
  case CPUI_CALL:
    s << "Call";
    break;
  case CPUI_CALLIND:
    s << "Indirect Call";
    break;
  case CPUI_CALLOTHER:
    s << "User defined";
    break;
  case CPUI_RETURN:
    s << "Return";
    break;
  case CPUI_INT_EQUAL:
    s << "Equality(==)";
    break;
  case CPUI_INT_NOTEQUAL:
    s << "Notequal(!=)";
    break;
  case CPUI_INT_SLESS:
    s << "Signed less than(s<)";
    break;
  case CPUI_INT_SLESSEQUAL:
    s << "Signed less than or equal(s<=)";
    break;
  case CPUI_INT_LESS:
    s << "Less than(<)";
    break;
  case CPUI_INT_LESSEQUAL:
    s << "Less than or equal(<=)";
    break;
  case CPUI_INT_ZEXT:
    s << "Zero extension(zext)";
    break;
  case CPUI_INT_SEXT:
    s << "Signed extension(sext)";
    break;
  case CPUI_INT_ADD:
    s << "Addition(+)";
    break;
  case CPUI_INT_SUB:
    s << "Subtraction(-)";
    break;
  case CPUI_INT_CARRY:
    s << "Carry";
    break;
  case CPUI_INT_SCARRY:
    s << "Signed carry";
    break;
  case CPUI_INT_SBORROW:
    s << "Signed borrow";
    break;
  case CPUI_INT_2COMP:
    s << "Twos complement(-)";
    break;
  case CPUI_INT_NEGATE:
    s << "Negate(~)";
    break;
  case CPUI_INT_XOR:
    s << "Exclusive or(^)";
    break;
  case CPUI_INT_AND:
    s << "And(&)";
    break;
  case CPUI_INT_OR:
    s << "Or(|)";
    break;
  case CPUI_INT_LEFT:
    s << "Left shift(<<)";
    break;
  case CPUI_INT_RIGHT:
    s << "Right shift(>>)";
    break;
  case CPUI_INT_SRIGHT:
    s << "Signed right shift(s>>)";
    break;
  case CPUI_INT_MULT:
    s << "Multiplication(*)";
    break;
  case CPUI_INT_DIV:
    s << "Division(/)";
    break;
  case CPUI_INT_SDIV:
    s << "Signed division(s/)";
    break;
  case CPUI_INT_REM:
    s << "Remainder(%)";
    break;
  case CPUI_INT_SREM:
    s << "Signed remainder(s%)";
    break;
  case CPUI_BOOL_NEGATE:
    s << "Boolean negate(!)";
    break;
  case CPUI_BOOL_XOR:
    s << "Boolean xor(^^)";
    break;
  case CPUI_BOOL_AND:
    s << "Boolean and(&&)";
    break;
  case CPUI_BOOL_OR:
    s << "Boolean or(||)";
    break;
  case CPUI_FLOAT_EQUAL:
    s << "Float equal(f==)";
    break;
  case CPUI_FLOAT_NOTEQUAL:
    s << "Float notequal(f!=)";
    break;
  case CPUI_FLOAT_LESS:
    s << "Float less than(f<)";
    break;
  case CPUI_FLOAT_LESSEQUAL:
    s << "Float less than or equal(f<=)";
    break;
  case CPUI_FLOAT_NAN:
    s << "Not a number(nan)";
    break;
  case CPUI_FLOAT_ADD:
    s << "Float addition(f+)";
    break;
  case CPUI_FLOAT_DIV:
    s << "Float division(f/)";
    break;
  case CPUI_FLOAT_MULT:
    s << "Float multiplication(f*)";
    break;
  case CPUI_FLOAT_SUB:
    s << "Float subtractions(f-)";
    break;
  case CPUI_FLOAT_NEG:
    s << "Float minus(f-)";
    break;
  case CPUI_FLOAT_ABS:
    s << "Absolute value(abs)";
    break;
  case CPUI_FLOAT_SQRT:
    s << "Square root";
    break;
  case CPUI_FLOAT_INT2FLOAT:
    s << "Integer to float conversion(int2float)";
    break;
  case CPUI_FLOAT_FLOAT2FLOAT:
    s << "Float to float conversion(float2float)";
    break;
  case CPUI_FLOAT_TRUNC:
    s << "Float truncation(trunc)";
    break;
  case CPUI_FLOAT_CEIL:
    s << "Ceiling(ceil)";
    break;
  case CPUI_FLOAT_FLOOR:
    s << "Floor";
    break;
  case CPUI_FLOAT_ROUND:
    s << "Round";
    break;
  case CPUI_MULTIEQUAL:
    s << "Build";
    break;
  case CPUI_INDIRECT:
    s << "Delay";
    break;
  case CPUI_SUBPIECE:
    s << "Truncation(:)";
    break;
  case CPUI_SEGMENTOP:
    s << "Segment table(segment)";
    break;
  case CPUI_CPOOLREF:
    s << "Constant Pool(cpool)";
    break;
  case CPUI_NEW:
    s << "New object(newobject)";
    break;
  default:
    break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x3fd40
decl %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x44, %eax
ja 0x5b65d
movq -0x20(%rbp), %rax
leaq 0x7d6ef(%rip), %rcx     # 0xd8818
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
leaq 0x7db78(%rip), %rsi     # 0xd8cb5
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db6b(%rip), %rsi     # 0xd8cbd
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db5e(%rip), %rsi     # 0xd8cc5
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db52(%rip), %rsi     # 0xd8cce
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db4a(%rip), %rsi     # 0xd8cdb
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db4c(%rip), %rsi     # 0xd8cf2
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db58(%rip), %rsi     # 0xd8d13
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db3a(%rip), %rsi     # 0xd8d0a
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db33(%rip), %rsi     # 0xd8d18
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db2b(%rip), %rsi     # 0xd8d25
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db1d(%rip), %rsi     # 0xd8d2c
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db15(%rip), %rsi     # 0xd8d39
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db0d(%rip), %rsi     # 0xd8d46
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db0d(%rip), %rsi     # 0xd8d5b
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db17(%rip), %rsi     # 0xd8d7a
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db0f(%rip), %rsi     # 0xd8d87
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db11(%rip), %rsi     # 0xd8d9e
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db11(%rip), %rsi     # 0xd8db3
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db13(%rip), %rsi     # 0xd8dca
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db0a(%rip), %rsi     # 0xd8dd6
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7db04(%rip), %rsi     # 0xd8de5
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7daf5(%rip), %rsi     # 0xd8deb
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7daed(%rip), %rsi     # 0xd8df8
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7dae6(%rip), %rsi     # 0xd8e06
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7dae4(%rip), %rsi     # 0xd8e19
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7dad9(%rip), %rsi     # 0xd8e23
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7dad4(%rip), %rsi     # 0xd8e33
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7dac6(%rip), %rsi     # 0xd8e3a
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7dab7(%rip), %rsi     # 0xd8e40
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7dab1(%rip), %rsi     # 0xd8e4f
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7daac(%rip), %rsi     # 0xd8e5f
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7daaf(%rip), %rsi     # 0xd8e77
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7daac(%rip), %rsi     # 0xd8e89
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7daa3(%rip), %rsi     # 0xd8e95
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7daa2(%rip), %rsi     # 0xd8ea9
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da9a(%rip), %rsi     # 0xd8eb6
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da9a(%rip), %rsi     # 0xd8ecb
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da97(%rip), %rsi     # 0xd8edd
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da92(%rip), %rsi     # 0xd8eed
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da8d(%rip), %rsi     # 0xd8efd
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da87(%rip), %rsi     # 0xd8f0c
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da83(%rip), %rsi     # 0xd8f1d
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da82(%rip), %rsi     # 0xd8f31
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da81(%rip), %rsi     # 0xd8f45
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da8a(%rip), %rsi     # 0xd8f63
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da87(%rip), %rsi     # 0xd8f75
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da85(%rip), %rsi     # 0xd8f88
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da83(%rip), %rsi     # 0xd8f9b
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da87(%rip), %rsi     # 0xd8fb4
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da89(%rip), %rsi     # 0xd8fcb
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da84(%rip), %rsi     # 0xd8fdb
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da83(%rip), %rsi     # 0xd8fef
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da7a(%rip), %rsi     # 0xd8ffb
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da8c(%rip), %rsi     # 0xd9022
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da9e(%rip), %rsi     # 0xd9049
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7daa1(%rip), %rsi     # 0xd9061
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da9a(%rip), %rsi     # 0xd906f
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da8b(%rip), %rsi     # 0xd9075
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da7f(%rip), %rsi     # 0xd907b
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da73(%rip), %rsi     # 0xd9081
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da67(%rip), %rsi     # 0xd9087
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da63(%rip), %rsi     # 0xd9095
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da68(%rip), %rsi     # 0xd90ac
callq 0x11420
jmp 0x5b65f
movq -0x10(%rbp), %rdi
leaq 0x7da6b(%rip), %rsi     # 0xd90c1
callq 0x11420
jmp 0x5b65f
jmp 0x5b65f
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)