Code Review for 7063674

Prepared by:twisti on Mon Jun 11 16:21:15 PDT 2012
Workspace:/home/twisti/hsx/hotspot-comp/7063674
Compare against: /net/hs-usca-06.sfbay.sun.com/export/home2/16/twisti/hsx/hotspot-comp/hotspot
Summary of changes: 21 lines changed: 10 ins; 1 del; 10 mod; 25175 unchg
Patch of changes: 7063674.patch
Printable review: 7063674.pdf
Author comments:
7063674: Wrong results from basic comparisons after calls to Long.bitCount(long)
Reviewed-by:

We are scheduling popcnt instructions between compare and branch/conditional
move instructions because AD instructs are not defined to kill flags.

But the Intel Instruction Set Reference says for POPCNT:

Flags Affected
OF, SF, ZF, AF, CF, PF are all cleared. ZF is set if SRC = 0, otherwise ZF is cleared

The fix is to kill the flags in instructs that are using popcnt instructions.

Tested with test case of CR.

Bug id: 7063674 Wrong results from basic comparisons after calls to Long.bitCount(long)
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/x86_32.ad

8 lines changed: 4 ins; 0 del; 4 mod; 13379 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/x86_64.ad

13 lines changed: 6 ins; 1 del; 6 mod; 11796 unchg

This code review page was prepared using /home/twisti/bin/webrev (vers 23.18-hg-never).