Themabewertung:
  • 4 Bewertung(en) - 3.5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Engineering der NLT II
(19.11.2025, 22:09)HenneNWH schrieb: Was genau möchtest du mir/ uns damit mitteilen?

ohne die Info von dir mit "Die Originalimplementierung dieser Funktion hat mit GCC/Clang falsche Werte geliefert." war einfach nicht klar warum dich diese kleine Routine so interessiert - jetzt sind NewProggie und ich im Bilde :)

d.h. du hast das für 32/64bit gefixt aber weils im BCC eh ohne Optimierung gebaut wurde hatte der Fehler in der DOS Exe nie Auswirkungen?

zu deinem Benchmark

Code:
Meine Version (-O0, -O1, -O2)
GCC: 94s, 10s, 10s
Clang: 113s, 0s, 0s

Deine Version (-O0, -O1, -O2)
GCC: 29s, 0s, 0s
Clang: 28s, 9s, 0s

die Zahlen kommen mir komisch vor - speziell gcc -02 und clang -01 - der clang (21.1.5) und der gcc (15.2.1) schmeissen bei mir mit -O2 schon den kompletten Code raus und machen nur return 0;
siehe: https://gcc.godbolt.org/z/a6GssaaT1

und für clang(ab -O1)/gcc(ab -O2) ist der code unserer beiden bei Funktionen 100% identisch (der MSVC 2022 reduziert meine Funktion auch auf bswap bei /O2) - nur der Benchmark-Code ist anders optimiert
https://gcc.godbolt.org/z/8rqvY9bjh
Code:
swap32_llm(unsigned int):
        mov    eax, edi
        bswap  eax
        ret

swap32_hen(unsigned int):
        mov    eax, edi
        bswap  eax
        ret

main:
        xor    eax, eax
        ret

damit "wissen" der gcc und clang das dein if nie anschlagen wird, also kann man alles weg optimieren

bei sowas musst du meist Sondervariable mit einfügen - damit der Optimizer die Finger still hält - UND den Assembler-Code anschauen

eher sowas wie

Code:
int main() {
  int x = 0;

  for (uint32_t i = 0; i < 0xffffffff; i++) {
    x += swap32_llm(i);
  }

  return x;
}

aber da beiden Funktionen identisch sind nach der Code-Generierung macht hier Benchmarking nicht so viel Sinn weil man dann nur den Benchmark-Code benchmarkt

und du solltest deinen gcc/clang mal updaten :)

der aktuelle MSVC 2022 schafft es nur meine Routine in den einfach swap zu wandeln - deine Routine bleibt etwas umfangreicher
https://gcc.godbolt.org/z/bW8vxc3Wz

aber VS2022 schafft es auch nicht mit dem einfachen swap (also dem wissen darum) auf return 0 zu optimieren
was man aber auf keinen Fall als gcc/clang machen immer den bessere Code interpretieren sollte - die Final-Optimierung bei solchen Dead-Ends ist beim gcc/clang einfach besser - aber haben nicht immer Auswirkung auf echte Software

manchmal rasten auch die Optimizer vom gcc/clang aus (hab da schon genug Bug Reports eingestellt oder Diskussionen) gehabt wo der sich ergebende Code auch nicht mehr so fein war

Entscheident sind die richtigen Werkzeuge(VTune unter Windows/Linux, gcc.godbolt.org sind die Welt-Favoriten)/Strategien zum Benchmarking, aktuelle Kompiler und keine ausgeprägte "so war das mal" Denke
Es ändert sich in den letzten 10 Jahren erstaunlich viel, erstaunlich schnell als das Erfahrungswerte nicht einer deutlichen Auffrischung benötigen - das gilt für jeden Entwickler :)

aber es zeigt auf jeden Fall wie gut die Optimizer arbeiten können
Zitieren


Nachrichten in diesem Thema
Reverse Engineering der NLT II - von Crystal - 28.06.2017, 15:52
RE: Reverse Engineering der NLT II - von Shihan - 28.06.2017, 18:33
RE: Reverse Engineering der NLT II - von aeyol - 29.06.2017, 10:01
RE: Reverse Engineering der NLT II - von Shihan - 19.07.2017, 11:51
RE: Reverse Engineering der NLT II - von Shihan - 20.07.2017, 09:50
RE: Reverse Engineering der NLT II - von Wetzer - 02.08.2017, 21:25
RE: Reverse Engineering der NLT II - von Mirko - 02.10.2017, 17:38
RE: Reverse Engineering der NLT II - von Shihan - 03.10.2017, 10:57
RE: Reverse Engineering der NLT II - von Mirko - 03.10.2017, 13:58
RE: Reverse Engineering der NLT II - von Mirko - 04.10.2017, 18:04
RE: Reverse Engineering der NLT II - von Mirko - 07.10.2017, 23:01
RE: Reverse Engineering der NLT II - von Mirko - 08.10.2017, 10:39
RE: Reverse Engineering der NLT II - von Mirko - 10.10.2017, 08:22
RE: Reverse Engineering der NLT II - von gaor - 10.10.2017, 08:55
RE: Reverse Engineering der NLT II - von Shihan - 10.10.2017, 10:17
RE: Reverse Engineering der NLT II - von Mirko - 10.10.2017, 18:46
RE: Reverse Engineering der NLT II - von Mirko - 14.10.2017, 15:43
RE: Reverse Engineering der NLT II - von gaor - 14.10.2017, 17:37
RE: Reverse Engineering der NLT II - von Mirko - 14.10.2017, 18:01
RE: Reverse Engineering der NLT II - von gaor - 14.10.2017, 18:28
RE: Reverse Engineering der NLT II - von Mirko - 14.10.2017, 19:13
RE: Reverse Engineering der NLT II - von Mirko - 15.10.2017, 21:09
RE: Reverse Engineering der NLT II - von Mirko - 27.10.2017, 22:03
RE: Reverse Engineering der NLT II - von Shihan - 28.10.2017, 12:31
RE: Reverse Engineering der NLT II - von Mirko - 28.10.2017, 17:32
RE: Reverse Engineering der NLT II - von Mirko - 02.11.2017, 20:08
RE: Reverse Engineering der NLT II - von Mirko - 02.11.2017, 23:57
RE: Reverse Engineering der NLT II - von Wetzer - 20.12.2017, 02:33
RE: Reverse Engineering der NLT II - von Shihan - 20.12.2017, 10:42
RE: Reverse Engineering der NLT II - von Shihan - 20.12.2017, 12:05
RE: Reverse Engineering der NLT II - von gaor - 22.03.2018, 15:07
RE: Reverse Engineering der NLT II - von gaor - 22.03.2018, 19:55
RE: Reverse Engineering der NLT II - von gaor - 23.03.2018, 00:02
RE: Reverse Engineering der NLT II - von gaor - 23.03.2018, 23:38
RE: Reverse Engineering der NLT II - von gaor - 24.03.2018, 09:33
RE: Reverse Engineering der NLT II - von Hindro - 24.03.2018, 16:55
RE: Reverse Engineering der NLT II - von gaor - 24.03.2018, 17:42
RE: Reverse Engineering der NLT II - von gaor - 24.03.2018, 19:37
RE: Reverse Engineering der NLT II - von Hindro - 24.03.2018, 23:34
RE: Reverse Engineering der NLT II - von Shihan - 26.03.2018, 10:13
RE: Reverse Engineering der NLT II - von gaor - 26.03.2018, 12:33
RE: Reverse Engineering der NLT II - von Shihan - 26.03.2018, 12:47
RE: Reverse Engineering der NLT II - von gaor - 26.03.2018, 18:36
RE: Reverse Engineering der NLT II - von Hindro - 26.03.2018, 20:51
RE: Reverse Engineering der NLT II - von gaor - 26.03.2018, 22:48
RE: Reverse Engineering der NLT II - von Hindro - 27.03.2018, 10:13
RE: Reverse Engineering der NLT II - von Shihan - 27.03.2018, 11:08
RE: Reverse Engineering der NLT II - von Shihan - 27.03.2018, 13:28
RE: Reverse Engineering der NLT II - von Hindro - 27.03.2018, 15:33
RE: Reverse Engineering der NLT II - von Shihan - 27.03.2018, 17:38
RE: Reverse Engineering der NLT II - von Mirko - 27.03.2018, 20:20
RE: Reverse Engineering der NLT II - von Hindro - 31.03.2018, 12:18
RE: Reverse Engineering der NLT II - von aeyol - 31.03.2018, 12:26
RE: Reverse Engineering der NLT II - von Shihan - 31.03.2018, 13:34
RE: Reverse Engineering der NLT II - von Hindro - 31.03.2018, 15:19
RE: Reverse Engineering der NLT II - von Shihan - 01.04.2018, 16:51
RE: Reverse Engineering der NLT II - von gaor - 31.03.2018, 16:42
RE: Reverse Engineering der NLT II - von Hindro - 31.03.2018, 17:00
RE: Reverse Engineering der NLT II - von Hindro - 31.03.2018, 20:24
RE: Reverse Engineering der NLT II - von Hindro - 31.03.2018, 20:33
RE: Reverse Engineering der NLT II - von Hindro - 01.04.2018, 12:44
RE: Reverse Engineering der NLT II - von Hindro - 01.04.2018, 21:45
RE: Reverse Engineering der NLT II - von Shihan - 02.04.2018, 18:48
RE: Reverse Engineering der NLT II - von Shihan - 18.04.2018, 14:49
RE: Reverse Engineering der NLT II - von gaor - 18.04.2018, 15:28
RE: Reverse Engineering der NLT II - von Shihan - 18.04.2018, 16:59
RE: Reverse Engineering der NLT II - von aeyol - 18.04.2018, 19:18
RE: Reverse Engineering der NLT II - von Mirko - 18.04.2018, 19:37
RE: Reverse Engineering der NLT II - von Shihan - 19.04.2018, 09:35
RE: Reverse Engineering der NLT II - von Shihan - 20.04.2018, 10:08
RE: Reverse Engineering der NLT II - von Tobi - 21.04.2018, 10:59
RE: Reverse Engineering der NLT II - von Shihan - 22.04.2018, 11:33
RE: Reverse Engineering der NLT II - von gaor - 23.04.2018, 14:25
RE: Reverse Engineering der NLT II - von Shihan - 23.04.2018, 15:49
RE: Reverse Engineering der NLT II - von gaor - 25.04.2018, 21:44
RE: Reverse Engineering der NLT II - von Shihan - 26.04.2018, 13:18
RE: Reverse Engineering der NLT II - von Shihan - 25.04.2018, 14:59
RE: Reverse Engineering der NLT II - von gaor - 26.04.2018, 08:09
RE: Reverse Engineering der NLT II - von Shihan - 26.04.2018, 14:41
RE: Reverse Engineering der NLT II - von gaor - 26.04.2018, 17:42
RE: Reverse Engineering der NLT II - von Shihan - 26.04.2018, 18:37
RE: Reverse Engineering der NLT II - von Shihan - 27.04.2018, 10:51
RE: Reverse Engineering der NLT II - von gaor - 27.04.2018, 11:11
RE: Reverse Engineering der NLT II - von Shihan - 27.04.2018, 11:26
RE: Reverse Engineering der NLT II - von gaor - 27.04.2018, 12:48
RE: Reverse Engineering der NLT II - von aeyol - 30.04.2018, 11:45
RE: Reverse Engineering der NLT II - von Shihan - 06.07.2018, 09:08
RE: Reverse Engineering der NLT II - von gaor - 12.07.2019, 09:49
RE: Reverse Engineering der NLT II - von gaor - 12.07.2019, 15:48
RE: Reverse Engineering der NLT II - von Shihan - 24.07.2019, 09:22
RE: Reverse Engineering der NLT II - von aeyol - 16.03.2020, 13:12
RE: Reverse Engineering der NLT II - von Shihan - 17.03.2020, 09:07
RE: Reverse Engineering der NLT II - von Shihan - 17.03.2020, 16:33
RE: Reverse Engineering der NLT II - von gaor - 17.01.2021, 16:08
RE: Reverse Engineering der NLT II - von gaor - 17.01.2021, 16:44
RE: Reverse Engineering der NLT II - von gaor - 22.01.2021, 12:58
RE: Reverse Engineering der NLT II - von gaor - 23.01.2021, 13:54
RE: Reverse Engineering der NLT II - von gaor - 24.01.2021, 18:13
RE: Reverse Engineering der NLT II - von gaor - 24.01.2021, 20:44
RE: Reverse Engineering der NLT II - von aeyol - 26.01.2021, 22:41
RE: Reverse Engineering der NLT II - von aeyol - 27.01.2021, 12:40
RE: Reverse Engineering der NLT II - von aeyol - 27.01.2021, 14:43
RE: Reverse Engineering der NLT II - von aeyol - 27.01.2021, 18:00
RE: Reverse Engineering der NLT II - von aeyol - 27.01.2021, 20:22
RE: Reverse Engineering der NLT II - von gaor - 08.02.2021, 21:25
RE: Reverse Engineering der NLT II - von gaor - 09.02.2021, 20:22
RE: Reverse Engineering der NLT II - von gaor - 12.02.2021, 10:10
RE: Reverse Engineering der NLT II - von gaor - 12.02.2021, 10:54
RE: Reverse Engineering der NLT II - von gaor - 14.02.2021, 14:45
RE: Reverse Engineering der NLT II - von gaor - 15.02.2021, 21:08
RE: Reverse Engineering der NLT II - von gaor - 20.02.2021, 11:01
RE: Reverse Engineering der NLT II - von gaor - 20.02.2021, 14:40
RE: Reverse Engineering der NLT II - von gaor - 20.02.2021, 22:37
RE: Reverse Engineering der NLT II - von gaor - 17.04.2021, 12:07
RE: Reverse Engineering der NLT II - von gaor - 17.04.2021, 17:10
RE: Reverse Engineering der NLT II - von gaor - 17.04.2021, 22:28
RE: Reverse Engineering der NLT II - von gaor - 18.04.2021, 07:47
RE: Reverse Engineering der NLT II - von NRS - 26.04.2021, 08:52
RE: Reverse Engineering der NLT II - von NRS - 26.04.2021, 18:38
RE: Reverse Engineering der NLT II - von NRS - 26.04.2021, 20:54
RE: Reverse Engineering der NLT II - von NRS - 27.04.2021, 10:10
RE: Reverse Engineering der NLT II - von NRS - 27.04.2021, 13:21
RE: Reverse Engineering der NLT II - von aeyol - 01.03.2023, 19:03
RE: Reverse Engineering der NLT II - von Shihan - 02.03.2023, 13:07
RE: Reverse Engineering der NLT II - von Shihan - 05.03.2023, 12:18
RE: Reverse Engineering der NLT II - von Shihan - 07.03.2023, 20:38
RE: Reverse Engineering der NLT II - von Shihan - 18.03.2023, 12:30
RE: Reverse Engineering der NLT II - von Shihan - 25.03.2023, 12:43
RE: Reverse Engineering der NLT II - von Shihan - 25.03.2023, 16:11
RE: Reverse Engineering der NLT II - von Shihan - 25.03.2023, 16:36
RE: Reverse Engineering der NLT II - von Shihan - 30.03.2023, 14:03
RE: Reverse Engineering der NLT II - von Luigi - 11.04.2023, 23:40
RE: Reverse Engineering der NLT II - von aeyol - 01.11.2023, 20:57
RE: Reverse Engineering der NLT II - von aeyol - 01.11.2023, 22:44
RE: Reverse Engineering der NLT II - von aeyol - 02.11.2023, 15:23
RE: Reverse Engineering der NLT II - von aeyol - 03.11.2023, 10:50
RE: Reverse Engineering der NLT II - von aeyol - 03.11.2023, 11:17
RE: Reverse Engineering der NLT II - von Shihan - 28.07.2024, 10:58
RE: Reverse Engineering der NLT II - von Shihan - 28.07.2024, 13:59
RE: Reverse Engineering der NLT II - von Shihan - 28.07.2024, 19:45
RE: Reverse Engineering der NLT II - von Shihan - 29.07.2024, 10:01
RE: Reverse Engineering der NLT II - von Shihan - 05.08.2024, 09:51
RE: Reverse Engineering der NLT II - von llm - 10.08.2025, 10:56
RE: Reverse Engineering der NLT II - von llm - 11.08.2025, 07:24
RE: Reverse Engineering der NLT II - von llm - 12.08.2025, 11:39
RE: Reverse Engineering der NLT II - von llm - 12.08.2025, 13:59
RE: Reverse Engineering der NLT II - von llm - 12.08.2025, 16:18
RE: Reverse Engineering der NLT II - von llm - 12.08.2025, 18:36
RE: Reverse Engineering der NLT II - von llm - 13.08.2025, 07:30
RE: Reverse Engineering der NLT II - von llm - 12.08.2025, 20:26
RE: Reverse Engineering der NLT II - von llm - 14.08.2025, 07:09
RE: Reverse Engineering der NLT II - von llm - 14.08.2025, 10:01
RE: Reverse Engineering der NLT II - von llm - 14.08.2025, 15:06
RE: Reverse Engineering der NLT II - von llm - 15.08.2025, 07:03
RE: Reverse Engineering der NLT II - von llm - 16.08.2025, 15:23
RE: Reverse Engineering der NLT II - von llm - 16.08.2025, 15:27
RE: Reverse Engineering der NLT II - von llm - 16.08.2025, 19:59
RE: Reverse Engineering der NLT II - von llm - 18.08.2025, 07:30
RE: Reverse Engineering der NLT II - von llm - 19.08.2025, 07:01
RE: Reverse Engineering der NLT II - von llm - 19.08.2025, 13:07
RE: Reverse Engineering der NLT II - von llm - 19.08.2025, 13:16
RE: Reverse Engineering der NLT II - von llm - 27.08.2025, 18:29
RE: Reverse Engineering der NLT II - von Shihan - 27.08.2025, 19:29
RE: Reverse Engineering der NLT II - von Shihan - 31.08.2025, 10:18
RE: Reverse Engineering der NLT II - von llm - 01.09.2025, 09:30
RE: Reverse Engineering der NLT II - von Shihan - 01.09.2025, 10:03
RE: Reverse Engineering der NLT II - von Shihan - 02.09.2025, 08:58
RE: Reverse Engineering der NLT II - von llm - 02.09.2025, 11:27
RE: Reverse Engineering der NLT II - von Shihan - 02.09.2025, 12:05
RE: Reverse Engineering der NLT II - von llm - 05.09.2025, 13:18
RE: Reverse Engineering der NLT II - von llm - 11.09.2025, 07:07
RE: Reverse Engineering der NLT II - von Shihan - 16.09.2025, 09:13
RE: Reverse Engineering der NLT II - von Shihan - 30.09.2025, 08:47
RE: Reverse Engineering der NLT II - von Shihan - 15.10.2025, 09:21
RE: Reverse Engineering der NLT II - von Shihan - 15.10.2025, 09:34
RE: Reverse Engineering der NLT II - von Shihan - 15.10.2025, 11:34
RE: Reverse Engineering der NLT II - von llm - 17.10.2025, 09:11
RE: Reverse Engineering der NLT II - von Shihan - 15.10.2025, 12:46
RE: Reverse Engineering der NLT II - von llm - 17.10.2025, 14:36
RE: Reverse Engineering der NLT II - von Shihan - 20.10.2025, 09:44
RE: Reverse Engineering der NLT II - von llm - 21.10.2025, 16:04
RE: Reverse Engineering der NLT II - von llm - 27.10.2025, 09:36
RE: Reverse Engineering der NLT II - von llm - 31.10.2025, 12:11
RE: Reverse Engineering der NLT II - von llm - 31.10.2025, 12:27
RE: Reverse Engineering der NLT II - von llm - 31.10.2025, 14:13
RE: Reverse Engineering der NLT II - von llm - 31.10.2025, 14:26
RE: Reverse Engineering der NLT II - von llm - 31.10.2025, 14:29
RE: Reverse Engineering der NLT II - von llm - 31.10.2025, 16:21
RE: Reverse Engineering der NLT II - von llm - 31.10.2025, 17:02
RE: Reverse Engineering der NLT II - von llm - 02.11.2025, 15:46
RE: Reverse Engineering der NLT II - von llm - 03.11.2025, 13:00
RE: Reverse Engineering der NLT II - von llm - 04.11.2025, 14:48
RE: Reverse Engineering der NLT II - von llm - 06.11.2025, 11:34
RE: Reverse Engineering der NLT II - von llm - 06.11.2025, 15:49
RE: Reverse Engineering der NLT II - von llm - 07.11.2025, 12:49
RE: Reverse Engineering der NLT II - von llm - 07.11.2025, 13:21
RE: Reverse Engineering der NLT II - von llm - 07.11.2025, 16:06
RE: Reverse Engineering der NLT II - von Shihan - 10.11.2025, 11:21
RE: Reverse Engineering der NLT II - von Shihan - 10.11.2025, 12:32
RE: Reverse Engineering der NLT II - von Shihan - 10.11.2025, 16:35
RE: Reverse Engineering der NLT II - von llm - 11.11.2025, 08:38
RE: Reverse Engineering der NLT II - von llm - 12.11.2025, 08:20
RE: Reverse Engineering der NLT II - von llm - 12.11.2025, 10:21
RE: Reverse Engineering der NLT II - von llm - 12.11.2025, 11:27
RE: Reverse Engineering der NLT II - von llm - 12.11.2025, 12:00
RE: Reverse Engineering der NLT II - von llm - 12.11.2025, 18:04
RE: Reverse Engineering der NLT II - von llm - 15.11.2025, 07:55
RE: Reverse Engineering der NLT II - von llm - 13.11.2025, 07:35
RE: Reverse Engineering der NLT II - von llm - 13.11.2025, 08:44
RE: Reverse Engineering der NLT II - von llm - 13.11.2025, 08:50
RE: Reverse Engineering der NLT II - von llm - 13.11.2025, 10:56
RE: Reverse Engineering der NLT II - von llm - 13.11.2025, 14:35
RE: Reverse Engineering der NLT II - von llm - 13.11.2025, 18:15
RE: Reverse Engineering der NLT II - von llm - 13.11.2025, 16:00
RE: Reverse Engineering der NLT II - von llm - 13.11.2025, 18:16
RE: Reverse Engineering der NLT II - von llm - 14.11.2025, 08:03
RE: Reverse Engineering der NLT II - von llm - 14.11.2025, 08:58
RE: Reverse Engineering der NLT II - von llm - 14.11.2025, 13:50
RE: Reverse Engineering der NLT II - von llm - 14.11.2025, 17:22
RE: Reverse Engineering der NLT II - von llm - 14.11.2025, 13:31
RE: Reverse Engineering der NLT II - von llm - 14.11.2025, 17:20
RE: Reverse Engineering der NLT II - von llm - 15.11.2025, 08:06
RE: Reverse Engineering der NLT II - von llm - 15.11.2025, 17:24
RE: Reverse Engineering der NLT II - von llm - 17.11.2025, 12:00
RE: Reverse Engineering der NLT II - von llm - 18.11.2025, 07:21
RE: Reverse Engineering der NLT II - von Shihan - 18.11.2025, 09:58
RE: Reverse Engineering der NLT II - von llm - 18.11.2025, 11:45
RE: Reverse Engineering der NLT II - von llm - 18.11.2025, 11:57
RE: Reverse Engineering der NLT II - von llm - 18.11.2025, 12:07
RE: Reverse Engineering der NLT II - von llm - 19.11.2025, 18:03
RE: Reverse Engineering der NLT II - von llm - 20.11.2025, 05:59
RE: Reverse Engineering der NLT II - von llm - 20.11.2025, 06:26
RE: Reverse Engineering der NLT II - von llm - 20.11.2025, 16:42
RE: Reverse Engineering der NLT II - von llm - 20.11.2025, 15:20
RE: Reverse Engineering der NLT II - von llm - 20.11.2025, 16:56



Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste