// File: /workspace/github_c_makefile_star2_O0/Oric4ever[P]lcc65/6502/build/../src/gen.c
// Function: print_graph_node
static void print_graph_node(Node p) {
    Symbol s;
    Node left, right;
    if (p == NULL) return;
    s     = p->syms[0];
    left  = p->kids[0];
    right = p->kids[1];

    if (p->op < MAXOP)
        printf("\t%s%p [label=\"%s%c\"];\n", fname, p,
            opcode_names[generic(p->op)>>4], type_name[optype(p->op)]);
    else printf("\t%s%p [label=\"%s\"];\n", fname, p,
            additional_operators[p->op - MAXOP]);

    switch (generic(p->op)) {
    case ADDRF: case ADDRG: case ADDRL: case CNST: case LABEL:
        /* 1 symbol */
        printf("\t%s%p [shape=box,label=\"%s\"];\n",fname,s,s->x.name);
        printf("\t%s%p -> %s%p [style=dotted];\n",fname,p,fname,s);
        break;

    case EQ: case GE: case GT: case LE: case LT: case NE:
        /* 1 symbol, 2 kids */
        printf("\tN%p [shape=box,label=\"%s\"];\n",s,s->x.name);
        printf("\t%s%p -> N%p [style=dotted,label=\"label\"];\n",fname,p,s);

    case ASGN:
    case ADD: case SUB: case BAND: case BOR: case BXOR:
    case DIV: case LSH: case MOD: case MUL: case RSH:
        /* 2 kids */
        printf("\t%s%p -> %s%p [label=\"left\"];\n",fname,p,fname,left);
        printf("\t%s%p -> %s%p;\n",fname,p,fname,right);
        break;

    case BCOM:
    case CVC: case CVD: case CVF: case CVI: case CVP: case CVS: case CVU:
    case INDIR: case NEG:
    case JUMP:
    case ARG:
        /* 1 kid */
        printf("\t%s%p -> %s%p;\n",fname,p,fname,left);
        break;

    case RET:
        /* 0 or 1 kid */
        if (optype(p->op) != V)
            printf("\t%s%p -> %s%p;\n",fname,p,fname,left);
        break;

    case CALL:
        /* 1 or 2 kids */
        printf("\t%s%p -> %s%p;\n", fname,p,fname,left);
        if (optype(p->op) == B)
            printf("\t%s%p -> %s%p [label=\"res\"];\n",fname,p,fname,right);
        break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x2b188
jmp 0x2b628
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x260, (%rax)          # imm = 0x260
jae 0x2b20a
leaq 0x10851(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $-0x10, %eax
shrl $0x4, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0x105f3(%rip), %rax     # 0x3b7d0
movq (%rax,%rcx,8), %rcx
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
movl %eax, %eax
movl %eax, %edi
leaq 0x1071b(%rip), %rax     # 0x3b910
movsbl (%rax,%rdi), %r8d
leaq 0x9103(%rip), %rdi      # 0x34304
movb $0x0, %al
callq 0x30b0
jmp 0x2b240
leaq 0x107ff(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
movq -0x8(%rbp), %rax
movl (%rax), %eax
subl $0x260, %eax            # imm = 0x260
movl %eax, %eax
movl %eax, %ecx
leaq 0x10702(%rip), %rax     # 0x3b930
movq (%rax,%rcx,8), %rcx
leaq 0x90e2(%rip), %rdi      # 0x3431b
movb $0x0, %al
callq 0x30b0
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $-0x10, %eax
movl %eax, -0x24(%rbp)
subl $0x10, %eax
je 0x2b477
jmp 0x2b257
movl -0x24(%rbp), %eax
subl $0x20, %eax
je 0x2b55b
jmp 0x2b265
movl -0x24(%rbp), %eax
subl $0x30, %eax
je 0x2b502
jmp 0x2b273
movl -0x24(%rbp), %eax
subl $0x40, %eax
je 0x2b55b
jmp 0x2b281
movl -0x24(%rbp), %eax
subl $0x50, %eax
je 0x2b55b
jmp 0x2b28f
movl -0x24(%rbp), %eax
subl $0x60, %eax
je 0x2b55b
jmp 0x2b29d
movl -0x24(%rbp), %eax
subl $0x70, %eax
je 0x2b55b
jmp 0x2b2ab
movl -0x24(%rbp), %eax
subl $0x80, %eax
je 0x2b55b
jmp 0x2b2bb
movl -0x24(%rbp), %eax
subl $0x90, %eax
je 0x2b55b
jmp 0x2b2cb
movl -0x24(%rbp), %eax
subl $0xa0, %eax
je 0x2b55b
jmp 0x2b2db
movl -0x24(%rbp), %eax
subl $0xb0, %eax
je 0x2b55b
jmp 0x2b2eb
movl -0x24(%rbp), %eax
subl $0xc0, %eax
je 0x2b55b
jmp 0x2b2fb
movl -0x24(%rbp), %eax
subl $0xd0, %eax
je 0x2b5c4
jmp 0x2b30b
movl -0x24(%rbp), %eax
subl $0xf0, %eax
je 0x2b58a
jmp 0x2b31b
movl -0x24(%rbp), %eax
subl $0x100, %eax            # imm = 0x100
je 0x2b477
jmp 0x2b32b
movl -0x24(%rbp), %eax
subl $0x110, %eax            # imm = 0x110
je 0x2b477
jmp 0x2b33b
movl -0x24(%rbp), %eax
subl $0x120, %eax            # imm = 0x120
je 0x2b477
jmp 0x2b34b
movl -0x24(%rbp), %eax
subl $0x130, %eax            # imm = 0x130
je 0x2b502
jmp 0x2b35b
movl -0x24(%rbp), %eax
subl $0x140, %eax            # imm = 0x140
je 0x2b502
jmp 0x2b36b
movl -0x24(%rbp), %eax
subl $0x150, %eax            # imm = 0x150
je 0x2b502
jmp 0x2b37b
movl -0x24(%rbp), %eax
subl $0x160, %eax            # imm = 0x160
je 0x2b502
jmp 0x2b38b
movl -0x24(%rbp), %eax
subl $0x170, %eax            # imm = 0x170
je 0x2b502
jmp 0x2b39b
movl -0x24(%rbp), %eax
subl $0x180, %eax            # imm = 0x180
je 0x2b502
jmp 0x2b3ab
movl -0x24(%rbp), %eax
subl $0x190, %eax            # imm = 0x190
je 0x2b55b
jmp 0x2b3bb
movl -0x24(%rbp), %eax
subl $0x1a0, %eax            # imm = 0x1A0
je 0x2b502
jmp 0x2b3cb
movl -0x24(%rbp), %eax
subl $0x1b0, %eax            # imm = 0x1B0
je 0x2b502
jmp 0x2b3db
movl -0x24(%rbp), %eax
subl $0x1c0, %eax            # imm = 0x1C0
je 0x2b502
jmp 0x2b3eb
movl -0x24(%rbp), %eax
subl $0x1d0, %eax            # imm = 0x1D0
je 0x2b502
jmp 0x2b3fb
movl -0x24(%rbp), %eax
subl $0x1e0, %eax            # imm = 0x1E0
je 0x2b4c9
jmp 0x2b40b
movl -0x24(%rbp), %eax
subl $0x1f0, %eax            # imm = 0x1F0
je 0x2b4c9
jmp 0x2b41b
movl -0x24(%rbp), %eax
subl $0x200, %eax            # imm = 0x200
je 0x2b4c9
jmp 0x2b42b
movl -0x24(%rbp), %eax
subl $0x210, %eax            # imm = 0x210
je 0x2b4c9
jmp 0x2b43b
movl -0x24(%rbp), %eax
subl $0x220, %eax            # imm = 0x220
je 0x2b4c9
jmp 0x2b44b
movl -0x24(%rbp), %eax
subl $0x230, %eax            # imm = 0x230
je 0x2b4c9
jmp 0x2b457
movl -0x24(%rbp), %eax
subl $0x240, %eax            # imm = 0x240
je 0x2b55b
jmp 0x2b467
movl -0x24(%rbp), %eax
subl $0x250, %eax            # imm = 0x250
jne 0x2b628
jmp 0x2b477
leaq 0x10592(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x10(%rbp), %rdx
movq -0x10(%rbp), %rax
movq (%rax), %rcx
leaq 0x8e9d(%rip), %rdi      # 0x34330
movb $0x0, %al
callq 0x30b0
leaq 0x1056f(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
leaq 0x10561(%rip), %rax     # 0x3ba10
movq (%rax), %rcx
movq -0x10(%rbp), %r8
leaq 0x8e92(%rip), %rdi      # 0x3434f
movb $0x0, %al
callq 0x30b0
jmp 0x2b628
movq -0x10(%rbp), %rsi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0x8e93(%rip), %rdi      # 0x3436e
movb $0x0, %al
callq 0x30b0
leaq 0x10527(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
leaq 0x8e91(%rip), %rdi      # 0x3438c
movb $0x0, %al
callq 0x30b0
leaq 0x10507(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
leaq 0x104f9(%rip), %rax     # 0x3ba10
movq (%rax), %rcx
movq -0x18(%rbp), %r8
leaq 0x8e93(%rip), %rdi      # 0x343b8
movb $0x0, %al
callq 0x30b0
leaq 0x104dd(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
leaq 0x104cf(%rip), %rax     # 0x3ba10
movq (%rax), %rcx
movq -0x20(%rbp), %r8
leaq 0x8e88(%rip), %rdi      # 0x343d7
movb $0x0, %al
callq 0x30b0
jmp 0x2b628
leaq 0x104ae(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
leaq 0x104a0(%rip), %rax     # 0x3ba10
movq (%rax), %rcx
movq -0x18(%rbp), %r8
leaq 0x8e59(%rip), %rdi      # 0x343d7
movb $0x0, %al
callq 0x30b0
jmp 0x2b628
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
cmpl $0x8, %eax
je 0x2b5c2
leaq 0x10471(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
leaq 0x10463(%rip), %rax     # 0x3ba10
movq (%rax), %rcx
movq -0x18(%rbp), %r8
leaq 0x8e1c(%rip), %rdi      # 0x343d7
movb $0x0, %al
callq 0x30b0
jmp 0x2b628
leaq 0x10445(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
leaq 0x10437(%rip), %rax     # 0x3ba10
movq (%rax), %rcx
movq -0x18(%rbp), %r8
leaq 0x8df0(%rip), %rdi      # 0x343d7
movb $0x0, %al
callq 0x30b0
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
cmpl $0x9, %eax
jne 0x2b626
leaq 0x1040d(%rip), %rax     # 0x3ba10
movq (%rax), %rsi
movq -0x8(%rbp), %rdx
leaq 0x103ff(%rip), %rax     # 0x3ba10
movq (%rax), %rcx
movq -0x20(%rbp), %r8
leaq 0x8dc8(%rip), %rdi      # 0x343e7
movb $0x0, %al
callq 0x30b0
jmp 0x2b628
addq $0x30, %rsp
popq %rbp
retq
nop