// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: init_small_ints
static void init_small_ints(void)
    {
        const char *ones[10] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
        s7_cell *cells;
        int32_t i;
        cells = (s7_cell *)calloc((NUM_SMALL_INTS + 1), sizeof(s7_cell));
        for (i = 0; i <= NUM_SMALL_INTS; i++)
        {
            s7_pointer p;
            small_ints[i] = &cells[i];
            p = small_ints[i];
            set_type_bit(p, T_IMMUTABLE | T_INTEGER | T_UNHEAP);
            integer(p) = i;
        }
        for (i = 0; i < 10; i++)
            set_print_name(small_ints[i], ones[i], 1);

        /* setup a few other numbers while we're here */
#define EXTRA_NUMBERS 10
        cells = (s7_cell *)calloc(EXTRA_NUMBERS, sizeof(s7_cell));

#define init_real(Ptr, Num, Name, Name_Len) \
        do {set_type(Ptr, T_REAL | T_IMMUTABLE | T_UNHEAP); set_real(Ptr, Num); if (Name) set_print_name(Ptr, Name, Name_Len);} while (0)

        real_zero = &cells[0]; init_real(real_zero, 0.0, "0.0", 3);
        real_one = &cells[1]; init_real(real_one, 1.0, "1.0", 3);
        real_NaN = &cells[2]; init_real(real_NaN, NAN, "+nan.0", 6);
        real_infinity = &cells[3]; init_real(real_infinity, INFINITY, "+inf.0", 6);
        real_minus_infinity = &cells[4]; init_real(real_minus_infinity, -INFINITY, "-inf.0", 6);
        real_pi = &cells[5]; init_real(real_pi, 3.1415926535897932384626433832795029L, NULL, 0); /* M_PI is not good enough for s7_double = long double */

#define init_integer(Ptr, Num, Name, Name_Len) \
        do {set_type(Ptr, T_INTEGER | T_IMMUTABLE | T_UNHEAP); set_integer(Ptr, Num); if (Name) set_print_name(Ptr, Name, Name_Len);} while (0)

        arity_not_set = &cells[6]; init_integer(arity_not_set, CLOSURE_ARITY_NOT_SET, NULL, 0);
        max_arity = &cells[7]; init_integer(max_arity, MAX_ARITY, NULL, 0);
        minus_one = &cells[8]; init_integer(minus_one, -1, "-1", 2);
        minus_two = &cells[9]; init_integer(minus_two, -2, "-2", 2);

        mostfix = make_permanent_integer_unchecked(s7_int_max);
        leastfix = make_permanent_integer_unchecked(s7_int_min);
        if (s7_int_bits == 63)
        {
            set_print_name(mostfix, "9223372036854775807", 19);
            set_print_name(leastfix, "-9223372036854775808", 20);
        }
        else
        {
            set_print_name(mostfix, "2147483647", 10);
            set_print_name(leastfix, "-2147483648", 11);
        }
    }

// Assembly:
subq $0x78, %rsp
leaq 0x20(%rsp), %rdi
leaq 0x1b5b80(%rip), %rsi    # 0x214d80
movl $0x50, %edx
callq 0x93e0
movl $0x801, %edi            # imm = 0x801
movl $0x30, %esi
callq 0x9360
movq %rax, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
cmpl $0x800, 0x14(%rsp)      # imm = 0x800
jg 0x5f296
movq 0x18(%rsp), %rdx
movslq 0x14(%rsp), %rax
imulq $0x30, %rax, %rax
addq %rax, %rdx
movslq 0x14(%rsp), %rcx
leaq 0x1b7233(%rip), %rax    # 0x216480
movq %rdx, (%rax,%rcx,8)
movslq 0x14(%rsp), %rcx
leaq 0x1b7223(%rip), %rax    # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movabsq $0x400000000100000b, %rcx # imm = 0x400000000100000B
orq (%rax), %rcx
movq %rcx, (%rax)
movslq 0x14(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x5f226
movl $0x0, 0x14(%rsp)
cmpl $0xa, 0x14(%rsp)
jge 0x5f2d6
movslq 0x14(%rsp), %rcx
leaq 0x1b71cf(%rip), %rax    # 0x216480
movq (%rax,%rcx,8), %rdi
movslq 0x14(%rsp), %rax
movq 0x20(%rsp,%rax,8), %rsi
movl $0x1, %edx
callq 0x1b0180
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x5f29e
movl $0xa, %edi
movl $0x30, %esi
callq 0x9360
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x1bb492(%rip)    # 0x21a788
movq 0x1bb48b(%rip), %rax    # 0x21a788
movabsq $0x400000000100000d, %rcx # imm = 0x400000000100000D
movq %rcx, (%rax)
movq 0x1bb477(%rip), %rax    # 0x21a788
xorps %xmm0, %xmm0
movsd %xmm0, 0x8(%rax)
movb $0x1, %al
testb $0x1, %al
jne 0x5f321
jmp 0x5f339
movq 0x1bb460(%rip), %rdi    # 0x21a788
leaq 0x19380b(%rip), %rsi    # 0x1f2b3a
movl $0x3, %edx
callq 0x1b0180
jmp 0x5f33b
movq 0x18(%rsp), %rax
addq $0x30, %rax
movq %rax, 0x1c5cc5(%rip)    # 0x225010
movq 0x1c5cbe(%rip), %rax    # 0x225010
movabsq $0x400000000100000d, %rcx # imm = 0x400000000100000D
movq %rcx, (%rax)
movq 0x1c5caa(%rip), %rax    # 0x225010
movsd 0x1825fa(%rip), %xmm0   # 0x1e1968
movsd %xmm0, 0x8(%rax)
movb $0x1, %al
testb $0x1, %al
jne 0x5f37b
jmp 0x5f393
movq 0x1c5c8e(%rip), %rdi    # 0x225010
leaq 0x1937b5(%rip), %rsi    # 0x1f2b3e
movl $0x3, %edx
callq 0x1b0180
jmp 0x5f395
movq 0x18(%rsp), %rax
addq $0x60, %rax
movq %rax, 0x1be62b(%rip)    # 0x21d9d0
movq 0x1be624(%rip), %rax    # 0x21d9d0
movabsq $0x400000000100000d, %rcx # imm = 0x400000000100000D
movq %rcx, (%rax)
movq 0x1be610(%rip), %rax    # 0x21d9d0
movsd 0x182600(%rip), %xmm0   # 0x1e19c8
movsd %xmm0, 0x8(%rax)
movb $0x1, %al
testb $0x1, %al
jne 0x5f3d5
jmp 0x5f3ed
movq 0x1be5f4(%rip), %rdi    # 0x21d9d0
leaq 0x18ed39(%rip), %rsi    # 0x1ee11c
movl $0x6, %edx
callq 0x1b0180
jmp 0x5f3ef
movq 0x18(%rsp), %rax
addq $0x90, %rax
movq %rax, 0x1be5d7(%rip)    # 0x21d9d8
movq 0x1be5d0(%rip), %rax    # 0x21d9d8
movabsq $0x400000000100000d, %rcx # imm = 0x400000000100000D
movq %rcx, (%rax)
movq 0x1be5bc(%rip), %rax    # 0x21d9d8
movsd 0x18254c(%rip), %xmm0   # 0x1e1970
movsd %xmm0, 0x8(%rax)
movb $0x1, %al
testb $0x1, %al
jne 0x5f431
jmp 0x5f449
movq 0x1be5a0(%rip), %rdi    # 0x21d9d8
leaq 0x18eceb(%rip), %rsi    # 0x1ee12a
movl $0x6, %edx
callq 0x1b0180
jmp 0x5f44b
movq 0x18(%rsp), %rax
addq $0xc0, %rax
movq %rax, 0x1c29cb(%rip)    # 0x221e28
movq 0x1c29c4(%rip), %rax    # 0x221e28
movabsq $0x400000000100000d, %rcx # imm = 0x400000000100000D
movq %rcx, (%rax)
movq 0x1c29b0(%rip), %rax    # 0x221e28
movsd 0x182550(%rip), %xmm0   # 0x1e19d0
movsd %xmm0, 0x8(%rax)
movb $0x1, %al
testb $0x1, %al
jne 0x5f48d
jmp 0x5f4a5
movq 0x1c2994(%rip), %rdi    # 0x221e28
leaq 0x18ec88(%rip), %rsi    # 0x1ee123
movl $0x6, %edx
callq 0x1b0180
jmp 0x5f4a7
movq 0x18(%rsp), %rax
addq $0xf0, %rax
movq %rax, 0x1be527(%rip)    # 0x21d9e0
movq 0x1be520(%rip), %rax    # 0x21d9e0
movabsq $0x400000000100000d, %rcx # imm = 0x400000000100000D
movq %rcx, (%rax)
movq 0x1be50c(%rip), %rax    # 0x21d9e0
movsd 0x1824fc(%rip), %xmm0   # 0x1e19d8
movsd %xmm0, 0x8(%rax)
xorl %eax, %eax
testb $0x1, %al
jne 0x5f4e9
jmp 0x5f4fb
movq 0x1be4f0(%rip), %rdi    # 0x21d9e0
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1b0180
jmp 0x5f4fd
movq 0x18(%rsp), %rax
addq $0x120, %rax            # imm = 0x120
movq %rax, 0x1c5a41(%rip)    # 0x224f50
movq 0x1c5a3a(%rip), %rax    # 0x224f50
movabsq $0x400000000100000b, %rcx # imm = 0x400000000100000B
movq %rcx, (%rax)
movq 0x1c5a26(%rip), %rax    # 0x224f50
movq $0x40000000, 0x8(%rax)  # imm = 0x40000000
xorl %eax, %eax
testb $0x1, %al
jne 0x5f53a
jmp 0x5f54c
movq 0x1c5a0f(%rip), %rdi    # 0x224f50
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1b0180
jmp 0x5f54e
movq 0x18(%rsp), %rax
addq $0x150, %rax            # imm = 0x150
movq %rax, 0x1bc978(%rip)    # 0x21bed8
movq 0x1bc971(%rip), %rax    # 0x21bed8
movabsq $0x400000000100000b, %rcx # imm = 0x400000000100000B
movq %rcx, (%rax)
movq 0x1bc95d(%rip), %rax    # 0x21bed8
movq $0x20000000, 0x8(%rax)  # imm = 0x20000000
xorl %eax, %eax
testb $0x1, %al
jne 0x5f58b
jmp 0x5f59d
movq 0x1bc946(%rip), %rdi    # 0x21bed8
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1b0180
jmp 0x5f59f
movq 0x18(%rsp), %rax
addq $0x180, %rax            # imm = 0x180
movq %rax, 0x1c5997(%rip)    # 0x224f48
movq 0x1c5990(%rip), %rax    # 0x224f48
movabsq $0x400000000100000b, %rcx # imm = 0x400000000100000B
movq %rcx, (%rax)
movq 0x1c597c(%rip), %rax    # 0x224f48
movq $-0x1, 0x8(%rax)
movb $0x1, %al
testb $0x1, %al
jne 0x5f5dc
jmp 0x5f5f4
movq 0x1c5965(%rip), %rdi    # 0x224f48
leaq 0x187577(%rip), %rsi    # 0x1e6b61
movl $0x2, %edx
callq 0x1b0180
jmp 0x5f5f6
movq 0x18(%rsp), %rax
addq $0x1b0, %rax            # imm = 0x1B0
movq %rax, 0x1c5950(%rip)    # 0x224f58
movq 0x1c5949(%rip), %rax    # 0x224f58
movabsq $0x400000000100000b, %rcx # imm = 0x400000000100000B
movq %rcx, (%rax)
movq 0x1c5935(%rip), %rax    # 0x224f58
movq $-0x2, 0x8(%rax)
movb $0x1, %al
testb $0x1, %al
jne 0x5f633
jmp 0x5f64b
movq 0x1c591e(%rip), %rdi    # 0x224f58
leaq 0x193501(%rip), %rsi    # 0x1f2b42
movl $0x2, %edx
callq 0x1b0180
jmp 0x5f64d
movq 0x1bb0e4(%rip), %rdi    # 0x21a738
callq 0x18aac0
movq %rax, 0x1c5910(%rip)    # 0x224f70
movq 0x1baef1(%rip), %rdi    # 0x21a558
callq 0x18aac0
movq %rax, 0x1c58f5(%rip)    # 0x224f68
cmpl $0x3f, 0x1bb116(%rip)   # 0x21a790
jne 0x5f6ae
movq 0x1c58ed(%rip), %rdi    # 0x224f70
leaq 0x1934bb(%rip), %rsi    # 0x1f2b45
movl $0x13, %edx
callq 0x1b0180
movq 0x1c58cd(%rip), %rdi    # 0x224f68
leaq 0x18eaab(%rip), %rsi    # 0x1ee14d
movl $0x14, %edx
callq 0x1b0180
jmp 0x5f6de
movq 0x1c58bb(%rip), %rdi    # 0x224f70
leaq 0x19349d(%rip), %rsi    # 0x1f2b59
movl $0xa, %edx
callq 0x1b0180
movq 0x1c589b(%rip), %rdi    # 0x224f68
leaq 0x193490(%rip), %rsi    # 0x1f2b64
movl $0xb, %edx
callq 0x1b0180
addq $0x78, %rsp
retq
nopw %cs:(%rax,%rax)