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.

Reply via email to