flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
vid
any info on this code from MS?
Code: jne RestoreRcx db 0f3h ; (encode REP for REP RET) ret ; no overrun, use REP RET to avoid AMD ; branch prediction flaw after Jcc |
|||
![]() |
|
revolution
What do you want to know?
|
|||
![]() |
|
vid
some info about the mentioned flaw.
|
|||
![]() |
|
revolution
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? |
|||
![]() |
|
LocoDelAssembly
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 ![]() |
|||
![]() |
|
MAD_DËMON
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
|
|||
![]() |
|
vid
thanks
|
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.