// File: /workspace/github_c_makefile_star2_O0/janet-lang[P]janet/src/boot/system_test.c
// Function: system_test
int system_test() {

#ifdef JANET_32
    assert(sizeof(void *) == 4);
#else
    assert(sizeof(void *) == 8);
#endif

    /* Check the version defines are self consistent */
    char version_combined[256];
    sprintf(version_combined, "%d.%d.%d%s", JANET_VERSION_MAJOR, JANET_VERSION_MINOR, JANET_VERSION_PATCH, JANET_VERSION_EXTRA);
    assert(!strcmp(JANET_VERSION, version_combined));

    /* Reflexive testing and nanbox testing */
    assert(janet_equals(janet_wrap_nil(), janet_wrap_nil()));
    assert(janet_equals(janet_wrap_false(), janet_wrap_false()));
    assert(janet_equals(janet_wrap_true(), janet_wrap_true()));
    assert(janet_equals(janet_wrap_integer(1), janet_wrap_integer(1)));
    assert(janet_equals(janet_wrap_integer(INT32_MAX), janet_wrap_integer(INT32_MAX)));
    assert(janet_equals(janet_wrap_integer(-2), janet_wrap_integer(-2)));
    assert(janet_equals(janet_wrap_integer(INT32_MIN), janet_wrap_integer(INT32_MIN)));
    assert(janet_equals(janet_wrap_number(1.4), janet_wrap_number(1.4)));
    assert(janet_equals(janet_wrap_number(3.14159265), janet_wrap_number(3.14159265)));
#ifdef NAN
    assert(janet_checktype(janet_wrap_number(NAN), JANET_NUMBER));
#else
    assert(janet_checktype(janet_wrap_number(0.0 / 0.0), JANET_NUMBER));
#endif

    assert(NULL != &janet_wrap_nil);

    assert(janet_equals(janet_cstringv("a string."), janet_cstringv("a string.")));
    assert(janet_equals(janet_csymbolv("sym"), janet_csymbolv("sym")));

    Janet *t1 = janet_tuple_begin(3);
    t1[0] = janet_wrap_nil();
    t1[1] = janet_wrap_integer(4);
    t1[2] = janet_cstringv("hi");
    Janet tuple1 = janet_wrap_tuple(janet_tuple_end(t1));

    Janet *t2 = janet_tuple_begin(3);
    t2[0] = janet_wrap_nil();
    t2[1] = janet_wrap_integer(4);
    t2[2] = janet_cstringv("hi");
    Janet tuple2 = janet_wrap_tuple(janet_tuple_end(t2));

    assert(janet_equals(tuple1, tuple2));

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
leaq -0x100(%rbp), %rdi
leaq 0x1d077(%rip), %rsi     # 0x99670
movl $0x1, %edx
movl $0x26, %ecx
xorl %r8d, %r8d
leaq 0x1ce78(%rip), %r9      # 0x99485
movb $0x0, %al
callq 0x12a60
leaq -0x100(%rbp), %rsi
leaq 0x6bc1(%rip), %rdi      # 0x831e3
callq 0x125c0
cmpl $0x0, %eax
jne 0x7c62e
jmp 0x7c64d
leaq 0x1d046(%rip), %rdi     # 0x9967b
leaq 0x1d068(%rip), %rsi     # 0x996a4
movl $0x29, %edx
leaq 0x1d073(%rip), %rcx     # 0x996bb
callq 0x123f0
movabsq $-0x77fffffffffff, %rdi # imm = 0xFFF8800000000001
callq 0x7b460
movq %rax, -0x108(%rbp)
movabsq $-0x77fffffffffff, %rdi # imm = 0xFFF8800000000001
callq 0x7b460
movq %rax, -0x110(%rbp)
movq -0x108(%rbp), %rdi
movq -0x110(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c693
jmp 0x7c6b2
leaq 0x1d033(%rip), %rdi     # 0x996cd
leaq 0x1d003(%rip), %rsi     # 0x996a4
movl $0x2c, %edx
leaq 0x1d00e(%rip), %rcx     # 0x996bb
callq 0x123f0
movabsq $-0x7000000000000, %rdi # imm = 0xFFF9000000000000
callq 0x7b460
movq %rax, -0x118(%rbp)
movabsq $-0x7000000000000, %rdi # imm = 0xFFF9000000000000
callq 0x7b460
movq %rax, -0x120(%rbp)
movq -0x118(%rbp), %rdi
movq -0x120(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c6f8
jmp 0x7c717
leaq 0x1cfff(%rip), %rdi     # 0x996fe
leaq 0x1cf9e(%rip), %rsi     # 0x996a4
movl $0x2d, %edx
leaq 0x1cfa9(%rip), %rcx     # 0x996bb
callq 0x123f0
movabsq $-0x6ffffffffffff, %rdi # imm = 0xFFF9000000000001
callq 0x7b460
movq %rax, -0x128(%rbp)
movabsq $-0x6ffffffffffff, %rdi # imm = 0xFFF9000000000001
callq 0x7b460
movq %rax, -0x130(%rbp)
movq -0x128(%rbp), %rdi
movq -0x130(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c75d
jmp 0x7c77c
leaq 0x1cfcf(%rip), %rdi     # 0x99733
leaq 0x1cf39(%rip), %rsi     # 0x996a4
movl $0x2e, %edx
leaq 0x1cf44(%rip), %rcx     # 0x996bb
callq 0x123f0
movsd 0x4b9c(%rip), %xmm0     # 0x81320
callq 0x7b820
movq %rax, -0x138(%rbp)
movsd 0x4b88(%rip), %xmm0     # 0x81320
callq 0x7b820
movq %rax, -0x140(%rbp)
movq -0x138(%rbp), %rdi
movq -0x140(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c7be
jmp 0x7c7dd
leaq 0x1cfa1(%rip), %rdi     # 0x99766
leaq 0x1ced8(%rip), %rsi     # 0x996a4
movl $0x2f, %edx
leaq 0x1cee3(%rip), %rcx     # 0x996bb
callq 0x123f0
movsd 0x2c9b(%rip), %xmm0     # 0x7f480
callq 0x7b820
movq %rax, -0x148(%rbp)
movsd 0x2c87(%rip), %xmm0     # 0x7f480
callq 0x7b820
movq %rax, -0x150(%rbp)
movq -0x148(%rbp), %rdi
movq -0x150(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c81f
jmp 0x7c83e
leaq 0x1cf7b(%rip), %rdi     # 0x997a1
leaq 0x1ce77(%rip), %rsi     # 0x996a4
movl $0x30, %edx
leaq 0x1ce82(%rip), %rcx     # 0x996bb
callq 0x123f0
movsd 0x1ce0a(%rip), %xmm0    # 0x99650
callq 0x7b820
movq %rax, -0x158(%rbp)
movsd 0x1cdf6(%rip), %xmm0    # 0x99650
callq 0x7b820
movq %rax, -0x160(%rbp)
movq -0x158(%rbp), %rdi
movq -0x160(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c880
jmp 0x7c89f
leaq 0x1cf65(%rip), %rdi     # 0x997ec
leaq 0x1ce16(%rip), %rsi     # 0x996a4
movl $0x31, %edx
leaq 0x1ce21(%rip), %rcx     # 0x996bb
callq 0x123f0
movsd 0x2bd1(%rip), %xmm0     # 0x7f478
callq 0x7b820
movq %rax, -0x168(%rbp)
movsd 0x2bbd(%rip), %xmm0     # 0x7f478
callq 0x7b820
movq %rax, -0x170(%rbp)
movq -0x168(%rbp), %rdi
movq -0x170(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c8e1
jmp 0x7c900
leaq 0x1cf41(%rip), %rdi     # 0x99829
leaq 0x1cdb5(%rip), %rsi     # 0x996a4
movl $0x32, %edx
leaq 0x1cdc0(%rip), %rcx     # 0x996bb
callq 0x123f0
movsd 0x1cd50(%rip), %xmm0    # 0x99658
callq 0x7b820
movq %rax, -0x178(%rbp)
movsd 0x1cd3c(%rip), %xmm0    # 0x99658
callq 0x7b820
movq %rax, -0x180(%rbp)
movq -0x178(%rbp), %rdi
movq -0x180(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c942
jmp 0x7c961
leaq 0x1cf2b(%rip), %rdi     # 0x99874
leaq 0x1cd54(%rip), %rsi     # 0x996a4
movl $0x33, %edx
leaq 0x1cd5f(%rip), %rcx     # 0x996bb
callq 0x123f0
movsd 0x1ccf7(%rip), %xmm0    # 0x99660
callq 0x7b820
movq %rax, -0x188(%rbp)
movsd 0x1cce3(%rip), %xmm0    # 0x99660
callq 0x7b820
movq %rax, -0x190(%rbp)
movq -0x188(%rbp), %rdi
movq -0x190(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7c9a3
jmp 0x7c9c2
leaq 0x1cf07(%rip), %rdi     # 0x998b1
leaq 0x1ccf3(%rip), %rsi     # 0x996a4
movl $0x34, %edx
leaq 0x1ccfe(%rip), %rcx     # 0x996bb
callq 0x123f0
movb $0x1, %al
testb $0x1, %al
jne 0x7c9ca
jmp 0x7ca1e
movsd 0x106ee(%rip), %xmm0    # 0x8d0c0
callq 0x7b820
movq %rax, -0x198(%rbp)
movsd -0x198(%rbp), %xmm0
ucomisd %xmm0, %xmm0
setp %al
testb $0x1, %al
jne 0x7c9f3
jmp 0x7ca52
movsd 0x106c5(%rip), %xmm0    # 0x8d0c0
callq 0x7b820
movq %rax, -0x1a0(%rbp)
movq -0x1a0(%rbp), %rax
shrq $0x2f, %rax
andq $0xf, %rax
cmpq $0x0, %rax
je 0x7ca52
jmp 0x7ca54
movsd 0x1069a(%rip), %xmm0    # 0x8d0c0
callq 0x7b820
movq %rax, -0x1a8(%rbp)
movabsq $-0x800000000000, %rax  # imm = 0xFFFF800000000000
andq -0x1a8(%rbp), %rax
movabsq $-0x8000000000000, %rcx # imm = 0xFFF8000000000000
cmpq %rcx, %rax
jne 0x7ca54
jmp 0x7ca73
leaq 0x1cea1(%rip), %rdi     # 0x998fc
leaq 0x1cc42(%rip), %rsi     # 0x996a4
movl $0x36, %edx
leaq 0x1cc4d(%rip), %rcx     # 0x996bb
callq 0x123f0
leaq 0x1ceb8(%rip), %rdi     # 0x99932
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, -0x1b0(%rbp)
leaq 0x1ce93(%rip), %rdi     # 0x99932
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, -0x1b8(%rbp)
movq -0x1b0(%rbp), %rdi
movq -0x1b8(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7cad7
jmp 0x7caf6
leaq 0x1ce5e(%rip), %rdi     # 0x9993c
leaq 0x1cbbf(%rip), %rsi     # 0x996a4
movl $0x3d, %edx
leaq 0x1cbca(%rip), %rcx     # 0x996bb
callq 0x123f0
leaq 0x6a27(%rip), %rdi      # 0x83524
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq %rax, -0x1c0(%rbp)
leaq 0x6a02(%rip), %rdi      # 0x83524
callq 0x68d90
movq %rax, %rdi
movabsq $-0x5800000000000, %rsi # imm = 0xFFFA800000000000
callq 0x7b550
movq %rax, -0x1c8(%rbp)
movq -0x1c0(%rbp), %rdi
movq -0x1c8(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7cb5a
jmp 0x7cb79
leaq 0x1ce22(%rip), %rdi     # 0x99983
leaq 0x1cb3c(%rip), %rsi     # 0x996a4
movl $0x3e, %edx
leaq 0x1cb47(%rip), %rcx     # 0x996bb
callq 0x123f0
movl $0x3, %edi
callq 0x6a740
movq %rax, -0x1d0(%rbp)
movq -0x1d0(%rbp), %rax
movq %rax, -0x248(%rbp)
movabsq $-0x77fffffffffff, %rdi # imm = 0xFFF8800000000001
callq 0x7b460
movq %rax, %rcx
movq -0x248(%rbp), %rax
movq %rcx, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
movq -0x1d0(%rbp), %rax
movq %rax, -0x240(%rbp)
movsd 0x1ca90(%rip), %xmm0    # 0x99668
callq 0x7b820
movq %rax, %rcx
movq -0x240(%rbp), %rax
movq %rcx, -0x1e0(%rbp)
movq -0x1e0(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x1d0(%rbp), %rax
movq %rax, -0x238(%rbp)
leaq 0x1cdb0(%rip), %rdi     # 0x999be
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, %rcx
movq -0x238(%rbp), %rax
movq %rcx, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x1d0(%rbp), %rdi
callq 0x6a7a0
movq %rax, %rdi
movabsq $-0x4000000000000, %rsi # imm = 0xFFFC000000000000
callq 0x7b550
movq %rax, -0x1f0(%rbp)
movl $0x3, %edi
callq 0x6a740
movq %rax, -0x1f8(%rbp)
movq -0x1f8(%rbp), %rax
movq %rax, -0x230(%rbp)
movabsq $-0x77fffffffffff, %rdi # imm = 0xFFF8800000000001
callq 0x7b460
movq %rax, %rcx
movq -0x230(%rbp), %rax
movq %rcx, -0x200(%rbp)
movq -0x200(%rbp), %rcx
movq %rcx, (%rax)
movq -0x1f8(%rbp), %rax
movq %rax, -0x228(%rbp)
movsd 0x1c9a3(%rip), %xmm0    # 0x99668
callq 0x7b820
movq %rax, %rcx
movq -0x228(%rbp), %rax
movq %rcx, -0x208(%rbp)
movq -0x208(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x1f8(%rbp), %rax
movq %rax, -0x220(%rbp)
leaq 0x1ccc3(%rip), %rdi     # 0x999be
callq 0x64a70
movq %rax, %rdi
movabsq $-0x6000000000000, %rsi # imm = 0xFFFA000000000000
callq 0x7b550
movq %rax, %rcx
movq -0x220(%rbp), %rax
movq %rcx, -0x210(%rbp)
movq -0x210(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x1f8(%rbp), %rdi
callq 0x6a7a0
movq %rax, %rdi
movabsq $-0x4000000000000, %rsi # imm = 0xFFFC000000000000
callq 0x7b550
movq %rax, -0x218(%rbp)
movq -0x1f0(%rbp), %rdi
movq -0x218(%rbp), %rsi
callq 0x6e560
cmpl $0x0, %eax
je 0x7cd6d
jmp 0x7cd8c
leaq 0x1cc4d(%rip), %rdi     # 0x999c1
leaq 0x1c929(%rip), %rsi     # 0x996a4
movl $0x4c, %edx
leaq 0x1c934(%rip), %rcx     # 0x996bb
callq 0x123f0
xorl %eax, %eax
addq $0x250, %rsp            # imm = 0x250
popq %rbp
retq
nopw (%rax,%rax)