// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_operator_uop_s_solve_exportable_a
er_t x_btcl_operator_uop_s_solve_exportable_a( const x_btcl_operator_uop_s* o, const sr_s* a, sr_s* result, bl_t* success )
{
    // bcore_x_btcl_operator.x:107:1
    
    (*(success)) = true;
    
    switch( o->type )
    {
        case ((tp_t)(TYPEOF_identity)): sr_s_tsc(result,sr_s_type(a), ((x_inst*)bcore_fork(a->o)) ); return  0;
    
        case ((tp_t)(TYPEOF_neg)):
        {
            if( sr_s_is_integer(a) ) { sr_s_const_from_s3(result,-sr_s_to_s3(a) ); return  0; }
            if( sr_s_is_float(a)   ) { sr_s_const_from_f3(result,-sr_s_to_f3(a) ); return  0; }
        }
        break;
    
        case ((tp_t)(TYPEOF_size)):
        {
            if( sr_s_type(a) == ((tp_t)(TYPEOF_x_btcl_list_s))          ) { sr_s_const_from_s3(result,((const x_btcl_list_s*)(a->o))->arr.size ); return  0; }
            if( x_array_t_is_array(sr_s_type(a) ) ) { sr_s_const_from_s3(result,x_array_t_size(((const x_array*)( a->o)),sr_s_type(a) ) ); return  0; }
        }
        break;
    
        case ((tp_t)(TYPEOF_not)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_bl(result,!sr_s_to_bl(a) ); return  0; } break;
        case ((tp_t)(TYPEOF_exp)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_exp(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_log)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_log(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_log2)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_log2(  sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_log10)): if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_log10( sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_sin)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_sin(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_cos)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_cos(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_tan)):   if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_tan(   sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_tanh)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_tanh(  sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_sqrt)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_sqrt(  sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_sign)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_s3(result,f3_sign(  sr_s_to_f3(a) ) ); return  0; } break;
    
        case ((tp_t)(TYPEOF_abs)):
        {
            if( sr_s_is_integer(a) ) { sr_s_const_from_s3(result,s3_abs( sr_s_to_s3(a) ) ); return  0; }
            if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_abs( sr_s_to_f3(a) ) ); return  0; }
        }
        break;
    
        case ((tp_t)(TYPEOF_ceil)):  if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_ceil(  sr_s_to_f3(a) ) ); return  0; } break;
        case ((tp_t)(TYPEOF_floor)): if( sr_s_is_numeric(a) ) { sr_s_const_from_f3(result,f3_floor( sr_s_to_f3(a) ) ); return  0; } break;
    
        default: break;
    }
    
    (*(success)) = false;
    return  0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rcx, %r15
movq %rdx, %rbx
movq %rsi, %r14
movb $0x1, (%rcx)
movq 0x8(%rdi), %rax
movabsq $-0x16f0e7b3955c0046, %rcx # imm = 0xE90F184C6AA3FFBA
cmpq %rcx, %rax
jle 0x979ed
movabsq $0x2138e5192571d260, %rcx # imm = 0x2138E5192571D260
cmpq %rcx, %rax
jle 0x97a68
movabsq $0x4dea9618e618ae3b, %rcx # imm = 0x4DEA9618E618AE3B
cmpq %rcx, %rax
jle 0x97c09
movabsq $0x4dea9618e618ae3c, %rcx # imm = 0x4DEA9618E618AE3C
cmpq %rcx, %rax
je 0x97d92
movabsq $0x4e0f7f18e637a364, %rcx # imm = 0x4E0F7F18E637A364
cmpq %rcx, %rax
je 0x97ca8
movabsq $0x56d7b2194448b0d8, %rcx # imm = 0x56D7B2194448B0D8
cmpq %rcx, %rax
jne 0x97ea9
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
callq 0xd0f0
jmp 0x97ec7
movabsq $-0x31f869528f143ee8, %rcx # imm = 0xCE0796AD70EBC118
cmpq %rcx, %rax
jg 0x97ac3
movabsq $-0x5fc58b56bd24bc44, %rcx # imm = 0xA03A74A942DB43BC
cmpq %rcx, %rax
jg 0x97b74
movabsq $-0x7db75ee6a3133b53, %rcx # imm = 0x8248A1195CECC4AD
cmpq %rcx, %rax
je 0x97cfc
movabsq $-0x69eb30e6f0372831, %rcx # imm = 0x9614CF190FC8D7CF
cmpq %rcx, %rax
jne 0x97ea9
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x97ec2
sqrtsd %xmm0, %xmm0
jmp 0x97ec7
movabsq $0x29c1fb6e090c58f, %rcx # imm = 0x29C1FB6E090C58F
cmpq %rcx, %rax
jg 0x97b1e
movabsq $-0x16f0e7b3955c0045, %rcx # imm = 0xE90F184C6AA3FFBB
cmpq %rcx, %rax
je 0x97c59
movabsq $-0x9fb03e6f2fe8924, %rcx # imm = 0xF604FC190D0176DC
cmpq %rcx, %rax
jne 0x97ea9
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
callq 0xd1a0
jmp 0x97ec7
movabsq $-0x266ae76f02928179, %rcx # imm = 0xD9951890FD6D7E87
cmpq %rcx, %rax
jg 0x97bbc
movabsq $-0x31f869528f143ee7, %rcx # imm = 0xCE0796AD70EBC119
cmpq %rcx, %rax
je 0x97d1e
movabsq $-0x26cbaf10f87bc4f0, %rcx # imm = 0xD93450EF07843B10
cmpq %rcx, %rax
jne 0x97ea9
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
callq 0xd080
jmp 0x97ec7
movabsq $0x29c1fb6e090c590, %rcx # imm = 0x29C1FB6E090C590
cmpq %rcx, %rax
je 0x97c78
movabsq $0x125073191daf5431, %rcx # imm = 0x125073191DAF5431
cmpq %rcx, %rax
jne 0x97ea9
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x97de7
callq 0xd210
jmp 0x97ec7
movabsq $-0x5fc58b56bd24bc43, %rcx # imm = 0xA03A74A942DB43BD
cmpq %rcx, %rax
je 0x97d4e
movabsq $-0x3cedf4e70f8fbbf8, %rcx # imm = 0xC3120B18F0704408
cmpq %rcx, %rax
jne 0x97ea9
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
callq 0xd0e0
jmp 0x97ec7
movabsq $-0x266ae76f02928178, %rcx # imm = 0xD9951890FD6D7E88
cmpq %rcx, %rax
je 0x97d70
movabsq $-0x18e04de6fabe8d85, %rcx # imm = 0xE71FB2190541727B
cmpq %rcx, %rax
jne 0x97ea9
movq %r14, %rdi
callq 0x112ffe
testb %al, %al
je 0x97e41
movq %r14, %rdi
callq 0x113836
movq %rax, %rsi
negq %rsi
cmovsq %rax, %rsi
jmp 0x97dc3
movabsq $0x2138e5192571d261, %rcx # imm = 0x2138E5192571D261
cmpq %rcx, %rax
je 0x97dcb
movabsq $0x215ad619258e9f4a, %rcx # imm = 0x215AD619258E9F4A
cmpq %rcx, %rax
jne 0x97ea9
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x113a4b
xorb $0x1, %al
movzbl %al, %esi
movq %rbx, %rdi
callq 0x11330e
jmp 0x97ee3
testq %r14, %r14
je 0x97df4
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x97df4
movq 0x8(%rax), %r15
jmp 0x97df7
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x97de7
callq 0xd030
jmp 0x97ec7
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
cmpltsd %xmm0, %xmm2
movsd 0xaa5f3(%rip), %xmm3    # 0x1422c8
andpd %xmm2, %xmm3
cmpltsd %xmm1, %xmm0
movsd 0xaa6c2(%rip), %xmm1    # 0x1423a8
andpd %xmm0, %xmm1
andnpd %xmm3, %xmm0
orpd %xmm0, %xmm1
cvttsd2si %xmm1, %rsi
jmp 0x97dc3
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
callq 0xd4a0
jmp 0x97ec7
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x97de7
callq 0xd3b0
jmp 0x97ec7
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
callq 0xd400
jmp 0x97ec7
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
callq 0xd0c0
jmp 0x97ec7
testq %r14, %r14
je 0x97e82
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x97e6e
movabsq $-0x240ec4eb25c1f3e8, %rcx # imm = 0xDBF13B14DA3E0C18
cmpq %rcx, 0x8(%rax)
jne 0x97e6e
movq (%r14), %rax
movq 0x18(%rax), %rsi
movq %rbx, %rdi
jmp 0x97ede
movq %r14, %rdi
callq 0x112ffe
testb %al, %al
je 0x97e20
movq %r14, %rdi
callq 0x113836
negq %rax
jmp 0x97ed8
movsd 0xaa5c1(%rip), %xmm0    # 0x1423b0
jmp 0x97ec7
xorl %r15d, %r15d
movq (%r14), %rdi
callq 0xc8348
movq %rax, %r14
movq %rbx, %rdi
callq 0x112baf
testq %r15, %r15
je 0x97eaf
movq %r15, %rdi
callq 0x1123e1
jmp 0x97eb1
movq %r14, %rdi
callq 0x112fda
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
xorpd 0xaa474(%rip), %xmm0    # 0x1422b0
jmp 0x97ec7
movq %r14, %rdi
callq 0x112fb6
testb %al, %al
je 0x97ea9
movq %r14, %rdi
callq 0x1133ac
movapd 0xaa453(%rip), %xmm1    # 0x1422b0
xorpd %xmm0, %xmm1
maxsd %xmm0, %xmm1
movq %rbx, %rdi
movapd %xmm1, %xmm0
jmp 0x97eca
testq %r14, %r14
je 0x97e82
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x97e82
movq 0x8(%rax), %rsi
jmp 0x97e84
xorl %esi, %esi
movabsq $-0x196aeddfdbdcdb38, %rdi # imm = 0xE6951220242324C8
callq 0xf3e2a
testb %al, %al
je 0x97ea9
movq (%r14), %rdi
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x97ed1
movq 0x8(%rax), %rsi
jmp 0x97ed3
movb $0x0, (%r15)
jmp 0x97ee3
xorl %eax, %eax
movq %r14, (%rbx)
movq %rax, 0x8(%rbx)
movq $0x3, 0x10(%rbx)
jmp 0x97ee3
callq 0xd470
movq %rbx, %rdi
callq 0x113220
jmp 0x97ee3
xorl %esi, %esi
callq 0x79f90
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1132bf
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq