JVM HotSpot: what does "reexecute" mean for JIT-compiled code?

5 days ago 3
ARTICLE AD BOX

The JIT-compiled lines can have a reexecute flag. This is related to deoptimization and I guess JVM has to re-interpret this line if it gets deoptimized? But this is all foggy for me, I can't figure out exactly why it's needed.

Most assembly that I see isn't marked for reexecution, but here's an ARMv8 example which is:

ldr x10, [x28, #0x30] ; ImmutableOopMap {c_rarg1=Oop } ;*goto {reexecute=1 rethrow=0 return_oop=0} ; - (reexecute)

Why this particular line? What's so special about it?

Read Entire Article