Warum sollte gcc in dasselbe Verzeichnis wechseln?

8

Für dieses Stück C-Code:

%Vor%

gcc 4.6 -O3 erzeugte die folgende Assembly:

%Vor%

Könnte mir jemand sagen, warum würde es das tun wollen?

%Vor%     
Inso Reiges 25.05.2012, 03:42
quelle

1 Antwort

10

Das löscht die oberen 32 Bits. Beim Schreiben in ein 32-Bit-Register in x86-64 werden die oberen 32 Bits automatisch gelöscht. Da esi einen 32-Bit-Parameter enthält, können die oberen 32 Bits einen beliebigen Wert enthalten. Daher müssen sie gelöscht werden, bevor rsi verwendet werden kann.

    
ughoavgfhw 25.05.2012, 03:51
quelle

Tags und Links