// File: /workspace/github_c_makefile_star2_O0/gaultier[P]lox-c/parse.c
// Function: emit_byte
static void emit_byte(Parser* parser, uint8_t byte) {
    LOG("byte=%d opcode=%s\n", byte, opcode_str[byte]);
    Location loc = {.line = parser->previous.line,
                    .column = parser->previous.column};
    buf_push(parser->compiler->fn->chunk.locations, loc);
    buf_push(parser->compiler->fn->chunk.opcodes, byte);
}

// Assembly:
subq $0x88, %rsp
movb %sil, %al
movq %rdi, 0x80(%rsp)
movb %al, 0x7f(%rsp)
jmp 0x3548
movq 0x80(%rsp), %rax
movq 0x58(%rax), %rax
movq %rax, 0x68(%rsp)
movq 0x80(%rsp), %rax
movq 0x60(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0x35ac
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rax
movq -0x10(%rax), %rax
movq %rax, 0x60(%rsp)
jmp 0x35b5
xorl %eax, %eax
movq %rax, 0x60(%rsp)
jmp 0x35b5
movq 0x60(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0x3601
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rax
movq -0x8(%rax), %rax
movq %rax, 0x50(%rsp)
jmp 0x360a
xorl %eax, %eax
movq %rax, 0x50(%rsp)
jmp 0x360a
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
cmpq %rcx, %rax
jne 0x3716
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, 0x48(%rsp)
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0x367c
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rax
cmpq $0x0, -0x10(%rax)
jne 0x3690
jmp 0x3684
xorl %eax, %eax
testb $0x1, %al
jne 0x3690
jmp 0x3684
movl $0x8, %eax
movq %rax, 0x40(%rsp)
jmp 0x36e5
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0x36d2
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rax
movq -0x10(%rax), %rax
movq %rax, 0x38(%rsp)
jmp 0x36db
xorl %eax, %eax
movq %rax, 0x38(%rsp)
jmp 0x36db
movq 0x38(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rdx
movl $0x10, %esi
callq 0x3f00
movq %rax, %rcx
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rax
movq 0x80(%rsp), %rcx
movq 0x80(%rcx), %rcx
movq 0x3010(%rcx), %rcx
movq 0x20(%rcx), %rdx
movq -0x8(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, -0x8(%rdx)
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x68(%rsp), %rcx
movq %rcx, (%rax)
movq 0x70(%rsp), %rcx
movq %rcx, 0x8(%rax)
jmp 0x3773
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x37b5
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x18(%rax), %rax
movq -0x10(%rax), %rax
movq %rax, 0x30(%rsp)
jmp 0x37be
xorl %eax, %eax
movq %rax, 0x30(%rsp)
jmp 0x37be
movq 0x30(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x380a
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x18(%rax), %rax
movq -0x8(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x3813
xorl %eax, %eax
movq %rax, 0x20(%rsp)
jmp 0x3813
movq 0x28(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq %rcx, %rax
jne 0x391f
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x3885
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x18(%rax), %rax
cmpq $0x0, -0x10(%rax)
jne 0x3899
jmp 0x388d
xorl %eax, %eax
testb $0x1, %al
jne 0x3899
jmp 0x388d
movl $0x8, %eax
movq %rax, 0x10(%rsp)
jmp 0x38ee
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x38db
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x18(%rax), %rax
movq -0x10(%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x38e4
xorl %eax, %eax
movq %rax, 0x8(%rsp)
jmp 0x38e4
movq 0x8(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0x1, %esi
callq 0x3f00
movq %rax, %rcx
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq %rcx, 0x18(%rax)
movb 0x7f(%rsp), %dl
movq 0x80(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x3010(%rax), %rax
movq 0x18(%rax), %rax
movq 0x80(%rsp), %rcx
movq 0x80(%rcx), %rcx
movq 0x3010(%rcx), %rcx
movq 0x18(%rcx), %rsi
movq -0x8(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, -0x8(%rsi)
movb %dl, (%rax,%rcx)
addq $0x88, %rsp
retq
nopw %cs:(%rax,%rax)