Пост-продолжение Delphi. Ненависть 2.
------------------------------ Delphi XE2 Update 4 Hotfix 1 x64:
Project1.dpr.68: Utils.Namespace.CompareString(S1, S2);
0000000000426680 488D4D58 lea rcx,[rbp+$58]
0000000000426684 488B15BDEB0000 mov rdx,[rel $0000ebbd]
000000000042668B E86020FEFF call @UStrLAsg
0000000000426690 488D4D50 lea rcx,[rbp+$50]
0000000000426694 488B15B5EB0000 mov rdx,[rel $0000ebb5]
000000000042669B E85020FEFF call @UStrLAsg
00000000004266A0 488B4D58 mov rcx,[rbp+$58]
00000000004266A4 488B5550 mov rdx,[rbp+$50]
00000000004266A8 E82349FFFF call CompareStr
Project1.dpr.69: Utils.Namespace.SameString(S1, S2);
00000000004266AD 488D4D48 lea rcx,[rbp+$48]
00000000004266B1 488B1590EB0000 mov rdx,[rel $0000eb90]
00000000004266B8 E83320FEFF call @UStrLAsg
00000000004266BD 488D4D40 lea rcx,[rbp+$40]
00000000004266C1 488B1588EB0000 mov rdx,[rel $0000eb88]
00000000004266C8 E82320FEFF call @UStrLAsg
00000000004266CD 488D4D38 lea rcx,[rbp+$38]
00000000004266D1 488B5548 mov rdx,[rbp+$48]
00000000004266D5 E81620FEFF call @UStrLAsg
00000000004266DA 488D4D30 lea rcx,[rbp+$30]
00000000004266DE 488B5540 mov rdx,[rbp+$40]
00000000004266E2 E80920FEFF call @UStrLAsg
00000000004266E7 488B4D38 mov rcx,[rbp+$38]
00000000004266EB 488B5530 mov rdx,[rbp+$30]
00000000004266EF E8DC48FFFF call CompareStr
------------------------------ Delphi XE5 Update 2 x64:
Project1.dpr.68: Utils.Namespace.CompareString(S1, S2);
0000000000426F94 488D4D78 lea rcx,[rbp+$78]
0000000000426F98 488B1581F20000 mov rdx,[rel $0000f281]
0000000000426F9F E88C23FEFF call @UStrLAsg
0000000000426FA4 488D4D70 lea rcx,[rbp+$70]
0000000000426FA8 488B1579F20000 mov rdx,[rel $0000f279]
0000000000426FAF E87C23FEFF call @UStrLAsg
0000000000426FB4 90 nop
0000000000426FB5 488B4D78 mov rcx,[rbp+$78]
0000000000426FB9 488B5570 mov rdx,[rbp+$70]
0000000000426FBD E86E34FFFF call CompareStr
0000000000426FC2 89453C mov [rbp+$3c],eax
0000000000426FC5 90 nop
0000000000426FC6 488D4D78 lea rcx,[rbp+$78]
0000000000426FCA E8411EFEFF call @UStrClr
0000000000426FCF 488D4D70 lea rcx,[rbp+$70]
0000000000426FD3 E8381EFEFF call @UStrClr
Project1.dpr.69: Utils.Namespace.SameString(S1, S2);
0000000000426FD8 488D4D58 lea rcx,[rbp+$58]
0000000000426FDC 488B153DF20000 mov rdx,[rel $0000f23d]
0000000000426FE3 E84823FEFF call @UStrLAsg
0000000000426FE8 488D4D50 lea rcx,[rbp+$50]
0000000000426FEC 488B1535F20000 mov rdx,[rel $0000f235]
0000000000426FF3 E83823FEFF call @UStrLAsg
0000000000426FF8 488D4D68 lea rcx,[rbp+$68]
0000000000426FFC E80F1EFEFF call @UStrClr
0000000000427001 488D4D60 lea rcx,[rbp+$60]
0000000000427005 E8061EFEFF call @UStrClr
000000000042700A 488D4D48 lea rcx,[rbp+$48]
000000000042700E E8FD1DFEFF call @UStrClr
0000000000427013 488D4D40 lea rcx,[rbp+$40]
0000000000427017 E8F41DFEFF call @UStrClr
000000000042701C 90 nop
000000000042701D 488D4D68 lea rcx,[rbp+$68]
0000000000427021 488B5558 mov rdx,[rbp+$58]
0000000000427025 E80623FEFF call @UStrLAsg
000000000042702A 488D4D60 lea rcx,[rbp+$60]
000000000042702E 488B5550 mov rdx,[rbp+$50]
0000000000427032 E8F922FEFF call @UStrLAsg
0000000000427037 90 nop
0000000000427038 488B4D68 mov rcx,[rbp+$68]
000000000042703C 488B5560 mov rdx,[rbp+$60]
0000000000427040 E8EB33FFFF call CompareStr
0000000000427045 894534 mov [rbp+$34],eax
0000000000427048 90 nop
0000000000427049 488D4D68 lea rcx,[rbp+$68]
000000000042704D E8BE1DFEFF call @UStrClr
0000000000427052 488D4D60 lea rcx,[rbp+$60]
0000000000427056 E8B51DFEFF call @UStrClr
000000000042705B 837D3400 cmp dword ptr [rbp+$34],$00
000000000042705F 0F94C0 setz al
0000000000427062 88453B mov [rbp+$3b],al
0000000000427065 90 nop
0000000000427066 488D4D58 lea rcx,[rbp+$58]
000000000042706A E8A11DFEFF call @UStrClr
000000000042706F 488D4D50 lea rcx,[rbp+$50]
0000000000427073 E8981DFEFF call @UStrClr
0000000000427078 488D4D68 lea rcx,[rbp+$68]
000000000042707C E88F1DFEFF call @UStrClr
0000000000427081 488D4D60 lea rcx,[rbp+$60]
0000000000427085 E8861DFEFF call @UStrClr
000000000042708A 488D4D48 lea rcx,[rbp+$48]
000000000042708E E87D1DFEFF call @UStrClr
0000000000427093 488D4D40 lea rcx,[rbp+$40]
0000000000427097 E8741DFEFF call @UStrClr
------------------------------ FreePascal 2.7.1. x64:
project1.lpr:68 Utils.Namespace.CompareString(S1, S2);
000000010000158A 488b157fda0100 mov 0x1da7f(%rip),%rdx # 0x10001f010
0000000100001591 488b0d68da0100 mov 0x1da68(%rip),%rcx # 0x10001f000
0000000100001598 e843e40000 callq 0x10000f9e0 <SYSUTILS_$$_COMPARESTR$ANSISTRING$ANSISTRING$$LONGINT>
project1.lpr:69 Utils.Namespace.SameString(S1, S2);
000000010000159D 488b156cda0100 mov 0x1da6c(%rip),%rdx # 0x10001f010
00000001000015A4 488b0d55da0100 mov 0x1da55(%rip),%rcx # 0x10001f000
00000001000015AB e830e40000 callq 0x10000f9e0 <SYSUTILS_$$_COMPARESTR$ANSISTRING$ANSISTRING$$LONGINT>
00000001000015B0 85c0 test %eax,%eax
00000001000015B2 0f94c0 sete %al