codegen-diff
25 lines
// codegen: https://sharplab.io/#v2:C4LghgzgtgPgAgJgIwFgBQ7EAIDK6De6WxWcSAbFgK4B2EYAZgKZYMA2A9mMFgGKTAAkjQBuOAI4AnYL07cAqnUZMAFOy48aVKACMmkgJREShNCXNYAljR47LwCFgC8WAFQrrwVwawAyLbr6ANzGFlh2Ds5YSACsAJwA7AAsABwpCfFYALRYKhGOAHwF0QYhZmGscjwAnlHu6tzefvlloRa1ri5IAHQxvNlYAXqSblgADL0Mox1Y1UEkAPQL0RA89vrclhw0beZLs25dvf05Q/qjEzFTrgc3c4vLCDQAJlbAG8BbNAA0WADGYBo4RYkiYUA4IiYz12JDgCVmZXMAF90G0yJQGjx+KthGIpDIqmoqoNtMMjOViKYKlYbOF7I4XAAhewAYW2kOk+m6OGsAHM2EwACocYTAADMCGZDhUZ0MiIq+SisUSqXSmRyeXpWCKJXlYUxByZrPZ+nekm6oolUogwp5NH5qnypVRFPah2ixwGsouk2m03mxH2SFWbw+XxhgeWHSOfS9pPON0u11uCIeWCer3Wkk221+AKBeiwoPBkOhrvMcIRbRRGFd6MqGlwnAA7riJNJZBoiY3qj4nAUI9EFgBZbgAC143PxKl7rTrFFISSwo+sKnJ5ipFU8WBEYDYVBYLjFYzGSDFMRieosZDiKgARNieLjcPisIp6MwsPgxkiQF+kEid6/Lu+5ML8j5tvinYKEozAqCBB4GM65awkgt4PgIWDPu2PDfr+/6AcBe4HuBAiQR2hIIUwSFXhWaH3jgLZYaIL7SF+P5/vgAFATuxFgU2HCtqIOHQcA8F8TR1boEiQA=
// codegen: https://sharplab.io/#v2:C4LghgzgtgPgAgJgIwFgBQ7EAIDK6De6WxWcSAbFgK4B2EYAZgKZYMA2A9mMFgGKTAAkjQBuOAI4AnYL07cAqnUZMAFOy48aVKACMmkgJREShNCXNYAljR47LwCFgC8WAFQrrwVwawAyLbr6ANzGFlh2Ds5YSACsAJwA7AAsABwpCfFYALRYKhGOAHwF0QYhZmGscjwAnlHu6tzefvlloRa1ri5IAHQxvNlYAXqSblgADL0Mox1Y1UEkAPQL0RA89vrclhw0beZLs25dvf05Q/qjEzFTrgc3c4vLCDQAJlbAG8BbNAA0WADGYBo4RYkiYUA4IiYz12JDgCVmZXMAF90G0yJQGjx+KthGIpDIqmoqoNtMMjOViKYKlYbOF7I4XAAhewAYW2kOk+m6OGsAHM2EwACocYTAADMCGZDhUZ0MiIq+SisUSqXSmRyeXpWCKJXlYUxByZrPZ+nekm6oolUogwp5NH5qnypVRFPah2ixwGsouk2m03mxH2SFWbw+XxhgeWHSOfS9pPON0u11uCIeWCer3Wkk221+AKBeiwoPBkOhrvMcIRbRRGFd6MqGlwnAA7riJNJZBoiY3qj4nAUI9EFgBZbgAC143PxKl7rTrFFISSwo+sKnJ5ipFU8WBEYDYVBYLjFYzGSDFMRieosZDiKgARNieLjcPisIp6MwsPgxkiQF+kEid6/Lu+5ML8j5tvinYKEozAqCBB4GM65awkgt4PgIWDPu2PDfr+/6AcBe4HuBAiQR2hIIUwSFXhWaH3jgLZYaIL7SF+P5/vgAFATuxFgU2HCtqIOHQcA8F8TR1boEiQA=
S.FastInvSqrtFloatUnsafe(Single)
S.FastInvSqrtFloat(Single)
L0000: sub esp, 8
L0000: push eax
L0003: vzeroupper
L0001: vzeroupper
L0006: mov eax, [esp+0xc]
L0004: vmovss xmm0, [esp+8]
L000a: mov [esp], eax
L000a: vmovaps xmm1, xmm0
L000d: mov eax, [esp]
L000e: vmovd eax, xmm1
L0010: sar eax, 1
L0012: sar eax, 1
L0012: neg eax
L0014: neg eax
L0014: add eax, 0x5f37be77
L0016: add eax, 0x5f37be77
L0019: mov [esp], eax
L001b: vmovd xmm1, eax
L001c: vmovss xmm0, [esp]
L001f: vmulss xmm0, xmm0, [S.FastInvSqrtFloat(Single)]
L0021: vmovss xmm1, [esp+0xc]
L0027: vmulss xmm0, xmm0, xmm1
L0027: vmulss xmm1, xmm1, [S.FastInvSqrtFloatUnsafe(Single)]
L002b: vmulss xmm0, xmm0, xmm1
L002f: vmulss xmm1, xmm1, xmm0
L002f: vmovss xmm2, [S.FastInvSqrtFloat(Single)]
L0033: vmulss xmm1, xmm1, xmm0
L0037: vsubss xmm0, xmm2, xmm0
L0037: vmovss xmm2, [S.FastInvSqrtFloatUnsafe(Single)]
L003b: vmulss xmm0, xmm0, xmm1
L003f: vsubss xmm1, xmm2, xmm1
L003f: vmovss [esp], xmm0
L0043: vmulss xmm0, xmm1, xmm0
L0044: fld st, dword ptr [esp]
L0047: vmovss [esp+4], xmm0
L0047: pop ecx
L004d: fld st, dword ptr [esp+4]
L0048: ret 4
L0051: add esp, 8
L0054: ret 4