// File: /workspace/github_c_makefile_star2_O3/alexj136[P]minijit/src/typecheck.c
// Function: TypeErrorVector_shift
DEFINE_VECTORABLE(TypeError)

TypeError *TypeError_init(TypeErrorInfo info, int name, Type *found,
        Type *expected, int line_no, int char_no) {

    TypeError *error = challoc(sizeof(TypeError));
    error->info      = info;
    error->name      = name;
    error->found     = found;
    error->expected  = expected;
    error->line_no   = line_no;
    error->char_no   = char_no;
    return error;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1f40, %rsp           # imm = 0x1F40
testq %rdi, %rdi
je 0x12659
movl %esi, %r14d
testl %esi, %esi
js 0x1250e
movq %rdi, %rbx
movl %r14d, %r12d
movq %rbx, %rdi
callq 0x11c8a
cmpl %r12d, %eax
jle 0x125c1
movq %rbx, %rdi
callq 0x11c8a
decl %eax
cmpq %rax, %r12
je 0x125a5
leaq 0x1(%r12), %r15
movq %rbx, %rdi
movl %r15d, %esi
callq 0x11f1d
movq 0x8(%rbx), %rcx
movq %rax, (%rcx,%r12,8)
movq %r15, %r12
testl %r14d, %r14d
jns 0x124ca
leaq 0x8aef(%rip), %rdi      # 0x1b004
leaq 0x9cdc(%rip), %rsi      # 0x1c1f8
leaq 0x9df5(%rip), %rcx      # 0x1c318
movl $0x4f, %edx
xorl %eax, %eax
callq 0x6100
leaq 0x8af6(%rip), %rdi      # 0x1b02c
leaq 0x8ba3(%rip), %rsi      # 0x1b0e0
xorl %eax, %eax
callq 0x6100
leaq -0x1f60(%rbp), %rbx
movq %rbx, %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x60e0
movl %eax, %r14d
movq %rbx, %rdi
movl %eax, %esi
callq 0x60b0
movq %rax, %rbx
leaq 0x8ca7(%rip), %rdi      # 0x1b216
callq 0x6070
testl %r14d, %r14d
jle 0x1264f
movl %r14d, %r15d
leaq 0x8aa5(%rip), %r14      # 0x1b02c
xorl %r12d, %r12d
movq (%rbx,%r12,8), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x6100
incq %r12
cmpq %r12, %r15
jne 0x1258a
jmp 0x1264f
movq 0x8(%rbx), %rax
movq $0x0, (%rax,%r12,8)
addq $0x1f40, %rsp           # imm = 0x1F40
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8a3c(%rip), %rdi      # 0x1b004
leaq 0x9c29(%rip), %rsi      # 0x1c1f8
leaq 0x9d42(%rip), %rcx      # 0x1c318
movl $0x4f, %edx
xorl %eax, %eax
callq 0x6100
leaq 0x8a43(%rip), %rdi      # 0x1b02c
leaq 0x8b00(%rip), %rsi      # 0x1b0f0
xorl %eax, %eax
callq 0x6100
leaq -0x1f60(%rbp), %rbx
movq %rbx, %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x60e0
movl %eax, %r14d
movq %rbx, %rdi
movl %eax, %esi
callq 0x60b0
movq %rax, %rbx
leaq 0x8bf4(%rip), %rdi      # 0x1b216
callq 0x6070
testl %r14d, %r14d
jle 0x1264f
movl %r14d, %r15d
leaq 0x89f6(%rip), %r14      # 0x1b02c
xorl %r12d, %r12d
movq (%rbx,%r12,8), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x6100
incq %r12
cmpq %r12, %r15
jne 0x12639
movl $0x1, %edi
callq 0x61a0
leaq 0x89a4(%rip), %rdi      # 0x1b004
leaq 0x9b91(%rip), %rsi      # 0x1c1f8
leaq 0x9caa(%rip), %rcx      # 0x1c318
movl $0x4f, %edx
xorl %eax, %eax
callq 0x6100
leaq 0x89ab(%rip), %rdi      # 0x1b02c
leaq 0x8a12(%rip), %rsi      # 0x1b09a
xorl %eax, %eax
callq 0x6100
leaq -0x1f60(%rbp), %rbx
movq %rbx, %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x60e0
movl %eax, %r14d
movq %rbx, %rdi
movl %eax, %esi
callq 0x60b0
movq %rax, %rbx
leaq 0x8b5c(%rip), %rdi      # 0x1b216
callq 0x6070
testl %r14d, %r14d
jle 0x1264f
movl %r14d, %r15d
leaq 0x895e(%rip), %r14      # 0x1b02c
xorl %r12d, %r12d
movq (%rbx,%r12,8), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x6100
incq %r12
cmpq %r12, %r15
jne 0x126d1
jmp 0x1264f