; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0 include listing.inc INCLUDELIB MSVCRTD INCLUDELIB OLDNAMES _DATA SEGMENT COMM infolog:BYTE:0200H _DATA ENDS msvcjmc SEGMENT __5C8CA4D3_mmintrin@h DB 01H __8C83BECC_concurrencysal@h DB 01H __608E3340_sal@h DB 01H __FB67E29A_vadefs@h DB 01H __1D1B619C_vcruntime@h DB 01H __735960E1_corecrt@h DB 01H __211DB995_corecrt_malloc@h DB 01H __7CD62D9E_malloc@h DB 01H __9DCE0DC8_xmmintrin@h DB 01H __4C2AD0C7_winpackagefamily@h DB 01H __9DED9ED1_winapifamily@h DB 01H __12FEDF4E_sdkddkver@h DB 01H __9BAEE128_excpt@h DB 01H __B7B53233_stdarg@h DB 01H __6B04FCB3_specstrings_undef@h DB 01H __F4027AF7_specstrings_strict@h DB 01H __B90340D4_sdv_driverspecs@h DB 01H __BFFF5AD3_driverspecs@h DB 01H __32847078_specstrings@h DB 01H __108B2620_corecrt_wctype@h DB 01H __6CD6613D_ctype@h DB 01H __30902A1F_kernelspecs@h DB 01H __376FD5CA_basetsd@h DB 01H __13DE2371_errno@h DB 01H __8C6AE390_vcruntime_string@h DB 01H __8ACB2152_corecrt_memcpy_s@h DB 01H __EA6C9D17_corecrt_memory@h DB 01H __0DF2AF52_corecrt_wstring@h DB 01H __6E889ECC_string@h DB 01H __9BEDF4DE_guiddef@h DB 01H __51BFD2FE_pshpack4@h DB 01H __31652CEA_poppack@h DB 01H __5532AE4C_pshpack2@h DB 01H __58A52B9A_pshpack8@h DB 01H __57741015_pshpack1@h DB 01H __CDE68C90_apiset@h DB 01H __0BF06E8D_ktmtypes@h DB 01H __40C200C0_winnt@h DB 01H __9336F789_minwindef@h DB 01H __55136115_windef@h DB 01H __32205BF0_apisetcconv@h DB 01H __B48FDEA0_minwinbase@h DB 01H __3551B028_apiquery2@h DB 01H __65BE04AA_processenv@h DB 01H __4767CA46_fileapi@h DB 01H __282E6C4B_fileapifromapp@h DB 01H __393AF12C_debugapi@h DB 01H __EBC502B8_utilapiset@h DB 01H __1EAD8C69_handleapi@h DB 01H __D8EF9B29_errhandlingapi@h DB 01H __97FC1204_fibersapi@h DB 01H __27448220_namedpipeapi@h DB 01H __6EA33B2A_profileapi@h DB 01H __EAC6F673_heapapi@h DB 01H __D64EEA5A_ioapiset@h DB 01H __144BD4B6_synchapi@h DB 01H __03B1C640_interlockedapi@h DB 01H __DC64CB38_processthreadsapi@h DB 01H __D719B518_sysinfoapi@h DB 01H __410385B1_memoryapi@h DB 01H __C1AD45EF_enclaveapi@h DB 01H __F4C3AA32_threadpoollegacyapiset@h DB 01H __AC5A7A9F_threadpoolapiset@h DB 01H __F5254B21_jobapi@h DB 01H __BCEA6EE8_jobapi2@h DB 01H __D18ACE72_wow64apiset@h DB 01H __669B0D4A_libloaderapi@h DB 01H __645F7034_securitybaseapi@h DB 01H __67E58557_namespaceapi@h DB 01H __599D9D3A_systemtopologyapi@h DB 01H __2337E373_processtopologyapi@h DB 01H __02BFF239_securityappcontainer@h DB 01H __9C196272_realtimeapiset@h DB 01H __5AB313A4_winerror@h DB 01H __B7E7187B_timezoneapi@h DB 01H __6DE9EB6F_winbase@h DB 01H __56B2AFF2_wingdi@h DB 01H __BA1161A9_tvout@h DB 01H __0501A018_winuser@h DB 01H __EF12FA99_datetimeapi@h DB 01H __8FA7C3CA_winnls@h DB 01H __390F0C47_stringapiset@h DB 01H __28605B0A_wincontypes@h DB 01H __BFBDE86D_consoleapi@h DB 01H __C3CAFBF0_consoleapi2@h DB 01H __C20891C7_consoleapi3@h DB 01H __717C98B6_wincon@h DB 01H __2884C177_verrsrc@h DB 01H __A3FD3A34_winver@h DB 01H __6F8AD9F1_reason@h DB 01H __4C90FD6F_winreg@h DB 01H __68AFEBAD_wnnc@h DB 01H __5A7AB086_winnetwk@h DB 01H __2FE8A10C_stralign@h DB 01H __34558472_winsvc@h DB 01H __058845F1_mcx@h DB 01H __7F16006B_ime_cmodes@h DB 01H __0A3AF599_imm@h DB 01H __9349FE86_windows@h DB 01H __639A050C_sn_internal@h DB 01H __836A8CFC_stdint@h DB 01H __714FE6D7_sn_target@h DB 01H __60B45B40_corecrt_stdio_config@h DB 01H __CFA3741E_corecrt_wstdio@h DB 01H __B3FE3303_stdio@h DB 01H __955456CD_stddef@h DB 01H __99AED4FB_corecrt_search@h DB 01H __8B813BF6_corecrt_wstdlib@h DB 01H __3D1CA2C3_limits@h DB 01H __E8FB0A68_stdlib@h DB 01H __F562FA57_stb_image@h DB 01H __C95DC661_khrplatform@h DB 01H __6C577136_gl@h DB 01H __EE638A2C_wgl@h DB 01H __8EF9E35C_glfw3@h DB 01H __F8AC8404_emmintrin@h DB 01H __270DEC8D_pmmintrin@h DB 01H __97D49F0F_tmmintrin@h DB 01H __BEEF8A8C_smmintrin@h DB 01H __DB8D0340_nmmintrin@h DB 01H __0E36F90E_wmmintrin@h DB 01H __C5A2B409_zmmintrin@h DB 01H __F2B616C3_immintrin@h DB 01H __9FB25DBE_assert@h DB 01H __4E664295_glfw_function@h DB 01H __64C0EF11_StgSharpNative@h DB 01H __E2EC0CAF_sn_matkernel@h DB 01H __47E843D2_intrin0@inl@h DB 01H __130964FF_setjmp@h DB 01H __4875F786_ammintrin@h DB 01H __353FD888_intrin@h DB 01H __5FE1E9E3_isa_availability@h DB 01H __AA840D82_sn_intrinsic@h DB 01H __CE29950A_sn_intrincontext@x86@h DB 01H __518EAA70_load_intrinsic@x86@c DB 01H msvcjmc ENDS PUBLIC load_intrinsic_function PUBLIC __JustMyCode_Default PUBLIC ??_C@_1HI@EDBAMNGI@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ ; `string' PUBLIC ??_C@_1DE@BIMGEDNO@?$AAi?$AAn?$AAt?$AAr?$AAi?$AAn?$AAs?$AAi?$AAc?$AA_?$AAc?$AAo?$AAn?$AAt?$AAe@ ; `string' EXTRN __imp__wassert:PROC EXTRN sn_get_simd_level_global:PROC EXTRN f32_normalize:PROC EXTRN float_buf_add_sse:PROC EXTRN float_buf_add_avx:PROC EXTRN float_buf_add_512:PROC EXTRN double_buf_add_sse:PROC EXTRN double_buf_add_avx:PROC EXTRN double_buf_add_512:PROC EXTRN float_buf_sub_sse:PROC EXTRN float_buf_sub_avx:PROC EXTRN float_buf_sub_512:PROC EXTRN double_buf_sub_sse:PROC EXTRN double_buf_sub_avx:PROC EXTRN double_buf_sub_512:PROC EXTRN float_kernel_transpose_sse:PROC EXTRN float_kernel_transpose_avx:PROC EXTRN float_kernel_transpose_512:PROC EXTRN float_buf_scalar_mul_sse:PROC EXTRN float_buf_scalar_mul_avx:PROC EXTRN float_buf_scalar_mul_512:PROC EXTRN double_buf_scalar_mul_sse:PROC EXTRN double_buf_scalar_mul_avx:PROC EXTRN double_buf_scalar_mul_512:PROC EXTRN float_buf_fill_sse:PROC EXTRN float_buf_fill_avx:PROC EXTRN float_buf_fill_512:PROC EXTRN double_buf_fill_sse:PROC EXTRN double_buf_fill_avx:PROC EXTRN double_buf_fill_512:PROC EXTRN float_pnl_clear_sse:PROC EXTRN float_pnl_clear_avx:PROC EXTRN float_pnl_clear_512:PROC EXTRN double_pnl_clear_sse:PROC EXTRN double_pnl_clear_avx:PROC EXTRN double_pnl_clear_512:PROC EXTRN float_kernel_fma_sse:PROC EXTRN float_kernel_fma_avx:PROC EXTRN float_kernel_fma_avx_fma:PROC EXTRN float_kernel_fma_512:PROC EXTRN double_kernel_fma_sse:PROC EXTRN double_kernel_fma_avx:PROC EXTRN double_kernel_fma_avx_fma:PROC EXTRN double_kernel_fma_512:PROC EXTRN float_kernel_tile_fma_sse:PROC EXTRN float_kernel_tile_fma_avx:PROC EXTRN float_kernel_tile_fma_avx_fma:PROC EXTRN float_kernel_tile_fma_512:PROC EXTRN double_kernel_tile_fma_sse:PROC EXTRN double_kernel_tile_fma_avx:PROC EXTRN double_kernel_tile_fma_avx_fma:PROC EXTRN double_kernel_tile_fma_512:PROC EXTRN factorial_simd_sse:PROC EXTRN city_hash_simplify_sse:PROC EXTRN index_pair_sse:PROC EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC ; COMDAT pdata pdata SEGMENT $pdata$load_intrinsic_function DD imagerel $LN13 DD imagerel $LN13+282 DD imagerel $unwind$load_intrinsic_function pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$load_intrinsic_sse DD imagerel load_intrinsic_sse DD imagerel load_intrinsic_sse+613 DD imagerel $unwind$load_intrinsic_sse pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$load_intrinsic_avx DD imagerel load_intrinsic_avx DD imagerel load_intrinsic_avx+871 DD imagerel $unwind$load_intrinsic_avx pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$load_intrinsic_512 DD imagerel load_intrinsic_512 DD imagerel load_intrinsic_512+613 DD imagerel $unwind$load_intrinsic_512 pdata ENDS ; COMDAT rtc$TMZ rtc$TMZ SEGMENT _RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown rtc$TMZ ENDS ; COMDAT rtc$IMZ rtc$IMZ SEGMENT _RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase rtc$IMZ ENDS ; COMDAT ??_C@_1DE@BIMGEDNO@?$AAi?$AAn?$AAt?$AAr?$AAi?$AAn?$AAs?$AAi?$AAc?$AA_?$AAc?$AAo?$AAn?$AAt?$AAe@ CONST SEGMENT ??_C@_1DE@BIMGEDNO@?$AAi?$AAn?$AAt?$AAr?$AAi?$AAn?$AAs?$AAi?$AAc?$AA_?$AAc?$AAo?$AAn?$AAt?$AAe@ DB 'i' DB 00H, 'n', 00H, 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 's', 00H DB 'i', 00H, 'c', 00H, '_', 00H, 'c', 00H, 'o', 00H, 'n', 00H, 't' DB 00H, 'e', 00H, 'x', 00H, 't', 00H, ' ', 00H, '!', 00H, '=', 00H DB ' ', 00H, 'N', 00H, 'U', 00H, 'L', 00H, 'L', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1HI@EDBAMNGI@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ CONST SEGMENT ??_C@_1HI@EDBAMNGI@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ DB 'D' DB 00H, ':', 00H, '\', 00H, 'p', 00H, 'l', 00H, 'a', 00H, 't', 00H DB 'f', 00H, 'o', 00H, 'r', 00H, 'm', 00H, '-', 00H, 'd', 00H, 'e' DB 00H, 'v', 00H, '\', 00H, 'S', 00H, 't', 00H, 'g', 00H, 'S', 00H DB 'h', 00H, 'a', 00H, 'r', 00H, 'p', 00H, '.', 00H, 'N', 00H, 'a' DB 00H, 't', 00H, 'i', 00H, 'v', 00H, 'e', 00H, '\', 00H, 's', 00H DB 'n', 00H, '-', 00H, 's', 00H, 'r', 00H, 'c', 00H, '\', 00H, 'l' DB 00H, 'o', 00H, 'a', 00H, 'd', 00H, '_', 00H, 'i', 00H, 'n', 00H DB 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 's', 00H, 'i', 00H, 'c' DB 00H, '.', 00H, 'x', 00H, '8', 00H, '6', 00H, '.', 00H, 'c', 00H DB 00H, 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$load_intrinsic_512 DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$load_intrinsic_avx DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$load_intrinsic_sse DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$load_intrinsic_function DD 025053101H DD 01132318H DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT CONST CONST SEGMENT load_intrinsic_function$rtcName$0 DB 073H DB 069H DB 06dH DB 064H DB 069H DB 064H DB 00H ORG $+9 load_intrinsic_function$rtcVarDesc DD 028H DD 08H DQ FLAT:load_intrinsic_function$rtcName$0 ORG $+48 load_intrinsic_function$rtcFrameData DD 01H DD 00H DQ FLAT:load_intrinsic_function$rtcVarDesc CONST ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default _TEXT SEGMENT __JustMyCode_Default PROC ; COMDAT 00000 c2 00 00 ret 0 __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c ; COMDAT load_intrinsic_512 _TEXT SEGMENT context$ = 224 id$ = 232 load_intrinsic_512 PROC ; COMDAT ; 115 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__518EAA70_load_intrinsic@x86@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 116 : context->city_hash_simplify = city_hash_simplify_sse; 00025 48 8b 85 e0 00 00 00 mov rax, QWORD PTR context$[rbp] 0002c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse 00033 48 89 08 mov QWORD PTR [rax], rcx ; 117 : context->factorial_simd = factorial_simd_sse; 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR context$[rbp] 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:factorial_simd_sse 00044 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 118 : context->index_pair = index_pair_sse; 00048 48 8b 85 e0 00 00 00 mov rax, QWORD PTR context$[rbp] 0004f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:index_pair_sse 00056 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 119 : ; 120 : context->mat[F32].buffer_add = BUF_PROC(float, 512, , add); 0005a b8 48 00 00 00 mov eax, 72 ; 00000048H 0005f 48 6b c0 00 imul rax, rax, 0 00063 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0006a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_add_512 00071 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx ; 121 : context->mat[F32].buffer_fill = BUF_PROC(float, 512, , fill); 00076 b8 48 00 00 00 mov eax, 72 ; 00000048H 0007b 48 6b c0 00 imul rax, rax, 0 0007f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00086 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_fill_512 0008d 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx ; 122 : context->mat[F32].buffer_scalar_mul = BUF_PROC(float, 512, , scalar_mul); 00092 b8 48 00 00 00 mov eax, 72 ; 00000048H 00097 48 6b c0 00 imul rax, rax, 0 0009b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 000a2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_scalar_mul_512 000a9 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx ; 123 : context->mat[F32].buffer_sub = BUF_PROC(float, 512, , sub); 000ae b8 48 00 00 00 mov eax, 72 ; 00000048H 000b3 48 6b c0 00 imul rax, rax, 0 000b7 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 000be 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_sub_512 000c5 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx ; 124 : context->mat[F32].buffer_transpose = KER_PROC(float, 512, , transpose); 000ca b8 48 00 00 00 mov eax, 72 ; 00000048H 000cf 48 6b c0 00 imul rax, rax, 0 000d3 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 000da 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_kernel_transpose_512 000e1 48 89 54 01 40 mov QWORD PTR [rcx+rax+64], rdx ; 125 : context->mat[F32].clear_panel = PNL_PROC(float, 512, , clear); 000e6 b8 48 00 00 00 mov eax, 72 ; 00000048H 000eb 48 6b c0 00 imul rax, rax, 0 000ef 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 000f6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_pnl_clear_512 000fd 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx ; 126 : context->mat[F32].ker_fma = KER_PROC(float, 512, , fma); 00102 b8 48 00 00 00 mov eax, 72 ; 00000048H 00107 48 6b c0 00 imul rax, rax, 0 0010b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00112 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_kernel_fma_512 00119 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx ; 127 : context->mat[F32].ker_tile_fma = KERTILE_PROC(float, 512, , fma); 0011e b8 48 00 00 00 mov eax, 72 ; 00000048H 00123 48 6b c0 00 imul rax, rax, 0 00127 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0012e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_kernel_tile_fma_512 00135 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx ; 128 : context->mat[F32].pivot = NULL; 0013a b8 48 00 00 00 mov eax, 72 ; 00000048H 0013f 48 6b c0 00 imul rax, rax, 0 00143 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0014a 48 c7 44 01 60 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 ; 129 : ; 130 : context->mat[F64].buffer_add = BUF_PROC(double, 512, , add); 00153 b8 48 00 00 00 mov eax, 72 ; 00000048H 00158 48 6b c0 01 imul rax, rax, 1 0015c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00163 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_add_512 0016a 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx ; 131 : context->mat[F64].buffer_fill = BUF_PROC(double, 512, , fill); 0016f b8 48 00 00 00 mov eax, 72 ; 00000048H 00174 48 6b c0 01 imul rax, rax, 1 00178 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0017f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_fill_512 00186 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx ; 132 : context->mat[F64].buffer_scalar_mul = BUF_PROC(double, 512, , scalar_mul); 0018b b8 48 00 00 00 mov eax, 72 ; 00000048H 00190 48 6b c0 01 imul rax, rax, 1 00194 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0019b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_scalar_mul_512 001a2 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx ; 133 : context->mat[F64].buffer_sub = BUF_PROC(double, 512, , sub); 001a7 b8 48 00 00 00 mov eax, 72 ; 00000048H 001ac 48 6b c0 01 imul rax, rax, 1 001b0 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 001b7 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_sub_512 001be 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx ; 134 : context->mat[F64].buffer_transpose = NULL; 001c3 b8 48 00 00 00 mov eax, 72 ; 00000048H 001c8 48 6b c0 01 imul rax, rax, 1 001cc 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 001d3 48 c7 44 01 40 00 00 00 00 mov QWORD PTR [rcx+rax+64], 0 ; 135 : context->mat[F64].clear_panel = PNL_PROC(double, 512, , clear); 001dc b8 48 00 00 00 mov eax, 72 ; 00000048H 001e1 48 6b c0 01 imul rax, rax, 1 001e5 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 001ec 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_pnl_clear_512 001f3 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx ; 136 : context->mat[F64].ker_fma = KER_PROC(double, 512, , fma); 001f8 b8 48 00 00 00 mov eax, 72 ; 00000048H 001fd 48 6b c0 01 imul rax, rax, 1 00201 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00208 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_kernel_fma_512 0020f 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx ; 137 : context->mat[F64].ker_tile_fma = KERTILE_PROC(double, 512, , fma); 00214 b8 48 00 00 00 mov eax, 72 ; 00000048H 00219 48 6b c0 01 imul rax, rax, 1 0021d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00224 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_kernel_tile_fma_512 0022b 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx ; 138 : context->mat[F64].pivot = NULL; 00230 b8 48 00 00 00 mov eax, 72 ; 00000048H 00235 48 6b c0 01 imul rax, rax, 1 00239 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00240 48 c7 44 01 60 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 ; 139 : ; 140 : context->vec_f32_normalize_3 = f32_normalize; 00249 48 8b 85 e0 00 00 00 mov rax, QWORD PTR context$[rbp] 00250 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:f32_normalize 00257 48 89 48 18 mov QWORD PTR [rax+24], rcx ; 141 : } 0025b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00262 5f pop rdi 00263 5d pop rbp 00264 c3 ret 0 load_intrinsic_512 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c ; COMDAT load_intrinsic_avx _TEXT SEGMENT avx_seg$ = 4 is_fma$ = 36 is_f16c$ = 68 tv69 = 276 tv74 = 276 tv141 = 280 tv148 = 280 tv183 = 280 tv190 = 280 context$ = 320 id$ = 328 load_intrinsic_avx PROC ; COMDAT ; 78 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__518EAA70_load_intrinsic@x86@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 79 : char avx_seg = id.make_byte[5]; 00025 b8 01 00 00 00 mov eax, 1 0002a 48 6b c0 05 imul rax, rax, 5 0002e 0f b6 84 05 48 01 00 00 movzx eax, BYTE PTR id$[rbp+rax] 00036 88 45 04 mov BYTE PTR avx_seg$[rbp], al ; 80 : char is_fma = (avx_seg & SIMDID_AVX_FMA) != 0; 00039 0f be 45 04 movsx eax, BYTE PTR avx_seg$[rbp] 0003d 83 e0 04 and eax, 4 00040 85 c0 test eax, eax 00042 74 0c je SHORT $LN3@load_intri 00044 c7 85 14 01 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 0004e eb 0a jmp SHORT $LN4@load_intri $LN3@load_intri: 00050 c7 85 14 01 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@load_intri: 0005a 0f b6 85 14 01 00 00 movzx eax, BYTE PTR tv69[rbp] 00061 88 45 24 mov BYTE PTR is_fma$[rbp], al ; 81 : char is_f16c = (avx_seg & SIMDID_AVX_F16C) != 0; 00064 0f be 45 04 movsx eax, BYTE PTR avx_seg$[rbp] 00068 83 e0 08 and eax, 8 0006b 85 c0 test eax, eax 0006d 74 0c je SHORT $LN5@load_intri 0006f c7 85 14 01 00 00 01 00 00 00 mov DWORD PTR tv74[rbp], 1 00079 eb 0a jmp SHORT $LN6@load_intri $LN5@load_intri: 0007b c7 85 14 01 00 00 00 00 00 00 mov DWORD PTR tv74[rbp], 0 $LN6@load_intri: 00085 0f b6 85 14 01 00 00 movzx eax, BYTE PTR tv74[rbp] 0008c 88 45 44 mov BYTE PTR is_f16c$[rbp], al ; 82 : ; 83 : context->city_hash_simplify = city_hash_simplify_sse; 0008f 48 8b 85 40 01 00 00 mov rax, QWORD PTR context$[rbp] 00096 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse 0009d 48 89 08 mov QWORD PTR [rax], rcx ; 84 : context->factorial_simd = factorial_simd_sse; 000a0 48 8b 85 40 01 00 00 mov rax, QWORD PTR context$[rbp] 000a7 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:factorial_simd_sse 000ae 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 85 : context->index_pair = index_pair_sse; 000b2 48 8b 85 40 01 00 00 mov rax, QWORD PTR context$[rbp] 000b9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:index_pair_sse 000c0 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 86 : ; 87 : context->mat[F32].buffer_add = BUF_PROC(float, avx, , add); 000c4 b8 48 00 00 00 mov eax, 72 ; 00000048H 000c9 48 6b c0 00 imul rax, rax, 0 000cd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 000d4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_add_avx 000db 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx ; 88 : context->mat[F32].buffer_fill = BUF_PROC(float, avx, , fill); 000e0 b8 48 00 00 00 mov eax, 72 ; 00000048H 000e5 48 6b c0 00 imul rax, rax, 0 000e9 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 000f0 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_fill_avx 000f7 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx ; 89 : context->mat[F32].buffer_scalar_mul = BUF_PROC(float, avx, , scalar_mul); 000fc b8 48 00 00 00 mov eax, 72 ; 00000048H 00101 48 6b c0 00 imul rax, rax, 0 00105 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 0010c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_scalar_mul_avx 00113 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx ; 90 : context->mat[F32].buffer_sub = BUF_PROC(float, avx, , sub); 00118 b8 48 00 00 00 mov eax, 72 ; 00000048H 0011d 48 6b c0 00 imul rax, rax, 0 00121 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00128 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_sub_avx 0012f 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx ; 91 : context->mat[F32].buffer_transpose = KER_PROC(float, avx, , transpose); 00134 b8 48 00 00 00 mov eax, 72 ; 00000048H 00139 48 6b c0 00 imul rax, rax, 0 0013d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00144 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_kernel_transpose_avx 0014b 48 89 54 01 40 mov QWORD PTR [rcx+rax+64], rdx ; 92 : context->mat[F32].clear_panel = PNL_PROC(float, avx, , clear); 00150 b8 48 00 00 00 mov eax, 72 ; 00000048H 00155 48 6b c0 00 imul rax, rax, 0 00159 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00160 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_pnl_clear_avx 00167 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx ; 93 : context->mat[F32].ker_fma = is_fma ? KER_PROC(float, avx, , fma) : 0016c 0f be 45 24 movsx eax, BYTE PTR is_fma$[rbp] 00170 85 c0 test eax, eax 00172 74 10 je SHORT $LN7@load_intri 00174 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:float_kernel_fma_avx 0017b 48 89 85 18 01 00 00 mov QWORD PTR tv141[rbp], rax 00182 eb 0e jmp SHORT $LN8@load_intri $LN7@load_intri: 00184 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:float_kernel_fma_avx_fma 0018b 48 89 85 18 01 00 00 mov QWORD PTR tv141[rbp], rax $LN8@load_intri: 00192 b8 48 00 00 00 mov eax, 72 ; 00000048H 00197 48 6b c0 00 imul rax, rax, 0 0019b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 001a2 48 8b 95 18 01 00 00 mov rdx, QWORD PTR tv141[rbp] 001a9 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx ; 94 : KER_PROC(float, avx, _fma, fma); ; 95 : context->mat[F32].ker_tile_fma = is_fma ? KERTILE_PROC(float, avx, , fma) : 001ae 0f be 45 24 movsx eax, BYTE PTR is_fma$[rbp] 001b2 85 c0 test eax, eax 001b4 74 10 je SHORT $LN9@load_intri 001b6 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:float_kernel_tile_fma_avx 001bd 48 89 85 18 01 00 00 mov QWORD PTR tv148[rbp], rax 001c4 eb 0e jmp SHORT $LN10@load_intri $LN9@load_intri: 001c6 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:float_kernel_tile_fma_avx_fma 001cd 48 89 85 18 01 00 00 mov QWORD PTR tv148[rbp], rax $LN10@load_intri: 001d4 b8 48 00 00 00 mov eax, 72 ; 00000048H 001d9 48 6b c0 00 imul rax, rax, 0 001dd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 001e4 48 8b 95 18 01 00 00 mov rdx, QWORD PTR tv148[rbp] 001eb 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx ; 96 : KERTILE_PROC(float, avx, _fma, fma); ; 97 : context->mat[F32].pivot = NULL; 001f0 b8 48 00 00 00 mov eax, 72 ; 00000048H 001f5 48 6b c0 00 imul rax, rax, 0 001f9 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00200 48 c7 44 01 60 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 ; 98 : ; 99 : context->mat[F64].buffer_add = BUF_PROC(double, avx, , add); 00209 b8 48 00 00 00 mov eax, 72 ; 00000048H 0020e 48 6b c0 01 imul rax, rax, 1 00212 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00219 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_add_avx 00220 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx ; 100 : context->mat[F64].buffer_fill = BUF_PROC(double, avx, , fill); 00225 b8 48 00 00 00 mov eax, 72 ; 00000048H 0022a 48 6b c0 01 imul rax, rax, 1 0022e 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00235 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_fill_avx 0023c 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx ; 101 : context->mat[F64].buffer_scalar_mul = BUF_PROC(double, avx, , scalar_mul); 00241 b8 48 00 00 00 mov eax, 72 ; 00000048H 00246 48 6b c0 01 imul rax, rax, 1 0024a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00251 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_scalar_mul_avx 00258 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx ; 102 : context->mat[F64].buffer_sub = BUF_PROC(double, avx, , sub); 0025d b8 48 00 00 00 mov eax, 72 ; 00000048H 00262 48 6b c0 01 imul rax, rax, 1 00266 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 0026d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_sub_avx 00274 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx ; 103 : context->mat[F64].buffer_transpose = NULL; 00279 b8 48 00 00 00 mov eax, 72 ; 00000048H 0027e 48 6b c0 01 imul rax, rax, 1 00282 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00289 48 c7 44 01 40 00 00 00 00 mov QWORD PTR [rcx+rax+64], 0 ; 104 : context->mat[F64].clear_panel = PNL_PROC(double, avx, , clear); 00292 b8 48 00 00 00 mov eax, 72 ; 00000048H 00297 48 6b c0 01 imul rax, rax, 1 0029b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 002a2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_pnl_clear_avx 002a9 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx ; 105 : context->mat[F64].ker_fma = is_fma ? KER_PROC(double, avx, , fma) : 002ae 0f be 45 24 movsx eax, BYTE PTR is_fma$[rbp] 002b2 85 c0 test eax, eax 002b4 74 10 je SHORT $LN11@load_intri 002b6 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:double_kernel_fma_avx 002bd 48 89 85 18 01 00 00 mov QWORD PTR tv183[rbp], rax 002c4 eb 0e jmp SHORT $LN12@load_intri $LN11@load_intri: 002c6 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:double_kernel_fma_avx_fma 002cd 48 89 85 18 01 00 00 mov QWORD PTR tv183[rbp], rax $LN12@load_intri: 002d4 b8 48 00 00 00 mov eax, 72 ; 00000048H 002d9 48 6b c0 01 imul rax, rax, 1 002dd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 002e4 48 8b 95 18 01 00 00 mov rdx, QWORD PTR tv183[rbp] 002eb 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx ; 106 : KER_PROC(double, avx, _fma, fma); ; 107 : context->mat[F64].ker_tile_fma = is_fma ? KERTILE_PROC(double, avx, , fma) : 002f0 0f be 45 24 movsx eax, BYTE PTR is_fma$[rbp] 002f4 85 c0 test eax, eax 002f6 74 10 je SHORT $LN13@load_intri 002f8 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:double_kernel_tile_fma_avx 002ff 48 89 85 18 01 00 00 mov QWORD PTR tv190[rbp], rax 00306 eb 0e jmp SHORT $LN14@load_intri $LN13@load_intri: 00308 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:double_kernel_tile_fma_avx_fma 0030f 48 89 85 18 01 00 00 mov QWORD PTR tv190[rbp], rax $LN14@load_intri: 00316 b8 48 00 00 00 mov eax, 72 ; 00000048H 0031b 48 6b c0 01 imul rax, rax, 1 0031f 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00326 48 8b 95 18 01 00 00 mov rdx, QWORD PTR tv190[rbp] 0032d 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx ; 108 : KERTILE_PROC(double, avx, _fma, fma); ; 109 : context->mat[F64].pivot = NULL; 00332 b8 48 00 00 00 mov eax, 72 ; 00000048H 00337 48 6b c0 01 imul rax, rax, 1 0033b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR context$[rbp] 00342 48 c7 44 01 60 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 ; 110 : ; 111 : context->vec_f32_normalize_3 = f32_normalize; 0034b 48 8b 85 40 01 00 00 mov rax, QWORD PTR context$[rbp] 00352 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:f32_normalize 00359 48 89 48 18 mov QWORD PTR [rax+24], rcx ; 112 : } 0035d 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 00364 5f pop rdi 00365 5d pop rbp 00366 c3 ret 0 load_intrinsic_avx ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c ; COMDAT load_intrinsic_sse _TEXT SEGMENT context$ = 224 id$ = 232 load_intrinsic_sse PROC ; COMDAT ; 49 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__518EAA70_load_intrinsic@x86@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 50 : context->city_hash_simplify = city_hash_simplify_sse; 00025 48 8b 85 e0 00 00 00 mov rax, QWORD PTR context$[rbp] 0002c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:city_hash_simplify_sse 00033 48 89 08 mov QWORD PTR [rax], rcx ; 51 : context->factorial_simd = factorial_simd_sse; 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR context$[rbp] 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:factorial_simd_sse 00044 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 52 : context->index_pair = index_pair_sse; 00048 48 8b 85 e0 00 00 00 mov rax, QWORD PTR context$[rbp] 0004f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:index_pair_sse 00056 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 53 : ; 54 : context->mat[F32].buffer_add = BUF_PROC(float, sse, , add); 0005a b8 48 00 00 00 mov eax, 72 ; 00000048H 0005f 48 6b c0 00 imul rax, rax, 0 00063 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0006a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_add_sse 00071 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx ; 55 : context->mat[F32].buffer_fill = BUF_PROC(float, sse, , fill); 00076 b8 48 00 00 00 mov eax, 72 ; 00000048H 0007b 48 6b c0 00 imul rax, rax, 0 0007f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00086 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_fill_sse 0008d 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx ; 56 : context->mat[F32].buffer_scalar_mul = BUF_PROC(float, sse, , scalar_mul); 00092 b8 48 00 00 00 mov eax, 72 ; 00000048H 00097 48 6b c0 00 imul rax, rax, 0 0009b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 000a2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_scalar_mul_sse 000a9 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx ; 57 : context->mat[F32].buffer_sub = BUF_PROC(float, sse, , sub); 000ae b8 48 00 00 00 mov eax, 72 ; 00000048H 000b3 48 6b c0 00 imul rax, rax, 0 000b7 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 000be 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_buf_sub_sse 000c5 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx ; 58 : context->mat[F32].buffer_transpose = KER_PROC(float, sse, , transpose); 000ca b8 48 00 00 00 mov eax, 72 ; 00000048H 000cf 48 6b c0 00 imul rax, rax, 0 000d3 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 000da 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_kernel_transpose_sse 000e1 48 89 54 01 40 mov QWORD PTR [rcx+rax+64], rdx ; 59 : context->mat[F32].clear_panel = PNL_PROC(float, sse, , clear); 000e6 b8 48 00 00 00 mov eax, 72 ; 00000048H 000eb 48 6b c0 00 imul rax, rax, 0 000ef 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 000f6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_pnl_clear_sse 000fd 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx ; 60 : context->mat[F32].ker_fma = KER_PROC(float, sse, , fma); 00102 b8 48 00 00 00 mov eax, 72 ; 00000048H 00107 48 6b c0 00 imul rax, rax, 0 0010b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00112 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_kernel_fma_sse 00119 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx ; 61 : context->mat[F32].ker_tile_fma = KERTILE_PROC(float, sse, , fma); 0011e b8 48 00 00 00 mov eax, 72 ; 00000048H 00123 48 6b c0 00 imul rax, rax, 0 00127 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0012e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:float_kernel_tile_fma_sse 00135 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx ; 62 : context->mat[F32].pivot = NULL; 0013a b8 48 00 00 00 mov eax, 72 ; 00000048H 0013f 48 6b c0 00 imul rax, rax, 0 00143 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0014a 48 c7 44 01 60 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 ; 63 : ; 64 : context->mat[F64].buffer_add = BUF_PROC(double, sse, , add); 00153 b8 48 00 00 00 mov eax, 72 ; 00000048H 00158 48 6b c0 01 imul rax, rax, 1 0015c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00163 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_add_sse 0016a 48 89 54 01 20 mov QWORD PTR [rcx+rax+32], rdx ; 65 : context->mat[F64].buffer_fill = BUF_PROC(double, sse, , fill); 0016f b8 48 00 00 00 mov eax, 72 ; 00000048H 00174 48 6b c0 01 imul rax, rax, 1 00178 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0017f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_fill_sse 00186 48 89 54 01 28 mov QWORD PTR [rcx+rax+40], rdx ; 66 : context->mat[F64].buffer_scalar_mul = BUF_PROC(double, sse, , scalar_mul); 0018b b8 48 00 00 00 mov eax, 72 ; 00000048H 00190 48 6b c0 01 imul rax, rax, 1 00194 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 0019b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_scalar_mul_sse 001a2 48 89 54 01 30 mov QWORD PTR [rcx+rax+48], rdx ; 67 : context->mat[F64].buffer_sub = BUF_PROC(double, sse, , sub); 001a7 b8 48 00 00 00 mov eax, 72 ; 00000048H 001ac 48 6b c0 01 imul rax, rax, 1 001b0 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 001b7 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_buf_sub_sse 001be 48 89 54 01 38 mov QWORD PTR [rcx+rax+56], rdx ; 68 : context->mat[F64].buffer_transpose = NULL; 001c3 b8 48 00 00 00 mov eax, 72 ; 00000048H 001c8 48 6b c0 01 imul rax, rax, 1 001cc 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 001d3 48 c7 44 01 40 00 00 00 00 mov QWORD PTR [rcx+rax+64], 0 ; 69 : context->mat[F64].clear_panel = PNL_PROC(double, sse, , clear); 001dc b8 48 00 00 00 mov eax, 72 ; 00000048H 001e1 48 6b c0 01 imul rax, rax, 1 001e5 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 001ec 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_pnl_clear_sse 001f3 48 89 54 01 48 mov QWORD PTR [rcx+rax+72], rdx ; 70 : context->mat[F64].ker_fma = KER_PROC(double, sse, , fma); 001f8 b8 48 00 00 00 mov eax, 72 ; 00000048H 001fd 48 6b c0 01 imul rax, rax, 1 00201 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00208 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_kernel_fma_sse 0020f 48 89 54 01 50 mov QWORD PTR [rcx+rax+80], rdx ; 71 : context->mat[F64].ker_tile_fma = KERTILE_PROC(double, sse, , fma); 00214 b8 48 00 00 00 mov eax, 72 ; 00000048H 00219 48 6b c0 01 imul rax, rax, 1 0021d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00224 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:double_kernel_tile_fma_sse 0022b 48 89 54 01 58 mov QWORD PTR [rcx+rax+88], rdx ; 72 : context->mat[F64].pivot = NULL; 00230 b8 48 00 00 00 mov eax, 72 ; 00000048H 00235 48 6b c0 01 imul rax, rax, 1 00239 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR context$[rbp] 00240 48 c7 44 01 60 00 00 00 00 mov QWORD PTR [rcx+rax+96], 0 ; 73 : ; 74 : context->vec_f32_normalize_3 = f32_normalize; 00249 48 8b 85 e0 00 00 00 mov rax, QWORD PTR context$[rbp] 00250 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:f32_normalize 00257 48 89 48 18 mov QWORD PTR [rax+24], rcx ; 75 : } 0025b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00262 5f pop rdi 00263 5d pop rbp 00264 c3 ret 0 load_intrinsic_sse ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\load_intrinsic.x86.c ; COMDAT load_intrinsic_function _TEXT SEGMENT simdid$ = 8 context$ = 40 tv74 = 244 intrinsic_context$ = 288 id$ = 296 load_intrinsic_function PROC ; COMDAT ; 21 : { $LN13: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001d b9 12 00 00 00 mov ecx, 18 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] 00031 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__518EAA70_load_intrinsic@x86@c 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0003d 90 npad 1 ; 22 : sn_null_assert(intrinsic_context); 0003e 48 83 bd 20 01 00 00 00 cmp QWORD PTR intrinsic_context$[rbp], 0 00046 75 1c jne SHORT $LN12@load_intri 00048 41 b8 16 00 00 00 mov r8d, 22 0004e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1HI@EDBAMNGI@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00055 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1DE@BIMGEDNO@?$AAi?$AAn?$AAt?$AAr?$AAi?$AAn?$AAs?$AAi?$AAc?$AA_?$AAc?$AAo?$AAn?$AAt?$AAe@ 0005c ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00062 33 c0 xor eax, eax $LN12@load_intri: ; 23 : ; 24 : SIMDID simdid; ; 25 : if (id) { 00064 48 83 bd 28 01 00 00 00 cmp QWORD PTR id$[rbp], 0 0006c 74 0d je SHORT $LN4@load_intri ; 26 : simdid.mask = id; 0006e 48 8b 85 28 01 00 00 mov rax, QWORD PTR id$[rbp] 00075 48 89 45 08 mov QWORD PTR simdid$[rbp], rax ; 27 : } else { 00079 eb 09 jmp SHORT $LN5@load_intri $LN4@load_intri: ; 28 : simdid = sn_get_simd_level_global(); 0007b e8 00 00 00 00 call sn_get_simd_level_global 00080 48 89 45 08 mov QWORD PTR simdid$[rbp], rax $LN5@load_intri: ; 29 : } ; 30 : ; 31 : sn_intrinsic *context = (sn_intrinsic *)intrinsic_context; 00084 48 8b 85 20 01 00 00 mov rax, QWORD PTR intrinsic_context$[rbp] 0008b 48 89 45 28 mov QWORD PTR context$[rbp], rax ; 32 : ; 33 : switch (simdid.make_byte[1]) { 0008f b8 01 00 00 00 mov eax, 1 00094 48 6b c0 01 imul rax, rax, 1 00098 0f b6 44 05 08 movzx eax, BYTE PTR simdid$[rbp+rax] 0009d 88 85 f4 00 00 00 mov BYTE PTR tv74[rbp], al 000a3 80 bd f4 00 00 00 01 cmp BYTE PTR tv74[rbp], 1 000aa 74 26 je SHORT $LN6@load_intri 000ac 80 bd f4 00 00 00 02 cmp BYTE PTR tv74[rbp], 2 000b3 74 2d je SHORT $LN7@load_intri 000b5 80 bd f4 00 00 00 03 cmp BYTE PTR tv74[rbp], 3 000bc 74 34 je SHORT $LN8@load_intri 000be 80 bd f4 00 00 00 04 cmp BYTE PTR tv74[rbp], 4 000c5 74 2b je SHORT $LN9@load_intri 000c7 80 bd f4 00 00 00 05 cmp BYTE PTR tv74[rbp], 5 000ce 74 22 je SHORT $LN10@load_intri 000d0 eb 2e jmp SHORT $LN2@load_intri $LN6@load_intri: ; 34 : case SIMDID_MAIN_LVL_SSE: ; 35 : load_intrinsic_sse(context, simdid); 000d2 48 8b 55 08 mov rdx, QWORD PTR simdid$[rbp] 000d6 48 8b 4d 28 mov rcx, QWORD PTR context$[rbp] 000da e8 00 00 00 00 call load_intrinsic_sse 000df 90 npad 1 ; 36 : break; 000e0 eb 1e jmp SHORT $LN2@load_intri $LN7@load_intri: ; 37 : case SIMDID_MAIN_LVL_AVX2: ; 38 : load_intrinsic_avx(context, simdid); 000e2 48 8b 55 08 mov rdx, QWORD PTR simdid$[rbp] 000e6 48 8b 4d 28 mov rcx, QWORD PTR context$[rbp] 000ea e8 00 00 00 00 call load_intrinsic_avx 000ef 90 npad 1 ; 39 : break; 000f0 eb 0e jmp SHORT $LN2@load_intri $LN8@load_intri: $LN9@load_intri: $LN10@load_intri: ; 40 : case SIMDID_MAIN_LVL_AVX512: ; 41 : case SIMDID_MAIN_LVL_AMX: ; 42 : case SIMDID_MAIN_LVL_AVX10: ; 43 : load_intrinsic_512(context, simdid); 000f2 48 8b 55 08 mov rdx, QWORD PTR simdid$[rbp] 000f6 48 8b 4d 28 mov rcx, QWORD PTR context$[rbp] 000fa e8 00 00 00 00 call load_intrinsic_512 000ff 90 npad 1 $LN2@load_intri: ; 44 : break; ; 45 : } ; 46 : } 00100 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00104 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:load_intrinsic_function$rtcFrameData 0010b e8 00 00 00 00 call _RTC_CheckStackVars 00110 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 00117 5f pop rdi 00118 5d pop rbp 00119 c3 ret 0 load_intrinsic_function ENDP _TEXT ENDS END