-
Bug
-
Resolution: Fixed
-
P3
-
11, 17, 21, 23
-
b05
-
x86
In x86_32.ad there are a set of instruct transforms for cmov, whose predicates are of the form
`test(UseSSE) && expr1 || expr2`
Since `&&` has higher precedence than `||`, the implicit precedence is equivalent to
`(test(UseSSE) && expr1) || expr2`
But the intented grouping is
`test(UseSSE) && (expr1 || expr2)`
The affected transforms are for cmovXXX_reg_LEGT, cmovXXX_reg_EQNE, and cmovXXX_reg_LTGE.
There are other transforms nearby that have similar predicates involving UseSSE, but properly grouped as suggested above by having the necessary parens.
`test(UseSSE) && expr1 || expr2`
Since `&&` has higher precedence than `||`, the implicit precedence is equivalent to
`(test(UseSSE) && expr1) || expr2`
But the intented grouping is
`test(UseSSE) && (expr1 || expr2)`
The affected transforms are for cmovXXX_reg_LEGT, cmovXXX_reg_EQNE, and cmovXXX_reg_LTGE.
There are other transforms nearby that have similar predicates involving UseSSE, but properly grouped as suggested above by having the necessary parens.
- blocks
-
JDK-8322757 Enable -Wparentheses warnings
-
- Resolved
-
- relates to
-
JDK-8322879 Eliminate -Wparentheses warnings in x86-32 code
-
- Resolved
-