// File: /workspace/github_cpp_makefile_star2_O2/SunriseFox[P]very-simple-c-compiler/./src/tree.cpp
// Function: OperatorNode::getTypeStr[abi:cxx11](OperatorNode::OperatorType)
string OperatorNode::getTypeStr(OperatorNode::OperatorType type)
{
    switch (type) {

    case OP_INC: return "++";
    case OP_DEC: return "--";

    case OP_NOT: return "!";
    case OP_BREV: return "~";

    case OP_LSHFT: return "<<";
    case OP_RSHFT: return ">>";

    case OP_MUL: return "*";
    case OP_DIV: return "/";
    case OP_MOD: return "%";

    case OP_ADD: return "+";
    case OP_SUB: return "-";
    case OP_UADD: return "+";
    case OP_USUB: return "-";

    case OP_TADDR: return "&*";

    case OP_BAND: return "&";
    case OP_BXOR: return "^";
    case OP_BOR: return "|";

    case OP_LESS: return "<";
    case OP_LESSEQ: return "<=";
    case OP_MORE: return ">";
    case OP_MOREEQ: return ">=";
    case OP_EQ: return "==";
    case OP_NE: return "!=";

    case OP_LAND: return "&&";
    case OP_LOR: return "||";

    case OP_LSHFTAS: return "<<=";
    case OP_RSHFTAS: return ">>=";
    case OP_MULAS: return "*=";
    case OP_DIVAS: return "/=";
    case OP_MODAS: return "%=";
    case OP_ADDAS: return "+=";
    case OP_SUBAS: return "-=";
    case OP_BANDAS: return "&=";
    case OP_BXORAS: return "^=";
    case OP_BORAS: return "|=";
    case OP_ASSIGN: return "=";
    }
    return "unknown";
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
cmpl $0x23, %esi
ja 0xa75d
movl %esi, %eax
leaq 0x2e56(%rip), %rcx      # 0xd43c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2ed7(%rip), %rsi      # 0xd4cd
jmp 0xa764
leaq 0x2e38(%rip), %rsi      # 0xd43a
jmp 0xa764
leaq 0x2ed6(%rip), %rsi      # 0xd4e4
jmp 0xa764
leaq 0x2eda(%rip), %rsi      # 0xd4f4
jmp 0xa764
leaq 0x2ee3(%rip), %rsi      # 0xd509
jmp 0xa764
leaq 0x2eb8(%rip), %rsi      # 0xd4ea
jmp 0xa764
leaq 0x2ea9(%rip), %rsi      # 0xd4e7
jmp 0xa764
leaq 0x2ebc(%rip), %rsi      # 0xd506
jmp 0xa764
leaq 0x2e7b(%rip), %rsi      # 0xd4d1
jmp 0xa764
leaq 0xe40(%rip), %rsi       # 0xb4a2
jmp 0xa764
leaq 0x2e7e(%rip), %rsi      # 0xd4ec
jmp 0xa764
leaq 0x2e6f(%rip), %rsi      # 0xd4e9
jmp 0xa764
leaq 0x2e49(%rip), %rsi      # 0xd4cf
jmp 0xa764
leaq 0x2e4c(%rip), %rsi      # 0xd4de
jmp 0xa764
leaq 0x2e39(%rip), %rsi      # 0xd4d7
jmp 0xa764
leaq 0x2e22(%rip), %rsi      # 0xd4cc
jmp 0xa764
leaq 0x2d83(%rip), %rsi      # 0xd439
jmp 0xa764
leaq 0x2e3e(%rip), %rsi      # 0xd500
jmp 0xa764
leaq 0x1071(%rip), %rsi      # 0xb73f
jmp 0xa764
leaq 0x2dfa(%rip), %rsi      # 0xd4d4
jmp 0xa764
leaq 0x2df6(%rip), %rsi      # 0xd4dc
jmp 0xa764
leaq 0x2dea(%rip), %rsi      # 0xd4d9
jmp 0xa764
leaq 0x2df9(%rip), %rsi      # 0xd4f1
jmp 0xa764
leaq 0x2ddf(%rip), %rsi      # 0xd4e0
jmp 0xa764
leaq 0x2dd1(%rip), %rsi      # 0xd4db
jmp 0xa764
leaq 0x2dda(%rip), %rsi      # 0xd4ed
jmp 0xa764
leaq 0x2de1(%rip), %rsi      # 0xd4fd
jmp 0xa764
leaq 0x2dde(%rip), %rsi      # 0xd503
jmp 0xa764
leaq 0x2db5(%rip), %rsi      # 0xd4e3
jmp 0xa764
leaq 0x2d9e(%rip), %rsi      # 0xd4d5
jmp 0xa764
leaq 0x2da6(%rip), %rsi      # 0xd4e6
jmp 0xa764
leaq 0x2dae(%rip), %rsi      # 0xd4f7
jmp 0xa764
leaq 0x2da8(%rip), %rsi      # 0xd4fa
jmp 0xa764
leaq 0x2d95(%rip), %rsi      # 0xd4f0
jmp 0xa764
leaq 0x2da8(%rip), %rsi      # 0xd50c
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x615c
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
retq