// File: /workspace/github_c_makefile_star2_O1/gaultier[P]lox-c/parse.c
// Function: emit_byte2
static void emit_byte2(Parser* parser, uint8_t byte1, uint8_t byte2) {
    LOG("opcode1=%s byte2=%d\n", opcode_str[byte1], byte2);
    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, byte1);
    buf_push(parser->compiler->fn->chunk.locations, loc);
    buf_push(parser->compiler->fn->chunk.opcodes, byte2);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %edx, %ebx
movl %esi, %ebp
movq %rdi, %r14
movq 0x80(%rdi), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rdi
testq %rdi, %rdi
je 0x417e
movq -0x10(%rdi), %rax
jmp 0x4180
xorl %eax, %eax
testq %rdi, %rdi
je 0x418b
movq -0x8(%rdi), %rcx
jmp 0x418d
xorl %ecx, %ecx
movq 0x58(%r14), %r15
movq 0x60(%r14), %r12
cmpq %rcx, %rax
jne 0x41d2
testq %rdi, %rdi
je 0x41b1
movq -0x10(%rdi), %rax
testq %rax, %rax
movl $0x8, %edx
cmovneq %rax, %rdx
jmp 0x41b6
movl $0x8, %edx
movl $0x10, %esi
callq 0x3ab4
movq 0x80(%r14), %rcx
movq 0x3010(%rcx), %rcx
movq %rax, 0x20(%rcx)
movq 0x80(%r14), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rcx), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, -0x8(%rcx)
shlq $0x4, %rdx
movq %r15, (%rcx,%rdx)
movq %r12, 0x8(%rcx,%rdx)
movq 0x18(%rax), %rdi
testq %rdi, %rdi
je 0x420c
movq -0x10(%rdi), %rax
jmp 0x420e
xorl %eax, %eax
testq %rdi, %rdi
je 0x4219
movq -0x8(%rdi), %rcx
jmp 0x421b
xorl %ecx, %ecx
cmpq %rcx, %rax
jne 0x4258
testq %rdi, %rdi
je 0x4237
movq -0x10(%rdi), %rax
testq %rax, %rax
movl $0x8, %edx
cmovneq %rax, %rdx
jmp 0x423c
movl $0x8, %edx
movl $0x1, %esi
callq 0x3ab4
movq 0x80(%r14), %rcx
movq 0x3010(%rcx), %rcx
movq %rax, 0x18(%rcx)
movq 0x80(%r14), %rax
movq 0x3010(%rax), %rax
movq 0x18(%rax), %rax
movq -0x8(%rax), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, -0x8(%rax)
movb %bpl, (%rax,%rcx)
movq 0x80(%r14), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rdi
testq %rdi, %rdi
je 0x4297
movq -0x10(%rdi), %rax
jmp 0x4299
xorl %eax, %eax
testq %rdi, %rdi
je 0x42a4
movq -0x8(%rdi), %rcx
jmp 0x42a6
xorl %ecx, %ecx
cmpq %rcx, %rax
jne 0x42e3
testq %rdi, %rdi
je 0x42c2
movq -0x10(%rdi), %rax
testq %rax, %rax
movl $0x8, %edx
cmovneq %rax, %rdx
jmp 0x42c7
movl $0x8, %edx
movl $0x10, %esi
callq 0x3ab4
movq 0x80(%r14), %rcx
movq 0x3010(%rcx), %rcx
movq %rax, 0x20(%rcx)
movq 0x80(%r14), %rax
movq 0x3010(%rax), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rcx), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, -0x8(%rcx)
shlq $0x4, %rdx
movq %r15, (%rcx,%rdx)
movq %r12, 0x8(%rcx,%rdx)
movq 0x18(%rax), %rdi
testq %rdi, %rdi
je 0x431d
movq -0x10(%rdi), %rax
jmp 0x431f
xorl %eax, %eax
testq %rdi, %rdi
je 0x432a
movq -0x8(%rdi), %rcx
jmp 0x432c
xorl %ecx, %ecx
cmpq %rcx, %rax
jne 0x4369
testq %rdi, %rdi
je 0x4348
movq -0x10(%rdi), %rax
testq %rax, %rax
movl $0x8, %edx
cmovneq %rax, %rdx
jmp 0x434d
movl $0x8, %edx
movl $0x1, %esi
callq 0x3ab4
movq 0x80(%r14), %rcx
movq 0x3010(%rcx), %rcx
movq %rax, 0x18(%rcx)
movq 0x80(%r14), %rax
movq 0x3010(%rax), %rax
movq 0x18(%rax), %rax
movq -0x8(%rax), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, -0x8(%rax)
movb %bl, (%rax,%rcx)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq