Skip to content

Instantly share code, notes, and snippets.

@joshpeterson
Last active September 13, 2019 12:53
Show Gist options
  • Save joshpeterson/57a1bdd1ac07d3eec0eba63e1ff84091 to your computer and use it in GitHub Desktop.
Save joshpeterson/57a1bdd1ac07d3eec0eba63e1ff84091 to your computer and use it in GitHub Desktop.
C++ code generated by IL2CPP and assembly code generated by MSVC for the DistCheckConst method (https://twitter.com/FreyaHolmer/status/1172471972892164098?s=20)

Generated C++ code for C::DistCheckConst

// System.Boolean C::DistCheckConst()
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR bool C_DistCheckConst_mE028E74C6665A48D9D1B9C061F10109CD313210D (C_tFBD32447759BBF3C449FEE7F72BC83164EA8A0C1 * __this, const RuntimeMethod* method)
{
        {
                // return myVector.sqrMagnitude < DIST_THRESH * DIST_THRESH;
                Vector3_tC13D5D43F600A728C1B38EDB3380DD9C9CFB0EBA * L_0 = __this->get_myVector_0();
                NullCheck(L_0);
                float L_1 = Vector3_get_sqrMagnitude_m78EFA8AF97A15A392EA1950A9324AE58EC2D6149(L_0, /*hidden argument*/NULL);
                return (bool)((((float)L_1) < ((float)(4.0f)))? 1 : 0);
        }
}

Unity.IL2CPP.Building.ToolChains.MsvcDesktopToolChain assembly code for C::DistCheckConst

C_DistCheckConst_mE028E74C6665A48D9D1B9C061F10109CD313210D PROC ; COMDAT
; File C:\Users\joshu\AppData\Local\Temp\il2cpp\il2cpp__ConsoleApp1\generatedcpp\ConsoleApp1.cpp
; Line 312
$LN35:
        sub     rsp, 40                                 ; 00000028H
; Line 70
        mov     rax, QWORD PTR [rcx+16]
; File C:\code\il2cpp\libil2cpp\codegen\il2cpp-codegen-il2cpp.h
; Line 222
        test    rax, rax
        je      SHORT $LN6@C_DistChec
; File C:\code\il2cpp\libil2cpp\codegen\il2cpp-codegen-common.h
; Line 280
        movss   xmm0, DWORD PTR [rax+20]
        movss   xmm2, DWORD PTR [rax+16]
        movss   xmm1, DWORD PTR [rax+24]
        mulss   xmm2, xmm2
        mulss   xmm0, xmm0
        mulss   xmm1, xmm1
; Line 286
        addss   xmm2, xmm0
; File C:\Users\joshu\AppData\Local\Temp\il2cpp\il2cpp__ConsoleApp1\generatedcpp\ConsoleApp1.cpp
; Line 318
        movss   xmm0, DWORD PTR __real@40800000
; File C:\code\il2cpp\libil2cpp\codegen\il2cpp-codegen-common.h
; Line 286
        addss   xmm2, xmm1
; File C:\Users\joshu\AppData\Local\Temp\il2cpp\il2cpp__ConsoleApp1\generatedcpp\ConsoleApp1.cpp
; Line 318
        comiss  xmm0, xmm2
        seta    al
; Line 320
        add     rsp, 40                                 ; 00000028H
        ret     0
$LN6@C_DistChec:
; File C:\code\il2cpp\libil2cpp\codegen\il2cpp-codegen-il2cpp.h
; Line 225
        call    ?il2cpp_codegen_raise_null_reference_exception@@YAXXZ ; il2cpp_codegen_raise_null_reference_exception
        int     3
$LN33@C_DistChec:
C_DistCheckConst_mE028E74C6665A48D9D1B9C061F10109CD313210D ENDP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment