-
Bug
-
Resolution: Fixed
-
P4
-
11, 14
-
b22
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8246139 | 13.0.4 | Martin Doerr | P4 | Resolved | Fixed | b03 |
JDK-8233991 | 11.0.7-oracle | Martin Doerr | P4 | Resolved | Fixed | b01 |
JDK-8234578 | 11.0.6 | Martin Doerr | P4 | Resolved | Fixed | b05 |
C1's PatchingStub copies bytes from the method's regular code area to a dedicated patching template which gets copied back when the patching work is completed.
Currently, C1's PatchingStub with PatchID "access_field_id" copies all bytes between the PatchingStub's instanciation and the patching_epilog call.
This is not only more than necessary, it can cause _bytes_to_copy to exceed its one byte limitation: emit_int8(_bytes_to_copy).
On some platforms, code for VerifyOops is part of the code which gets copied forth and back. This is unnecessary and should be avoided.
Note that the template for PatchID "access_field_id" never gets executed, so there's no reason for copying more than the code to be patched.
So there are basically 2 issues:
- Possible size overflow (depending on platform and activated features)
- Wasted code cache space
Currently, C1's PatchingStub with PatchID "access_field_id" copies all bytes between the PatchingStub's instanciation and the patching_epilog call.
This is not only more than necessary, it can cause _bytes_to_copy to exceed its one byte limitation: emit_int8(_bytes_to_copy).
On some platforms, code for VerifyOops is part of the code which gets copied forth and back. This is unnecessary and should be avoided.
Note that the template for PatchID "access_field_id" never gets executed, so there's no reason for copying more than the code to be patched.
So there are basically 2 issues:
- Possible size overflow (depending on platform and activated features)
- Wasted code cache space
- backported by
-
JDK-8233991 C1: PatchingStub for field access copies too much
- Resolved
-
JDK-8234578 C1: PatchingStub for field access copies too much
- Resolved
-
JDK-8246139 C1: PatchingStub for field access copies too much
- Resolved
- relates to
-
JDK-8234645 ARM32: C1: PatchingStub for field access: not enough bytes
- Resolved
-
JDK-8231757 [ppc] Fix VerifyOops. Errors show since 8231058.
- Resolved
-
JDK-8260502 [s390] NativeMovRegMem::verify() fails because it's too strict
- Resolved
(1 relates to)