// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_frame_s_eval_reserved_const
er_t x_btcl_frame_s_eval_reserved_const( x_btcl_frame_s* o, tp_t name, x_source* source, sr_s* sr )
{
    // bcore_x_btcl_builtin.x:102:1
    
    switch( name )
    {
        case TYPEOF_true : sr_s_const_from_bl(sr,true ); break;
        case TYPEOF_false: sr_s_const_from_bl(sr,false ); break;
        case TYPEOF_TRUE : sr_s_const_from_bl(sr,true ); break;
        case TYPEOF_FALSE: sr_s_const_from_bl(sr,false ); break;
        case TYPEOF_PI:    sr_s_const_from_f3(sr,3.1415926535897932384626434 ); break;
    
        case TYPEOF_PATH:
        {
            sc_t path = x_source_get_file(source);
            if( !path )
            {
                return  x_source_parse_error_fa(source,"Cannot retrieve a file path from source.\n", x_btcl_frame_s_nameof(o,name ) );
            }
            sr_s_asc(sr,st_s_copy_sc(st_s_create(),path ) );
        }
        break;
    
        case TYPEOF_DIR:
        {BLM_INIT_LEVEL(3);
            st_s* dir = ((st_s*)BLM_LEVEL_T_PUSH(3,st_s,x_source_get_d_dir(source)));
            if( !dir )
            {
                BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Cannot retrieve a directory from source.\n", x_btcl_frame_s_nameof(o,name ) ))
            }
            if( dir->size == 0 ) st_s_push_fa(dir,"." );
            sr_s_asc(sr,((st_s*)bcore_fork(dir)) );
        BLM_DOWN();}
        break;
    
        default:
        {
            return  x_source_parse_error_fa(source,"Unknown reserved constant.\n", x_btcl_frame_s_nameof(o,name ) );
        }
        break;
    }
    
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %r15
movabsq $0x9dccb2f68f0a097, %rax # imm = 0x9DCCB2F68F0A097
cmpq %rax, %rsi
jle 0x8b959
movabsq $0x5b5c98ef514dbfa4, %rax # imm = 0x5B5C98EF514DBFA4
cmpq %rax, %r12
jg 0x8b99f
movabsq $0x9dccb2f68f0a098, %rax # imm = 0x9DCCB2F68F0A098
cmpq %rax, %r12
je 0x8b9c7
movabsq $0x17dd2e194f31d276, %rax # imm = 0x17DD2E194F31D276
cmpq %rax, %r12
jne 0x8b9d6
movq (%r14), %r12
leaq 0x11e454(%rip), %rax    # 0x1a9cc8
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x8b8ce
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x8b8ce
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x8b8ce
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x8bb65
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x8b8fe
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x11e3d5(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r14, %rsi
callq 0x10aa35
movq %rax, %r12
testq %rax, %rax
je 0x8baaa
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x114bbb
movq %rax, %rdi
movq %r12, %rsi
callq 0x11454b
movq %rax, %r15
movq %rbx, %rdi
callq 0x112baf
testq %r15, %r15
je 0x8b945
movq (%r15), %rdi
callq 0x1123e1
movq %rax, %r14
movq %r15, (%rbx)
movq %r14, 0x8(%rbx)
movq $0x3, 0x10(%rbx)
jmp 0x8bb4d
movabsq $-0x4a051d3ebdc74688, %rax # imm = 0xB5FAE2C14238B978
cmpq %rax, %r12
je 0x8b9c7
movabsq $-0x1fbb81e66e352fcc, %rax # imm = 0xE0447E1991CAD034
cmpq %rax, %r12
je 0x8ba13
movabsq $0x9421f07b5d1f0b2, %rax # imm = 0x9421F07B5D1F0B2
cmpq %rax, %r12
jne 0x8b9d6
movsd 0xb6a0e(%rip), %xmm0    # 0x1423a0
movq %rbx, %rdi
callq 0x113220
jmp 0x8bb52
movabsq $0x704e59fab561c2a5, %rax # imm = 0x704E59FAB561C2A5
cmpq %rax, %r12
je 0x8b9bd
movabsq $0x5b5c98ef514dbfa5, %rax # imm = 0x5B5C98EF514DBFA5
cmpq %rax, %r12
jne 0x8b9d6
movq %rbx, %rdi
movl $0x1, %esi
jmp 0x8b9cc
movq %rbx, %rdi
xorl %esi, %esi
callq 0x11330e
jmp 0x8bb52
addq $0x48, %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0xddb82
testq %rax, %rax
jne 0x8b9f2
movq %r12, %rdi
callq 0xe0cbc
leaq 0xb7eaf(%rip), %rsi     # 0x1438a8
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x77b7c
leaq 0x11d3b6(%rip), %rax    # 0x1a8dd0
movq (%rax), %rsi
leaq 0x10(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xe0431
movq 0x8(%rsp), %r12
movq $0x3, 0x10(%r12)
movq %r14, %rdi
callq 0x5b1f5
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movl $0x3, %esi
movq %r12, %rdi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r12
testq %rax, %rax
je 0x8bae9
cmpq $0x0, 0x10(%r12)
jne 0x8ba81
leaq 0xb011c(%rip), %rsi     # 0x13bb93
movq %r12, %rdi
xorl %eax, %eax
callq 0x1157cb
movq %r12, %rdi
callq 0xc8348
movq %rax, %r14
movq %rbx, %rdi
callq 0x112baf
testq %r14, %r14
je 0x8bb32
movq (%r14), %rdi
callq 0x1123e1
jmp 0x8bb34
movabsq $0x17dd2e194f31d276, %rbx # imm = 0x17DD2E194F31D276
addq $0x48, %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0xddb82
testq %rax, %rax
jne 0x8bad0
movq %rbx, %rdi
callq 0xe0cbc
leaq 0xb7d7d(%rip), %rsi     # 0x143854
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x77b7c
movq %rax, %rbx
jmp 0x8bb4d
movabsq $-0x1fbb81e66e352fcc, %rbx # imm = 0xE0447E1991CAD034
addq $0x48, %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0xddb82
testq %rax, %rax
jne 0x8bb0f
movq %rbx, %rdi
callq 0xe0cbc
leaq 0xb7d68(%rip), %rsi     # 0x14387e
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x77b7c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
callq 0xe0b30
jmp 0x8bb4d
xorl %eax, %eax
movq %r14, (%rbx)
movq %rax, 0x8(%rbx)
movq $0x3, 0x10(%rbx)
leaq 0x8(%rsp), %rdi
callq 0xe0b11
testq %r12, %r12
je 0x8bb54
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
xorl %r13d, %r13d
jmp 0x8b8d2