Autor Téma: More info on RSP-23355 (Prekladac mproblemy s prekladem inferovaneho typu ...)  (Přečteno 427 krát)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3342
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Ahoj, pred nekolika mesici jsme tu probirali divny preklad v 10.2 Tokyo https://forum.delphi.cz/index.php/topic,16507.msg103317.html, napsal jsem na to ticket RSP-23355 a dnes na to EMBC reagoval, ze potrebuje vice informaci:

Taras Lazurkiv requested more info in order to validate the issue and commented: Hello, Petr Fejfar
Are you still facing this issue on the latest version ?


Nemam novejsi Delphi, takze to nemuzu pretestovat. Pokud to nekoho zajima a ma posledni verzi Delphi, nebyl by od te dobroty a nevyzkousel to? Test je soucasti ticketu, vyzaduje to inspekci prelozeneho kodu v CPU okne.

Diky, pf

Offline Morrison

  • Hrdina
  • ****
  • Příspěvků: 315
  • Karma: 12
    • Verze Delphi: D5, XE2, 10.4
D 10.4
Kód: Delphi [Vybrat]
  1. SSCCE_Int64UInt64.dpr.19: for Idx := 0 to length(AArray) - 1 do
  2. 0041C7AF 8B45F4           mov eax,[ebp-$0c]
  3. 0041C7B2 40               inc eax
  4. 0041C7B3 48               dec eax
  5. 0041C7B4 85C0             test eax,eax
  6. 0041C7B6 7C3D             jl $0041c7f5
  7. 0041C7B8 40               inc eax
  8. 0041C7B9 8945EC           mov [ebp-$14],eax
  9. 0041C7BC C745F000000000   mov [ebp-$10],$00000000
  10. SSCCE_Int64UInt64.dpr.21: PassInt64(PUInt64(@AArray[Idx])^);
  11. 0041C7C3 8B45F8           mov eax,[ebp-$08]
  12. 0041C7C6 8B55F0           mov edx,[ebp-$10]
  13. 0041C7C9 FF741004         push dword ptr [eax+edx+$04]
  14. 0041C7CD FF3410           push dword ptr [eax+edx]
  15. 0041C7D0 8B45FC           mov eax,[ebp-$04]
  16. 0041C7D3 E868FFFFFF       call TAny.PassInt64
  17. SSCCE_Int64UInt64.dpr.22: PassUInt64(PInt64(@AArray[Idx])^);
  18. 0041C7D8 8B45F8           mov eax,[ebp-$08]
  19. 0041C7DB 8B55F0           mov edx,[ebp-$10]
  20. 0041C7DE FF741004         push dword ptr [eax+edx+$04]
  21. 0041C7E2 FF3410           push dword ptr [eax+edx]
  22. 0041C7E5 8B45FC           mov eax,[ebp-$04]
  23. 0041C7E8 E85FFFFFFF       call TAny.PassUInt64
  24. SSCCE_Int64UInt64.dpr.23: end;
  25. 0041C7ED FF45F0           inc dword ptr [ebp-$10]
  26. SSCCE_Int64UInt64.dpr.19: for Idx := 0 to length(AArray) - 1 do
  27. 0041C7F0 FF4DEC           dec dword ptr [ebp-$14]
  28. 0041C7F3 75CE             jnz $0041c7c3
  29. SSCCE_Int64UInt64.dpr.24: end;
  30. 0041C7F5 8BE5             mov esp,ebp
  31. 0041C7F7 5D               pop ebp
  32. 0041C7F8 C3               ret
  33. 0041C7F9 8D4000           lea eax,[eax+$00]
  34. SSCCE_Int64UInt64.dpr.18: begin
  35. 0041C7FC 55               push ebp
  36. 0041C7FD 8BEC             mov ebp,esp
  37. 0041C7FF 83C4EC           add esp,-$14
  38. 0041C802 894DF4           mov [ebp-$0c],ecx
  39. 0041C805 8955F8           mov [ebp-$08],edx
  40. 0041C808 8945FC           mov [ebp-$04],eax
  41. SSCCE_Int64UInt64.dpr.19: for Idx := 0 to length(AArray) - 1 do
  42. 0041C80B 8B45F4           mov eax,[ebp-$0c]
  43. 0041C80E 40               inc eax
  44. 0041C80F 48               dec eax
  45. 0041C810 85C0             test eax,eax
  46. 0041C812 7C3D             jl $0041c851
  47. 0041C814 40               inc eax
  48. 0041C815 8945EC           mov [ebp-$14],eax
  49. 0041C818 C745F000000000   mov [ebp-$10],$00000000
  50. SSCCE_Int64UInt64.dpr.21: PassInt64(PUInt64(@AArray[Idx])^);
  51. 0041C81F 8B45F8           mov eax,[ebp-$08]
  52. 0041C822 8B55F0           mov edx,[ebp-$10]
  53. 0041C825 FF741004         push dword ptr [eax+edx+$04]
  54. 0041C829 FF3410           push dword ptr [eax+edx]
  55. 0041C82C 8B45FC           mov eax,[ebp-$04]
  56. 0041C82F E80CFFFFFF       call TAny.PassInt64
  57. SSCCE_Int64UInt64.dpr.22: PassUInt64(PInt64(@AArray[Idx])^);
  58. 0041C834 8B45F8           mov eax,[ebp-$08]
  59. 0041C837 8B55F0           mov edx,[ebp-$10]
  60. 0041C83A FF741004         push dword ptr [eax+edx+$04]
  61. 0041C83E FF3410           push dword ptr [eax+edx]
  62. 0041C841 8B45FC           mov eax,[ebp-$04]
  63. 0041C844 E803FFFFFF       call TAny.PassUInt64
  64. SSCCE_Int64UInt64.dpr.23: end;
  65. 0041C849 FF45F0           inc dword ptr [ebp-$10]
  66. SSCCE_Int64UInt64.dpr.19: for Idx := 0 to length(AArray) - 1 do
  67. 0041C84C FF4DEC           dec dword ptr [ebp-$14]
  68. 0041C84F 75CE             jnz $0041c81f
  69.  
nil

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3342
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
D 10.4

SSCCE_Int64UInt64.dpr.21: PassInt64(PUInt64(@AArray[Idx])^);
0041C81F 8B45F8           mov eax,[ebp-$08]
0041C822 8B55F0           mov edx,[ebp-$10]
0041C825 FF741004         push dword ptr [eax+edx+$04]
0041C829 FF3410           push dword ptr [eax+edx]

0041C82C 8B45FC           mov eax,[ebp-$04]
0041C82F E80CFFFFFF       call TAny.PassInt64


Diky, vypada to stale stejne blbe.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3004
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
D11:

Kód: Delphi [Vybrat]
  1. SSCCE_Int64UInt64.dpr.19: for Idx := 0 to length(AArray) - 1 do
  2. 0041D76C 8D7901           lea edi,[ecx+$01]
  3. 0041D76F 4F               dec edi
  4. 0041D770 85FF             test edi,edi
  5. 0041D772 7C22             jl $0041d796
  6. 0041D774 47               inc edi
  7. 0041D775 8B5DFC           mov ebx,[ebp-$04]
  8. SSCCE_Int64UInt64.dpr.21: PassInt64(PUInt64(@AArray[Idx])^);
  9. 0041D778 FF7304           push dword ptr [ebx+$04]
  10. 0041D77B FF33             push dword ptr [ebx]
  11. 0041D77D 8BC6             mov eax,esi
  12. 0041D77F E880FFFFFF       call TAny.PassInt64
  13. SSCCE_Int64UInt64.dpr.22: PassUInt64(PInt64(@AArray[Idx])^);
  14. 0041D784 FF7304           push dword ptr [ebx+$04]
  15. 0041D787 FF33             push dword ptr [ebx]
  16. 0041D789 8BC6             mov eax,esi
  17. 0041D78B E87CFFFFFF       call TAny.PassUInt64
  18. SSCCE_Int64UInt64.dpr.23: end;
  19. 0041D790 83C308           add ebx,$08
  20. SSCCE_Int64UInt64.dpr.19: for Idx := 0 to length(AArray) - 1 do
  21. 0041D793 4F               dec edi
  22. 0041D794 75E2             jnz $0041d778
  23. SSCCE_Int64UInt64.dpr.24: end;
  24. 0041D796 5F               pop edi
Embarcadero MVP - Czech republic

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3342
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
To je zase sr*cka  >:( Nejdrive me to nechtelo vubec prihlasit ze zapamatovanych credentials, nakonec jsem se prihlasil, napsal komentar, dojebali formatovani (preformatted fond a color, coz zvlada i zdejsi forum) a kdyz jsem to editoval, tak mi napsali, ze nemam prava editovat, i kdyz nejakou zmenu to udelalo. Ale pri pokusu to znovu editovat to pise, ze

It seems that you have tried to perform an operation which you are not permitted to perform.
If you think this message is wrong, please contact your JIRA administrators.


A kdyz klilknu na JIRA administrators, tak to pise, ze Your JIRA administrator has not yet configured this contact form.

##

Tohle jako duchodce nemam zapotrebi  >:( Pokud nekoho ten topik zajima, tak at udela nejaka opatreni v jeho propagaci, ja se o to prestavam zajimat.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3342
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
D11:


0041D775 8B5DFC           mov ebx,[ebp-$04]
...
0041D778 FF7304           push dword ptr [ebx $04]
0041D77B FF33             push dword ptr [ebx]
...
0041D790 83C308           add ebx,$08



Tak kdyz jsi to poslal, zatimco jsem psal posledni prispevek  ;) Tohle je spravne a ten preklad je o hooodne lepsi, nez ten dole, ale je otazka, jestli to tak prelozi vzdycky nebo jen se zapnutou optimalizaci a ve 32bitech.
« Poslední změna: 02-11-2021, 10:56:45 od pf1957 »

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3004
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Priznam se, ze nejsem tak dobrej v indexovani v ASM, ale prijde mi ze to co jsem postnul, mi prijde taky jako spravne.  Jinak ta JIRA ma problem s adblockem a vubec, nedivim se ti.
Embarcadero MVP - Czech republic