// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_copy_typed
er_t st_s_copy_typed( st_s* o, tp_t type, vc_t src )
{
    switch( type )
    {
        case TYPEOF_st_s: st_s_copy( o,              (const st_s*)src ); break;
        case TYPEOF_sc_t: st_s_copy_sc( o,          *(const sc_t*)src ); break;
        case TYPEOF_sd_t: st_s_copy_sc( o,          *(const sc_t*)src ); break;
        case TYPEOF_s0_t: st_s_copyf( o, "%"PRIi8 , *(const s0_t*)src ); break;
        case TYPEOF_s1_t: st_s_copyf( o, "%"PRIi16, *(const s1_t*)src ); break;
        case TYPEOF_s2_t: st_s_copyf( o, "%"PRIi32, *(const s2_t*)src ); break;
        case TYPEOF_s3_t: st_s_copyf( o, "%"PRIi64, *(const s3_t*)src ); break;
        case TYPEOF_u0_t: st_s_copyf( o, "%"PRIu8 , *(const u0_t*)src ); break;
        case TYPEOF_u1_t: st_s_copyf( o, "%"PRIu16, *(const u1_t*)src ); break;
        case TYPEOF_u2_t: st_s_copyf( o, "%"PRIu32, *(const u2_t*)src ); break;
        case TYPEOF_u3_t: st_s_copyf( o, "%"PRIu64, *(const u3_t*)src ); break;
        case TYPEOF_f2_t: st_s_copyf( o, "%g",      *(const f2_t*)src ); break;
        case TYPEOF_f3_t: st_s_copyf( o, "%.18lg",  *(const f3_t*)src ); break;
        case TYPEOF_sz_t: st_s_copyf( o, "%ti",     *(const sz_t*)src ); break;
        case TYPEOF_uz_t: st_s_copyf( o, "%zu",     *(const uz_t*)src ); break;
        case TYPEOF_vd_t: st_s_copyf( o, "%p",      *(const vd_t*)src ); break;
        case TYPEOF_vc_t: st_s_copyf( o, "%p",      *(const vc_t*)src ); break;

        case TYPEOF_smax_t:   st_s_copyf( o, "%"PRIiMAX, *(const smax_t*)src ); break;
        case TYPEOF_umax_t:   st_s_copyf( o, "%"PRIuMAX, *(const umax_t*)src ); break;
        case TYPEOF_offset_t: st_s_copyf( o, "%zu",      *(const offset_t*)src ); break;

        case TYPEOF_er_t: st_s_copyf( o, "%"PRIi32, *(const er_t*)src ); break;
        case TYPEOF_bl_t: st_s_copy_sc( o, *(const bl_t*)src ? "true" : "false" ); break;
        case TYPEOF_tp_t:
        case TYPEOF_aware_t:
        {
            uintmax_t val = *(const tp_t*)src;
            st_s_copyf( o, "%"PRIuMAX, val );
        }
        break;

        default:
        {
            return bcore_error_push_fa( TYPEOF_conversion_error, "Converting type '#<sc_t>' into 'st_s' is not supported.", ifnameof( type ) );
        }
        break;
    }
    return 0;
}

// Assembly:
pushq %rax
movabsq $-0x73f6ae1ad309fd45, %rax # imm = 0x8C0951E52CF602BB
cmpq %rax, %rsi
je 0x8ea85
movabsq $-0x6bce971ace902370, %rax # imm = 0x943168E5316FDC90
cmpq %rax, %rsi
je 0x8eac1
movabsq $-0x6119581ac7eacd63, %rax # imm = 0x9EE6A7E53815329D
cmpq %rax, %rsi
je 0x8eabd
movabsq $-0x5fc2af85f419929b, %rax # imm = 0xA03D507A0BE66D65
cmpq %rax, %rsi
je 0x8ea96
movabsq $-0x5aa4411ac4e2880e, %rax # imm = 0xA55BBEE53B1D77F2
cmpq %rax, %rsi
je 0x8ea0c
movabsq $-0x58737885f0577326, %rax # imm = 0xA78C877A0FA88CDA
cmpq %rax, %rsi
je 0x8ea47
movabsq $0x6f0b060106a30da4, %rax # imm = 0x6F0B060106A30DA4
cmpq %rax, %rsi
je 0x8ea3b
movabsq $-0x4db4989f9014f113, %rax # imm = 0xB24B67606FEB0EED
cmpq %rax, %rsi
je 0x8eaaa
movabsq $-0x4882601bdca6aefb, %rax # imm = 0xB77D9FE423595105
cmpq %rax, %rsi
je 0x8ea2a
movabsq $-0x3f1363e6d8155aed, %rax # imm = 0xC0EC9C1927EAA513
cmpq %rax, %rsi
je 0x8ea8a
movabsq $-0x3ac242643d9c35a8, %rax # imm = 0xC53DBD9BC263CA58
cmpq %rax, %rsi
je 0x8ea54
movabsq $-0x388c46b188de83fe, %rax # imm = 0xC773B94E77217C02
cmpq %rax, %rsi
je 0x8ea0c
movabsq $-0x84b14e74a9e1ff0, %rax # imm = 0xF7B4EB18B561E010
cmpq %rax, %rsi
je 0x8ea36
movabsq $0x230abe18cdeefc99, %rax # imm = 0x230ABE18CDEEFC99
cmpq %rax, %rsi
je 0x8ea36
movabsq $0x23dccbb013b0d1e5, %rax # imm = 0x23DCCBB013B0D1E5
cmpq %rax, %rsi
je 0x8ea0c
movabsq $0x47b8ff5cd069fea1, %rax # imm = 0x47B8FF5CD069FEA1
cmpq %rax, %rsi
je 0x8ea2a
movabsq $0x4fc0143367a53daf, %rax # imm = 0x4FC0143367A53DAF
cmpq %rax, %rsi
je 0x8ea1b
movabsq $0x510c2417c67dabeb, %rax # imm = 0x510C2417C67DABEB
cmpq %rax, %rsi
je 0x8ea75
movabsq $0x54de8100f7c1cbe5, %rax # imm = 0x54DE8100F7C1CBE5
cmpq %rax, %rsi
je 0x8ea3b
movabsq $0x585a3b17ca3de200, %rax # imm = 0x585A3B17CA3DE200
cmpq %rax, %rsi
je 0x8ea1b
movabsq $0x62367a17d02b474d, %rax # imm = 0x62367A17D02B474D
cmpq %rax, %rsi
je 0x8ea70
movabsq $0x69849117d3eb7d62, %rax # imm = 0x69849117D3EB7D62
cmpq %rax, %rsi
je 0x8ea79
movabsq $0x6d07f9ef5b68e8a2, %rax # imm = 0x6D07F9EF5B68E8A2
cmpq %rax, %rsi
je 0x8ea0c
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
cmpq %rax, %rsi
jne 0x8ead6
movq %rdx, %rsi
callq 0x8e4fd
jmp 0x8ead2
movq (%rdx), %rdx
leaq 0x362dc(%rip), %rsi     # 0xc4cf2
jmp 0x8eab4
movq (%rdx), %rdx
leaq 0x36919(%rip), %rsi     # 0xc533e
jmp 0x8eab4
movq (%rdx), %rdx
leaq 0x32f2d(%rip), %rsi     # 0xc1961
jmp 0x8eab4
movq (%rdx), %rsi
jmp 0x8ea69
movq (%rdx), %rdx
leaq 0x3b5a8(%rip), %rsi     # 0xc9fed
jmp 0x8eab4
cvtss2sd (%rdx), %xmm0
leaq 0x368fc(%rip), %rsi     # 0xc534e
jmp 0x8eaa1
leaq 0x3dc77(%rip), %rax     # 0xcc6d2
leaq 0x21f56(%rip), %rsi     # 0xb09b8
cmpb $0x0, (%rdx)
cmovneq %rax, %rsi
callq 0x8e611
jmp 0x8ead2
movsbl (%rdx), %edx
jmp 0x8ea7c
movl (%rdx), %edx
jmp 0x8ea7c
movswl (%rdx), %edx
leaq 0x3d06d(%rip), %rsi     # 0xcbaf0
jmp 0x8eacb
movzbl (%rdx), %edx
jmp 0x8eac4
movq (%rdx), %rdx
leaq 0x368ae(%rip), %rsi     # 0xc5342
jmp 0x8eab4
movsd (%rdx), %xmm0
leaq 0x3b545(%rip), %rsi     # 0xc9fe6
movb $0x1, %al
callq 0x8e6f6
jmp 0x8ead2
movq (%rdx), %rdx
leaq 0x3d03c(%rip), %rsi     # 0xcbaf0
xorl %eax, %eax
callq 0x8e6f6
jmp 0x8ead2
movl (%rdx), %edx
jmp 0x8eac4
movzwl (%rdx), %edx
leaq 0x3290f(%rip), %rsi     # 0xc13da
xorl %eax, %eax
callq 0x8e6f6
xorl %eax, %eax
popq %rcx
retq
movq %rsi, %rdi
callq 0x8eafa
leaq 0x3b50b(%rip), %rsi     # 0xc9ff0
movabsq $-0x4e68f1e683c13928, %rdi # imm = 0xB1970E197C3EC6D8
movq %rax, %rdx
xorl %eax, %eax
popq %rcx
jmp 0x605f4