-
Enhancement
-
Resolution: Won't Fix
-
P4
-
None
-
hs22, 9, 10
-
sparc
-
generic
If we wanted to be clever about the delay slot issue we could add an function like maybe_delayed() that would emit the instruction in a side buffer and place it in the right place for these instructions. Basically you could emit it as if it were not delayed and then move it into the delay slot if you actually have one. So instead of:
__ br_null(G3_scratch, false, __ pt, skip_fixup, false);
__ delayed()->ld_ptr(G5_method, in_bytes(methodOopDesc::interpreter_entry_offset()), G3_scratch);
you do
__ maybe_delayed()->ld_ptr(G5_method, in_bytes(methodOopDesc::interpreter_entry_offset()), G3_scratch);
__ br_null(G3_scratch, false, __ pt, skip_fixup);
It's a little tweaky but it would allow cbcond to be used in more places.
tom
__ br_null(G3_scratch, false, __ pt, skip_fixup, false);
__ delayed()->ld_ptr(G5_method, in_bytes(methodOopDesc::interpreter_entry_offset()), G3_scratch);
you do
__ maybe_delayed()->ld_ptr(G5_method, in_bytes(methodOopDesc::interpreter_entry_offset()), G3_scratch);
__ br_null(G3_scratch, false, __ pt, skip_fixup);
It's a little tweaky but it would allow cbcond to be used in more places.
tom
- relates to
-
JDK-8016194 BA instructions should not execute NOP in delay slot
-
- Closed
-