CMOV is almost always smaller, especially if the register usage matches up. It doesn't consume any BTB entries. But of course it depends on micro-architectural factors that are difficult to predict statically and certainly varies from case to case.
On Mon, May 12, 2014 at 3:00 PM, <[email protected]> wrote: > On 2014/05/12 12:55:45, Sven Panne wrote: > >> https://codereview.chromium.org/275253004/diff/1/src/ia32/ >> assembler-ia32.h >> File src/ia32/assembler-ia32.h (left): >> > > > https://codereview.chromium.org/275253004/diff/1/src/ia32/ > assembler-ia32.h#oldcode726 > >> src/ia32/assembler-ia32.h:726: void cmov(Condition cc, Register dst, >> Register >> src) { >> On 2014/05/12 12:40:32, titzer wrote: >> > Please don't remove these from the MacroAssembler! >> > > Whatever uses that should consider *not* using it. ;-) This introduces >> data >> dependencies, and normally modern processors are better off using >> > caveman-style > >> conditional branches + normal loads. >> > > Of course I could change them into true macros: cmov would internally use > jump > and mov. > > https://codereview.chromium.org/275253004/ > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
