// File: /workspace/github_c_makefile_star2_O3/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 0x83b26
movabsq $0x5b5c98ef514dbfa4, %rax # imm = 0x5B5C98EF514DBFA4
cmpq %rax, %r12
jg 0x83b6c
movabsq $0x9dccb2f68f0a098, %rax # imm = 0x9DCCB2F68F0A098
cmpq %rax, %r12
je 0x83b9c
movabsq $0x17dd2e194f31d276, %rax # imm = 0x17DD2E194F31D276
cmpq %rax, %r12
jne 0x83bae
movq (%r14), %r12
leaq 0x119283(%rip), %rax    # 0x19ccc8
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 0x83a9b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x83a9b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x83a9b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x83aa4
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x83acb
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xe9bc5
movq %rax, %r13
leaq 0x119208(%rip), %rdi    # 0x19ccc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r13, %rdi
movq %r14, %rsi
callq 0xffe4a
testq %rax, %rax
je 0x83c6a
movq %rax, %r12
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x109c82
movq %rax, %rdi
movq %r12, %rsi
callq 0x109612
movq %rax, %r15
movq %rbx, %rdi
callq 0x107ca9
testq %r15, %r15
je 0x83b12
movq (%r15), %rdi
callq 0x1074f1
movq %rax, %r14
movq %r15, (%rbx)
movq %r14, 0x8(%rbx)
movq $0x3, 0x10(%rbx)
jmp 0x83d15
movabsq $-0x4a051d3ebdc74688, %rax # imm = 0xB5FAE2C14238B978
cmpq %rax, %r12
je 0x83b9c
movabsq $-0x1fbb81e66e352fcc, %rax # imm = 0xE0447E1991CAD034
cmpq %rax, %r12
je 0x83bd6
movabsq $0x9421f07b5d1f0b2, %rax # imm = 0x9421F07B5D1F0B2
cmpq %rax, %r12
jne 0x83bae
movsd 0xb3751(%rip), %xmm0    # 0x1372b0
movq %rbx, %rdi
callq 0x1082ef
jmp 0x83d15
movabsq $0x704e59fab561c2a5, %rax # imm = 0x704E59FAB561C2A5
cmpq %rax, %r12
je 0x83b8a
movabsq $0x5b5c98ef514dbfa5, %rax # imm = 0x5B5C98EF514DBFA5
cmpq %rax, %r12
jne 0x83bae
movq %rbx, %rdi
movl $0x1, %esi
callq 0x1083dd
jmp 0x83d15
xorl %r14d, %r14d
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1083dd
jmp 0x83d18
addq $0x48, %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0xd3dbe
testq %rax, %rax
jne 0x83bca
movq %r12, %rdi
callq 0xd6ec4
leaq 0xb4b4f(%rip), %rsi     # 0x138720
jmp 0x83c97
leaq 0x1181f3(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0x10(%rsp), %r12
movq %r12, 0x8(%rsp)
movq %r12, %rdi
callq 0xd6675
movq $0x3, 0x10(%r12)
movq %r14, %rdi
callq 0x559d1
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movl $0x3, %esi
movq %r12, %rdi
movq %rax, %rcx
callq 0xd68a8
testq %rax, %rax
je 0x83cb1
movq %rax, %r12
cmpq $0x0, 0x10(%rax)
jne 0x83c41
leaq 0xacf5c(%rip), %rsi     # 0x130b93
movq %r12, %rdi
xorl %eax, %eax
callq 0x10a8a5
movq %r12, %rdi
callq 0xbe7e4
movq %rax, %r14
movq %rbx, %rdi
callq 0x107ca9
testq %r14, %r14
je 0x83cfa
movq (%r14), %rdi
callq 0x1074f1
jmp 0x83cfc
movabsq $0x17dd2e194f31d276, %rbx # imm = 0x17DD2E194F31D276
addq $0x48, %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0xd3dbe
testq %rax, %rax
jne 0x83c90
movq %rbx, %rdi
callq 0xd6ec4
leaq 0xb4a35(%rip), %rsi     # 0x1386cc
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x71189
movabsq $-0x1fbb81e66e352fcc, %rbx # imm = 0xE0447E1991CAD034
addq $0x48, %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0xd3dbe
testq %rax, %rax
jne 0x83cd7
movq %rbx, %rdi
callq 0xd6ec4
leaq 0xb4a18(%rip), %rsi     # 0x1386f6
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x71189
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0xd6d2c
jmp 0x83d18
xorl %eax, %eax
movq %r14, (%rbx)
movq %rax, 0x8(%rbx)
movq $0x3, 0x10(%rbx)
leaq 0x8(%rsp), %rdi
callq 0xd6d0d
xorl %r14d, %r14d
movq %r14, %rax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq