// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x88(%rbp)
movabsq $-0x4a051d3ebdc74688, %rcx # imm = 0xB5FAE2C14238B978
subq %rcx, %rax
je 0x5e961
jmp 0x5e8ab
movq -0x88(%rbp), %rax
movabsq $-0x1fbb81e66e352fcc, %rcx # imm = 0xE0447E1991CAD034
subq %rcx, %rax
je 0x5ea29
jmp 0x5e8c7
movq -0x88(%rbp), %rax
movabsq $0x9421f07b5d1f0b2, %rcx # imm = 0x9421F07B5D1F0B2
subq %rcx, %rax
je 0x5e994
jmp 0x5e8e3
movq -0x88(%rbp), %rax
movabsq $0x9dccb2f68f0a098, %rcx # imm = 0x9DCCB2F68F0A098
subq %rcx, %rax
je 0x5e984
jmp 0x5e8ff
movq -0x88(%rbp), %rax
movabsq $0x17dd2e194f31d276, %rcx # imm = 0x17DD2E194F31D276
subq %rcx, %rax
je 0x5e9aa
jmp 0x5e91b
movq -0x88(%rbp), %rax
movabsq $0x5b5c98ef514dbfa5, %rcx # imm = 0x5B5C98EF514DBFA5
subq %rcx, %rax
je 0x5e94e
jmp 0x5e933
movq -0x88(%rbp), %rax
movabsq $0x704e59fab561c2a5, %rcx # imm = 0x704E59FAB561C2A5
subq %rcx, %rax
je 0x5e971
jmp 0x5eb32
movq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0xfc600
jmp 0x5eb68
movq -0x28(%rbp), %rdi
xorl %esi, %esi
callq 0xfc600
jmp 0x5eb68
movq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0xfc600
jmp 0x5eb68
movq -0x28(%rbp), %rdi
xorl %esi, %esi
callq 0xfc600
jmp 0x5eb68
movq -0x28(%rbp), %rdi
movsd 0xe0550(%rip), %xmm0    # 0x13eef0
callq 0xfc4e0
jmp 0x5eb68
movq -0x20(%rbp), %rdi
callq 0x43710
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x5e9f7
movq -0x20(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5a780
movq -0x90(%rbp), %rdi
movq %rax, %rdx
leaq 0xe19d1(%rip), %rsi     # 0x1403b8
movb $0x0, %al
callq 0x53850
movq %rax, -0x8(%rbp)
jmp 0x5eb70
movq -0x28(%rbp), %rax
movq %rax, -0x98(%rbp)
movb $0x0, %al
callq 0xff2e0
movq %rax, %rdi
movq -0x30(%rbp), %rsi
callq 0xfea50
movq -0x98(%rbp), %rdi
movq %rax, %rsi
callq 0x616b0
jmp 0x5eb68
leaq 0x153900(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x38(%rbp)
leaq -0x68(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xbfe80
movq -0x70(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x3, 0x10(%rax)
movq -0x38(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x20(%rbp), %rdi
callq 0x436c0
movq -0xa0(%rbp), %rdi
movq %rax, %rcx
movl $0x3, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
jne 0x5eae7
movq -0x20(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5a780
movq -0xa8(%rbp), %rdi
movq %rax, %rdx
leaq 0xe191c(%rip), %rsi     # 0x1403e2
movb $0x0, %al
callq 0x53850
movq %rax, -0x80(%rbp)
movq -0x70(%rbp), %rdi
callq 0xc0720
movq -0x80(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x5eb70
movq -0x78(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x5eb04
movq -0x78(%rbp), %rdi
leaq 0xd83a1(%rip), %rsi     # 0x136e9e
movb $0x0, %al
callq 0x100210
movq -0x28(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x78(%rbp), %rdi
callq 0x9d3d0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x616b0
leaq -0x70(%rbp), %rdi
callq 0xc06e0
jmp 0x5eb68
movq -0x20(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5a780
movq -0xb8(%rbp), %rdi
movq %rax, %rdx
leaq 0xe18b1(%rip), %rsi     # 0x14040c
movb $0x0, %al
callq 0x53850
movq %rax, -0x8(%rbp)
jmp 0x5eb70
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)