// File: /workspace/github_c_makefile_star2_O2/ryvnf[P]czc/eval.c
// Function: op_to_name
const char *op_to_name(enum ast_tag tag)
{
    switch (tag) {
        case COMMA_EXPR:
            return "binary ,";
        case COND_EXPR:
            return "binary ?:";
        case ASGN_EXPR:
            return "binary =";
        case ADD_ASGN_EXPR:
            return "binary +=";
        case SUB_ASGN_EXPR:
            return "binary -=";
        case MUL_ASGN_EXPR:
            return "binary *=";
        case DIV_ASGN_EXPR:
            return "binary /=";
        case REM_ASGN_EXPR:
            return "binary %=";
        case OR_ASGN_EXPR:
            return "binary |=";
        case XOR_ASGN_EXPR:
            return "binary ~=";
        case AND_ASGN_EXPR:
            return "binary &=";
        case SHL_ASGN_EXPR:
            return "binary <<=";
        case SHR_ASGN_EXPR:
            return "binary >>=";
        case LOR_EXPR:
            return "binary ||";
        case LAND_EXPR:
            return "binary &&";
        case OR_EXPR:
            return "binary |";
        case XOR_EXPR:
            return "binary ~";
        case AND_EXPR:
            return "binary &";
        case EQ_EXPR:
            return "binary ==";
        case NE_EXPR:
            return "binary !=";
        case LT_EXPR:
            return "binary <";
        case GT_EXPR:
            return "binary >";
        case LE_EXPR:
            return "binary <=";
        case GE_EXPR:
            return "binary >=";
        case SHL_EXPR:
            return "binary <<";
        case SHR_EXPR:
            return "binary >>";
        case ADD_EXPR:
            return "binary +";
        case SUB_EXPR:
            return "binary -";
        case MUL_EXPR:
            return "binary *";
        case DIV_EXPR:
            return "binary /";
        case REM_EXPR:
            return "binary %";
        case NOT_EXPR:
            return "unary !";
        case COMPL_EXPR:
            return "unary ~";
        case UPLUS_EXPR:
            return "unary +";
        case NEG_EXPR:
            return "unary -";
        case REF_EXPR:
            return "reference ^";
        case DEREF_EXPR:
            return "dereference ^";
        case PRE_INC_EXPR:
            return "unary prefix ++";
        case PRE_DEC_EXPR:
            return "unary prefix --";
        case POST_INC_EXPR:
            return "unary postfix ++";
        case POST_DEC_EXPR:
            return "unary postfix --";
        case SIZEOF_EXPR:
            return "sizeof";
        case SUBSCR_EXPR:
            return "array subscript";
        case CALL_EXPR:
            return "function call";
        case MEMBER_EXPR:
            return "member access";
    }
    return ast_tag_name(tag);
}

// Assembly:
leal -0x4220(%rdi), %eax
cmpl $0x10, %eax
jbe 0x4be0
leal -0x42c0(%rdi), %eax
cmpl $0x17, %eax
jbe 0x4bf8
leal -0x42f0(%rdi), %eax
cmpl $0x5, %eax
jbe 0x4c10
leal -0x4260(%rdi), %eax
cmpl $0x3, %eax
jbe 0x4c28
cmpl $0x4200, %edi           # imm = 0x4200
je 0x4d15
cmpl $0x42b1, %edi           # imm = 0x42B1
je 0x4cf5
cmpl $0x4240, %edi           # imm = 0x4240
je 0x4d75
cmpl $0x4250, %edi           # imm = 0x4250
je 0x4d1d
cmpl $0x4251, %edi           # imm = 0x4251
je 0x4d7d
cmpl $0x4270, %edi           # imm = 0x4270
je 0x4d4d
cmpl $0x4280, %edi           # imm = 0x4280
je 0x4d6d
cmpl $0x4290, %edi           # imm = 0x4290
je 0x4d65
cmpl $0x42a0, %edi           # imm = 0x42A0
je 0x4d05
cmpl $0x42a1, %edi           # imm = 0x42A1
je 0x4d45
cmpl $0x42b0, %edi           # imm = 0x42B0
je 0x4d2d
cmpl $0x4210, %edi           # imm = 0x4210
jne 0x4c40
leaq 0x7052(%rip), %rax      # 0xbc31
retq
leaq 0x6d61(%rip), %rcx      # 0xb948
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x7044(%rip), %rax      # 0xbc3b
retq
leaq 0x6d9d(%rip), %rcx      # 0xb99c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x712a(%rip), %rax      # 0xbd39
retq
leaq 0x6de5(%rip), %rcx      # 0xb9fc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x714d(%rip), %rax      # 0xbd74
retq
leaq 0x6d5d(%rip), %rcx      # 0xb98c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x70ae(%rip), %rax      # 0xbced
retq
jmp 0x277a
leaq 0x705e(%rip), %rax      # 0xbcaa
retq
leaq 0x702c(%rip), %rax      # 0xbc80
retq
leaq 0x7043(%rip), %rax      # 0xbc9f
retq
leaq 0x6ffe(%rip), %rax      # 0xbc62
retq
leaq 0x6fe2(%rip), %rax      # 0xbc4e
retq
leaq 0x6fe4(%rip), %rax      # 0xbc58
retq
leaq 0x6fc8(%rip), %rax      # 0xbc44
retq
leaq 0x6ff2(%rip), %rax      # 0xbc76
retq
leaq 0x6fe0(%rip), %rax      # 0xbc6c
retq
leaq 0x6ff6(%rip), %rax      # 0xbc8a
retq
leaq 0x6ff8(%rip), %rax      # 0xbc94
retq
leaq 0x70ee(%rip), %rax      # 0xbd92
retq
leaq 0x70b0(%rip), %rax      # 0xbd5c
retq
leaq 0x7097(%rip), %rax      # 0xbd4b
retq
leaq 0x7086(%rip), %rax      # 0xbd42
retq
leaq 0x70b2(%rip), %rax      # 0xbd76
retq
leaq 0x70f8(%rip), %rax      # 0xbdc4
retq
leaq 0x7080(%rip), %rax      # 0xbd54
retq
leaq 0x70a6(%rip), %rax      # 0xbd82
retq
leaq 0x7080(%rip), %rax      # 0xbd64
retq
leaq 0x7080(%rip), %rax      # 0xbd6c
retq
leaq 0x70bf(%rip), %rax      # 0xbdb3
retq
leaq 0x7034(%rip), %rax      # 0xbd30
retq
leaq 0x7178(%rip), %rax      # 0xbe7c
retq
leaq 0x7007(%rip), %rax      # 0xbd13
retq
leaq 0x708e(%rip), %rax      # 0xbda2
retq
leaq 0x6f0c(%rip), %rax      # 0xbc28
retq
leaq 0x6fb5(%rip), %rax      # 0xbcd9
retq
leaq 0x709f(%rip), %rax      # 0xbdcb
retq
leaq 0x6ff3(%rip), %rax      # 0xbd27
retq
leaq 0x6fc3(%rip), %rax      # 0xbcff
retq
leaq 0x7097(%rip), %rax      # 0xbddb
retq
leaq 0x6fd1(%rip), %rax      # 0xbd1d
retq
leaq 0x6f6a(%rip), %rax      # 0xbcbe
retq
leaq 0x6fad(%rip), %rax      # 0xbd09
retq
leaq 0x6f92(%rip), %rax      # 0xbcf6
retq
leaq 0x6f64(%rip), %rax      # 0xbcd0
retq
leaq 0x6f53(%rip), %rax      # 0xbcc7
retq
leaq 0x6f38(%rip), %rax      # 0xbcb4
retq
leaq 0x6f5f(%rip), %rax      # 0xbce3
retq