flat assembler
Message board for the users of flat assembler.
Index
> Main > REP RET |
Author |
|
revolution 29 Nov 2006, 18:46
What do you want to know?
|
|||
29 Nov 2006, 18:46 |
|
vid 29 Nov 2006, 18:49
some info about the mentioned flaw.
|
|||
29 Nov 2006, 18:49 |
|
MAD_DËMON 29 Nov 2006, 20:39
The REP prefix is used along with the RET instruction for being able of perform branch prediction in returns from procedures, afk Athlon 64 and Opteron processors aren't able to apply branch prediction in a RET without the REP prefix. It's used when a branch points directly to a RET instruction or when there's a control transfer instruction before a RET.
Last edited by MAD_DËMON on 29 Nov 2006, 20:45; edited 1 time in total |
|||
29 Nov 2006, 20:39 |
|
revolution 29 Nov 2006, 20:44
Presumably the RET is mispredicted to go to the wrong place, causing a pipelne flush.
What in particular do you want to know? The number of clock ticks lost? The processors it affects? The precise details about the internal AMD circuitry that cause the flaw? The reason REP "fixes" the problem? |
|||
29 Nov 2006, 20:44 |
|
LocoDelAssembly 29 Nov 2006, 20:56
Software Optimization Guide for AMD64 Processors wrote: 6.2 Two-Byte Near-Return RET Instruction With this, you have confirmation that it's not an invention of MS |
|||
29 Nov 2006, 20:56 |
|
MAD_DËMON 29 Nov 2006, 21:11
I think that I have found a strange flaw in Visual C++ Express, when testing for zero the return value from a windows API call, eax is saved in another register before testing it for zero (test eax,eax) in a if() statement, I don't know exactly what is the purpose of that
|
|||
29 Nov 2006, 21:11 |
|
vid 29 Nov 2006, 22:37
thanks
|
|||
29 Nov 2006, 22:37 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.