// File: /workspace/github_c_makefile_star2_O2/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 %r12
pushq %rbx
subq $0x38, %rsp
movq %rcx, %rbx
movabsq $-0x4a051d3ebdc74688, %rax # imm = 0xB5FAE2C14238B978
cmpq %rax, %rsi
je 0x3c841
movq %rdx, %r14
movq %rdi, %r15
movabsq $-0x1fbb81e66e352fcc, %rax # imm = 0xE0447E1991CAD034
cmpq %rax, %rsi
je 0x3c8b2
movabsq $0x9421f07b5d1f0b2, %rax # imm = 0x9421F07B5D1F0B2
cmpq %rax, %rsi
je 0x3c8a0
movabsq $0x9dccb2f68f0a098, %rax # imm = 0x9DCCB2F68F0A098
cmpq %rax, %rsi
je 0x3c841
movabsq $0x17dd2e194f31d276, %rax # imm = 0x17DD2E194F31D276
cmpq %rax, %rsi
je 0x3c853
movabsq $0x704e59fab561c2a5, %rax # imm = 0x704E59FAB561C2A5
cmpq %rax, %rsi
je 0x3c831
movabsq $0x5b5c98ef514dbfa5, %rax # imm = 0x5B5C98EF514DBFA5
cmpq %rax, %rsi
jne 0x3c88c
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x8d5ee
jmp 0x3c931
xorl %r14d, %r14d
movq %rbx, %rdi
xorl %esi, %esi
callq 0x8d5ee
jmp 0x3c934
movq %r14, %rdi
callq 0x2e2b1
testq %rax, %rax
je 0x3c943
movq %rax, %r12
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x8eb65
movq %rax, %rdi
movq %r12, %rsi
callq 0x8e611
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3def0
jmp 0x3c934
movq %r15, %rdi
callq 0x3a55d
leaq 0x792b1(%rip), %rsi     # 0xb5b4c
jmp 0x3c95c
movsd 0x77e70(%rip), %xmm0    # 0xb4718
movq %rbx, %rdi
callq 0x8d566
jmp 0x3c931
leaq 0xdb517(%rip), %rax     # 0x117dd0
movq (%rax), %rsi
leaq 0x8(%rsp), %r12
movq %r12, (%rsp)
movq %r12, %rdi
callq 0x717f5
movq $0x3, 0x10(%r12)
movq %r14, %rdi
callq 0x2e299
pushq $0x3
popq %rsi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %r12, %rdi
movq %rax, %rcx
callq 0x71967
testq %rax, %rax
je 0x3c974
movq %rax, %r12
cmpq $0x0, 0x10(%rax)
jne 0x3c916
leaq 0x71287(%rip), %rsi     # 0xadb93
movq %r12, %rdi
xorl %eax, %eax
callq 0x8f4ef
movq %r12, %rdi
callq 0x6026d
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3def0
movq %rsp, %rdi
callq 0x71b48
xorl %r14d, %r14d
movq %r14, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movabsq $0x17dd2e194f31d276, %rsi # imm = 0x17DD2E194F31D276
movq %r15, %rdi
callq 0x3a55d
leaq 0x7919c(%rip), %rsi     # 0xb5af8
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x3667e
movabsq $-0x1fbb81e66e352fcc, %rsi # imm = 0xE0447E1991CAD034
movq %r15, %rdi
callq 0x3a55d
leaq 0x79195(%rip), %rsi     # 0xb5b22
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x3667e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x71b64
jmp 0x3c934