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).