// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: vector_fill
static void vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj)
                {
                    switch (type(vec))
                    {
                        case T_FLOAT_VECTOR:
                            if (!s7_is_real(obj))
                                s7_wrong_type_arg_error(sc, "float-vector fill!", 2, obj, "a real");
                            else float_vector_fill(sc, vec, s7_real(obj));
                            break;

                        case T_INT_VECTOR:
                            if (!s7_is_integer(obj)) /* possibly a bignum */
                                s7_wrong_type_arg_error(sc, "int-vector fill!", 2, obj, "an integer");
                            else int_vector_fill(sc, vec, s7_integer(obj));
                            break;

                        case T_BYTE_VECTOR:
                            if (!is_byte(obj))
                                s7_wrong_type_arg_error(sc, "byte-vector fill!", 2, obj, "a byte");
                            else byte_vector_fill(sc, vec, (uint8_t)s7_integer(obj));
                            break;

                        default:
                            normal_vector_fill(sc, vec, obj);
                    }
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movzbl (%rsi), %eax
cmpl $0x16, %eax
je 0x3d6e4
cmpl $0x18, %eax
je 0x3d6c4
cmpl $0x17, %eax
jne 0x3d700
movzbl (%rbx), %eax
leaq 0x115308(%rip), %rcx    # 0x1529b0
cmpb $0x0, (%rax,%rcx)
je 0x3d765
cmpb $0xd, %al
jne 0x3d78e
movsd 0x8(%rbx), %xmm0
jmp 0x3d7a4
movb (%rbx), %al
cmpb $0xb, %al
jne 0x3d745
cmpq $0x100, 0x8(%rbx)       # imm = 0x100
jae 0x3d745
cmpb $0xb, %al
jne 0x3d7f4
movb 0x8(%rbx), %al
jmp 0x3d7f6
cmpb $0xb, (%rbx)
jne 0x3d755
movq 0x8(%rbx), %rsi
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0xa0344
movq 0x8(%r14), %r12
testq %r12, %r12
je 0x3d9a8
testb $0x2, 0x6(%r14)
je 0x3d8c5
movq 0x28(%r14), %rsi
cmpb $0x30, (%rsi)
jb 0x3d7b7
movq 0x10(%rsi), %rax
movq 0x700(%r15), %rcx
movq %rbx, 0x8(%rcx)
movq 0x700(%r15), %rsi
movq %r15, %rdi
callq *%rax
jmp 0x3d7d1
leaq 0xe289d(%rip), %rsi     # 0x11ffe9
leaq 0xe2864(%rip), %r8      # 0x11ffb7
jmp 0x3d773
leaq 0xe287c(%rip), %rsi     # 0x11ffd8
leaq 0xe28ff(%rip), %r8      # 0x120062
jmp 0x3d773
leaq 0xe2852(%rip), %rsi     # 0x11ffbe
leaq 0xe285e(%rip), %r8      # 0x11ffd1
movl $0x2, %edx
movq %r15, %rdi
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0xe25f
movq 0x11529b(%rip), %rdi    # 0x152a30
leaq 0xd57cc(%rip), %rdx     # 0x112f68
movq %rbx, %rsi
callq 0xe212
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0xa01f6
movq 0x700(%r15), %rax
movq %rbx, 0x8(%rax)
movq 0x700(%r15), %rdx
movq %r15, %rdi
callq 0xbd41
cmpq 0x120(%r15), %rax
jne 0x3d8c5
movq 0x28(%r14), %rsi
cmpb $0x30, (%rsi)
jb 0x3d887
movq 0x8(%rsi), %rax
jmp 0x3d89b
xorl %eax, %eax
movq 0x8(%r14), %rbx
testq %rbx, %rbx
je 0x3d9a8
movq 0x10(%r14), %r14
testb %al, %al
je 0x3d846
movzbl %al, %esi
cmpq $0x8, %rbx
jb 0x3d838
movq %rbx, %rax
shrq $0x3, %rax
movabsq $0x101010101010101, %rcx # imm = 0x101010101010101
imulq %rsi, %rcx
movq %rcx, (%r14)
addq $0x8, %r14
decq %rax
jne 0x3d829
andl $0x7, %ebx
testq %rbx, %rbx
je 0x3d9a8
movq %r14, %rdi
jmp 0x3d874
cmpq $0x8, %rbx
jb 0x3d866
movq %rbx, %r15
andq $-0x8, %r15
movq %r14, %rdi
xorl %esi, %esi
movq %r15, %rdx
callq 0x9270
addq %r15, %r14
andl $0x7, %ebx
testq %rbx, %rbx
je 0x3d9a8
movq %r14, %rdi
xorl %esi, %esi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x9270
movq 0x18(%rsi), %rdx
movq %r15, %rdi
callq 0xa05a7
movq 0x8(%rax), %rax
addq $0x10, %rax
movq (%rax), %rsi
movq %r15, %rdi
movl $0x1, %edx
callq 0xa0491
leaq 0xe273c(%rip), %rsi     # 0x11ffee
movl $0x2, %edx
movq %r15, %rdi
movq %rbx, %rcx
movq %rax, %r8
callq 0xe25f
movq 0x10(%r14), %rcx
cmpq $0x8, %r12
jge 0x3d8d3
xorl %edx, %edx
jmp 0x3d90a
leaq -0x8(%r12), %rax
xorl %edx, %edx
movq %rbx, (%rcx,%rdx,8)
movq %rbx, 0x8(%rcx,%rdx,8)
movq %rbx, 0x10(%rcx,%rdx,8)
movq %rbx, 0x18(%rcx,%rdx,8)
movq %rbx, 0x20(%rcx,%rdx,8)
movq %rbx, 0x28(%rcx,%rdx,8)
movq %rbx, 0x30(%rcx,%rdx,8)
movq %rbx, 0x38(%rcx,%rdx,8)
addq $0x8, %rdx
cmpq %rax, %rdx
jle 0x3d8da
subq %rdx, %r12
jle 0x3d9a8
leaq 0x1(%r12), %rax
andq $-0x2, %rax
decq %r12
movq %r12, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
leaq (%rcx,%rdx,8), %rcx
addq $0x8, %rcx
xorl %edx, %edx
movdqa 0xd54a5(%rip), %xmm1    # 0x112de0
movdqa 0xd54ad(%rip), %xmm2    # 0x112df0
pxor %xmm2, %xmm0
pcmpeqd %xmm3, %xmm3
movq %rdx, %xmm4
pshufd $0x44, %xmm4, %xmm4     # xmm4 = xmm4[0,1,0,1]
por %xmm1, %xmm4
pxor %xmm2, %xmm4
movdqa %xmm4, %xmm5
pcmpgtd %xmm0, %xmm5
pcmpeqd %xmm0, %xmm4
pshufd $0xf5, %xmm4, %xmm6     # xmm6 = xmm4[1,1,3,3]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm5, %xmm4     # xmm4 = xmm5[1,1,3,3]
por %xmm6, %xmm4
movd %xmm4, %esi
notl %esi
testb $0x1, %sil
je 0x3d98c
movq %rbx, -0x8(%rcx,%rdx,8)
pxor %xmm3, %xmm4
pextrw $0x4, %xmm4, %esi
testb $0x1, %sil
je 0x3d99f
movq %rbx, (%rcx,%rdx,8)
addq $0x2, %rdx
cmpq %rdx, %rax
jne 0x3d94b
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq