Details
-
Bug
-
Resolution: Fixed
-
P3
-
11, 17, 18, 19
-
b04
-
arm
-
linux
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8281989 | 18.0.2 | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8281188 | 18.0.1 | Tobias Hartmann | P3 | Resolved | Fixed | b06 |
JDK-8279507 | 17.0.3-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8279679 | 17.0.3 | Aleksey Shipilev | P3 | Resolved | Fixed | b01 |
JDK-8279440 | 11.0.15-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8279681 | 11.0.15 | Aleksey Shipilev | P3 | Resolved | Fixed | b01 |
Description
The list includes
java/math/BigDecimal/DivideMcTests
java/util/Arrays/Sorting.java
java/util/Arrays/SortingNearlySortedPrimitive.java
java/util/concurrent/tck/JSR166TestCase
java/util/stream/SliceOpTest.java
etc
It appears C1 comp_op for long operands destroys arguments registers:
void LIR_Assembler::comp_op(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2, LIR_Op2* op) {
....
Register ylo = opr2->as_register_lo();
Register yhi = opr2->as_register_hi();
if (condition == lir_cond_equal || condition == lir_cond_notEqual) {
__ teq(xhi, yhi);
__ teq(xlo, ylo, eq);
} else {
__ subs(xlo, xlo, ylo); // <<< incorrect
__ sbcs(xhi, xhi, yhi); // <<< incorrect
}
...
}
The bug persist at all version of JDK since ARM32 code was opensourced.
Attachments
Issue Links
- backported by
-
JDK-8279440 [arm32] C1 longs comparison operation destroys argument registers
- Resolved
-
JDK-8279507 [arm32] C1 longs comparison operation destroys argument registers
- Resolved
-
JDK-8279679 [arm32] C1 longs comparison operation destroys argument registers
- Resolved
-
JDK-8279681 [arm32] C1 longs comparison operation destroys argument registers
- Resolved
-
JDK-8281188 [arm32] C1 longs comparison operation destroys argument registers
- Resolved
-
JDK-8281989 [arm32] C1 longs comparison operation destroys argument registers
- Resolved
- links to
-
Commit openjdk/jdk11u-dev/e1ee008c
-
Commit openjdk/jdk17u-dev/744d785d
-
Commit openjdk/jdk18u/313932af
-
Commit openjdk/jdk/299022df
-
Review openjdk/jdk11u-dev/743
-
Review openjdk/jdk17u-dev/62
-
Review openjdk/jdk18u/15
-
Review openjdk/jdk/6934