Strange branching performance

David Chase david.r.chase at oracle.com
Thu Feb 20 06:11:23 PST 2014


On 2014-02-14, at 1:46 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:

> Equality test does not set carry flag. You code is for if (P < Q) { X+1 }

Be careful with the carry flag after cmp -- from the Intel docs:

The condition codes used by the Jcc, CMOVcc, and SETcc instructions are based on the results of a CMP instruction. Appendix B, “EFLAGS Condition Codes,” in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1, shows the relationship of the status flags and the condition codes.

-and-

The terms “above” and “below” are associated with the CF flag and refer to the relation between two unsigned integer values. The terms “greater” and “less” are asso- ciated with the SF and OF flags and refer to the relation between two signed integer values.

David

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20140220/dc1707e0/signature.asc 


More information about the hotspot-compiler-dev mailing list