// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
cmpl $0x23, %esi
ja 0xc6d4
movl %esi, %eax
leaq 0x2fef(%rip), %rcx      # 0xf44c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x3070(%rip), %rsi      # 0xf4dd
leaq 0x306a(%rip), %rdx      # 0xf4de
jmp 0xc6e2
leaq 0x2fca(%rip), %rsi      # 0xf44a
leaq 0x2fc4(%rip), %rdx      # 0xf44b
jmp 0xc6e2
leaq 0x3061(%rip), %rsi      # 0xf4f4
leaq 0x305b(%rip), %rdx      # 0xf4f5
jmp 0xc6e2
leaq 0x305e(%rip), %rsi      # 0xf504
leaq 0x3059(%rip), %rdx      # 0xf506
jmp 0xc6e2
leaq 0x3060(%rip), %rsi      # 0xf519
leaq 0x305b(%rip), %rdx      # 0xf51b
jmp 0xc6e2
leaq 0x302e(%rip), %rsi      # 0xf4fa
leaq 0x3028(%rip), %rdx      # 0xf4fb
jmp 0xc6e2
leaq 0x3018(%rip), %rsi      # 0xf4f7
leaq 0x3012(%rip), %rdx      # 0xf4f8
jmp 0xc6e2
leaq 0x3024(%rip), %rsi      # 0xf516
leaq 0x301f(%rip), %rdx      # 0xf518
jmp 0xc6e2
leaq 0x2fdc(%rip), %rsi      # 0xf4e1
leaq 0x2fd7(%rip), %rdx      # 0xf4e3
jmp 0xc6e2
leaq 0xf9a(%rip), %rsi       # 0xd4b2
leaq 0xf94(%rip), %rdx       # 0xd4b3
jmp 0xc6e2
leaq 0x2fd1(%rip), %rsi      # 0xf4fc
leaq 0x2fcd(%rip), %rdx      # 0xf4ff
jmp 0xc6e2
leaq 0x2fbb(%rip), %rsi      # 0xf4f9
leaq 0x2fb6(%rip), %rdx      # 0xf4fb
jmp 0xc6e2
leaq 0x2f8e(%rip), %rsi      # 0xf4df
leaq 0x2f88(%rip), %rdx      # 0xf4e0
jmp 0xc6e2
leaq 0x2f8a(%rip), %rsi      # 0xf4ee
leaq 0x2f84(%rip), %rdx      # 0xf4ef
jmp 0xc6e2
leaq 0x2f70(%rip), %rsi      # 0xf4e7
leaq 0x2f6a(%rip), %rdx      # 0xf4e8
jmp 0xc6e2
leaq 0x2f52(%rip), %rsi      # 0xf4dc
leaq 0x2f4d(%rip), %rdx      # 0xf4de
jmp 0xc6e2
leaq 0x2eac(%rip), %rsi      # 0xf449
leaq 0x2ea7(%rip), %rdx      # 0xf44b
jmp 0xc6e2
leaq 0x2f60(%rip), %rsi      # 0xf510
leaq 0x2f5b(%rip), %rdx      # 0xf512
jmp 0xc6e2
leaq 0x118c(%rip), %rsi      # 0xd74f
leaq 0x1186(%rip), %rdx      # 0xd750
jmp 0xc6e2
leaq 0x2f0e(%rip), %rsi      # 0xf4e4
leaq 0x2f09(%rip), %rdx      # 0xf4e6
jmp 0xc6e2
leaq 0x2f03(%rip), %rsi      # 0xf4ec
leaq 0x2efd(%rip), %rdx      # 0xf4ed
jmp 0xc6e2
leaq 0x2eed(%rip), %rsi      # 0xf4e9
leaq 0x2ee7(%rip), %rdx      # 0xf4ea
jmp 0xc6e2
leaq 0x2ef2(%rip), %rsi      # 0xf501
leaq 0x2eed(%rip), %rdx      # 0xf503
jmp 0xc6e2
leaq 0x2ece(%rip), %rsi      # 0xf4f0
leaq 0x2ec9(%rip), %rdx      # 0xf4f2
jmp 0xc6e2
leaq 0x2eb6(%rip), %rsi      # 0xf4eb
leaq 0x2eb1(%rip), %rdx      # 0xf4ed
jmp 0xc6e2
leaq 0x2eb5(%rip), %rsi      # 0xf4fd
leaq 0x2eb0(%rip), %rdx      # 0xf4ff
jmp 0xc6e2
leaq 0x2eb2(%rip), %rsi      # 0xf50d
leaq 0x2ead(%rip), %rdx      # 0xf50f
jmp 0xc6e2
leaq 0x2ea8(%rip), %rsi      # 0xf513
leaq 0x2ea3(%rip), %rdx      # 0xf515
jmp 0xc6e2
leaq 0x2e78(%rip), %rsi      # 0xf4f3
leaq 0x2e73(%rip), %rdx      # 0xf4f5
jmp 0xc6e2
leaq 0x2e5a(%rip), %rsi      # 0xf4e5
leaq 0x2e54(%rip), %rdx      # 0xf4e6
jmp 0xc6e2
leaq 0x2e5b(%rip), %rsi      # 0xf4f6
leaq 0x2e56(%rip), %rdx      # 0xf4f8
jmp 0xc6e2
leaq 0x2e5c(%rip), %rsi      # 0xf507
leaq 0x2e57(%rip), %rdx      # 0xf509
jmp 0xc6e2
leaq 0x2e4f(%rip), %rsi      # 0xf50a
leaq 0x2e4a(%rip), %rdx      # 0xf50c
jmp 0xc6e2
leaq 0x2e35(%rip), %rsi      # 0xf500
leaq 0x2e31(%rip), %rdx      # 0xf503
jmp 0xc6e2
leaq 0x2e41(%rip), %rsi      # 0xf51c
leaq 0x2e41(%rip), %rdx      # 0xf523
movq %rbx, %rdi
callq 0x7948
movq %rbx, %rax
popq %rbx
retq
nop