// File: /workspace/github_cpp_makefile_star2_O3/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 0xc538
movl %esi, %eax
leaq 0x318b(%rip), %rcx      # 0xf44c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x320c(%rip), %rsi      # 0xf4dd
leaq 0x3206(%rip), %rdx      # 0xf4de
jmp 0xc546
leaq 0x3166(%rip), %rsi      # 0xf44a
leaq 0x3160(%rip), %rdx      # 0xf44b
jmp 0xc546
leaq 0x31fd(%rip), %rsi      # 0xf4f4
leaq 0x31f7(%rip), %rdx      # 0xf4f5
jmp 0xc546
leaq 0x31fa(%rip), %rsi      # 0xf504
leaq 0x31f5(%rip), %rdx      # 0xf506
jmp 0xc546
leaq 0x31fc(%rip), %rsi      # 0xf519
leaq 0x31f7(%rip), %rdx      # 0xf51b
jmp 0xc546
leaq 0x31ca(%rip), %rsi      # 0xf4fa
leaq 0x31c4(%rip), %rdx      # 0xf4fb
jmp 0xc546
leaq 0x31b4(%rip), %rsi      # 0xf4f7
leaq 0x31ae(%rip), %rdx      # 0xf4f8
jmp 0xc546
leaq 0x31c0(%rip), %rsi      # 0xf516
leaq 0x31bb(%rip), %rdx      # 0xf518
jmp 0xc546
leaq 0x3178(%rip), %rsi      # 0xf4e1
leaq 0x3173(%rip), %rdx      # 0xf4e3
jmp 0xc546
leaq 0x1136(%rip), %rsi      # 0xd4b2
leaq 0x1130(%rip), %rdx      # 0xd4b3
jmp 0xc546
leaq 0x316d(%rip), %rsi      # 0xf4fc
leaq 0x3169(%rip), %rdx      # 0xf4ff
jmp 0xc546
leaq 0x3157(%rip), %rsi      # 0xf4f9
leaq 0x3152(%rip), %rdx      # 0xf4fb
jmp 0xc546
leaq 0x312a(%rip), %rsi      # 0xf4df
leaq 0x3124(%rip), %rdx      # 0xf4e0
jmp 0xc546
leaq 0x3126(%rip), %rsi      # 0xf4ee
leaq 0x3120(%rip), %rdx      # 0xf4ef
jmp 0xc546
leaq 0x310c(%rip), %rsi      # 0xf4e7
leaq 0x3106(%rip), %rdx      # 0xf4e8
jmp 0xc546
leaq 0x30ee(%rip), %rsi      # 0xf4dc
leaq 0x30e9(%rip), %rdx      # 0xf4de
jmp 0xc546
leaq 0x3048(%rip), %rsi      # 0xf449
leaq 0x3043(%rip), %rdx      # 0xf44b
jmp 0xc546
leaq 0x30fc(%rip), %rsi      # 0xf510
leaq 0x30f7(%rip), %rdx      # 0xf512
jmp 0xc546
leaq 0x1328(%rip), %rsi      # 0xd74f
leaq 0x1322(%rip), %rdx      # 0xd750
jmp 0xc546
leaq 0x30aa(%rip), %rsi      # 0xf4e4
leaq 0x30a5(%rip), %rdx      # 0xf4e6
jmp 0xc546
leaq 0x309f(%rip), %rsi      # 0xf4ec
leaq 0x3099(%rip), %rdx      # 0xf4ed
jmp 0xc546
leaq 0x3089(%rip), %rsi      # 0xf4e9
leaq 0x3083(%rip), %rdx      # 0xf4ea
jmp 0xc546
leaq 0x308e(%rip), %rsi      # 0xf501
leaq 0x3089(%rip), %rdx      # 0xf503
jmp 0xc546
leaq 0x306a(%rip), %rsi      # 0xf4f0
leaq 0x3065(%rip), %rdx      # 0xf4f2
jmp 0xc546
leaq 0x3052(%rip), %rsi      # 0xf4eb
leaq 0x304d(%rip), %rdx      # 0xf4ed
jmp 0xc546
leaq 0x3051(%rip), %rsi      # 0xf4fd
leaq 0x304c(%rip), %rdx      # 0xf4ff
jmp 0xc546
leaq 0x304e(%rip), %rsi      # 0xf50d
leaq 0x3049(%rip), %rdx      # 0xf50f
jmp 0xc546
leaq 0x3044(%rip), %rsi      # 0xf513
leaq 0x303f(%rip), %rdx      # 0xf515
jmp 0xc546
leaq 0x3014(%rip), %rsi      # 0xf4f3
leaq 0x300f(%rip), %rdx      # 0xf4f5
jmp 0xc546
leaq 0x2ff6(%rip), %rsi      # 0xf4e5
leaq 0x2ff0(%rip), %rdx      # 0xf4e6
jmp 0xc546
leaq 0x2ff7(%rip), %rsi      # 0xf4f6
leaq 0x2ff2(%rip), %rdx      # 0xf4f8
jmp 0xc546
leaq 0x2ff8(%rip), %rsi      # 0xf507
leaq 0x2ff3(%rip), %rdx      # 0xf509
jmp 0xc546
leaq 0x2feb(%rip), %rsi      # 0xf50a
leaq 0x2fe6(%rip), %rdx      # 0xf50c
jmp 0xc546
leaq 0x2fd1(%rip), %rsi      # 0xf500
leaq 0x2fcd(%rip), %rdx      # 0xf503
jmp 0xc546
leaq 0x2fdd(%rip), %rsi      # 0xf51c
leaq 0x2fdd(%rip), %rdx      # 0xf523
movq %rbx, %rdi
callq 0x7944
movq %rbx, %rax
popq %rbx
retq
nop