// File: /workspace/github_c_makefile_star2_O0/Liutos[P]Eloquent/bytecode.c
// Function: bc_print
void bc_print(bytecode_t *bc, FILE *output)
{
    fprintf(output, "%s", bc_name(bc));
    switch (BC_OPCODE(bc)) {
        case BC_ADDR:
            fprintf(output, " %s", BC_ADDR_NAME(bc));
            break;
        case BC_ARGS:
            fprintf(output, " %d", BC_ARGS_ARITY(bc));
            break;
        case BC_CALL:
            fprintf(output, " %d", BC_CALL_NARGS(bc));
            break;
        case BC_DGET:
            fprintf(output, " %s", BC_DGET_NAME(bc));
            break;
        case BC_DSET:
            fprintf(output, " %s", BC_DSET_NAME(bc));
            break;
        case BC_FJUMP:
            fprintf(output, " %d", BC_FJUMP_INDEX(bc));
            break;
        case BC_JUMP:
            fprintf(output, " %d", BC_JUMP_INDEX(bc));
            break;
        case BC_LABEL:
            fprintf(output, " %s", BC_LABEL_NAME(bc));
            break;
        case BC_PUSH:
            fputc(' ', output);
            value_print(BC_PUSH_PTR(bc), output);
            break;
        case BC_GREF:
        case BC_REF:
            fprintf(output, " %d %d ; %s", BC_REF_I(bc), BC_REF_J(bc), BC_REF_NAME(bc));
            break;
        case BC_GSET:
        case BC_SET:
            fprintf(output, " %d %d ; %s", BC_SET_I(bc), BC_SET_J(bc), BC_SET_NAME(bc));
            break;
        case BC_TRACE:
            fprintf(output, " %s", BC_TRACE_NAME(bc));
            break;
        default :
            break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x66d0
movq -0x20(%rbp), %rdi
movq %rax, %rdx
leaq 0x3bce(%rip), %rsi      # 0xa0cd
xorl %eax, %eax
callq 0x20c0
movq -0x8(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x18(%rbp)
subq $0x14, %rax
ja 0x66bc
movq -0x18(%rbp), %rax
leaq 0x4153(%rip), %rcx      # 0xa678
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0x3b88(%rip), %rsi      # 0xa0cc
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %edx
leaq 0x4304(%rip), %rsi      # 0xa866
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %edx
leaq 0x42e6(%rip), %rsi      # 0xa866
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x3b2d(%rip), %rsi      # 0xa0cc
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x3b0e(%rip), %rsi      # 0xa0cc
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x10(%rax), %edx
leaq 0x428a(%rip), %rsi      # 0xa866
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x10(%rax), %edx
leaq 0x426c(%rip), %rsi      # 0xa866
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0x3ab0(%rip), %rsi      # 0xa0cc
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rsi
movl $0x20, %edi
callq 0x2090
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x2860
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %edx
movq -0x8(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %r8
leaq 0x4062(%rip), %rsi      # 0xa6cc
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %edx
movq -0x8(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %r8
leaq 0x4038(%rip), %rsi      # 0xa6cc
movb $0x0, %al
callq 0x20c0
jmp 0x66be
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0x3a19(%rip), %rsi      # 0xa0cc
movb $0x0, %al
callq 0x20c0
jmp 0x66be
jmp 0x66be
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)