-
Enhancement
-
Resolution: Unresolved
-
P4
-
20
If the stack addresses stored in interpreter frames were FP relative offsets, this would help or maybe eliminate the slow path for freezing and thawing frames.
eg. the x86 frame has stack addresses for pointer to locals, last sp, old stack pointer, old frame pointer. We will have subtasks of this RFE for changing each.
This task should be done for all the platforms at once so we'll need help with testing on some platforms.
// ------------------------------ Asm interpreter ----------------------------------------
// Layout of asm interpreter frame:
// [expression stack ] * <- sp
// [monitors ] \
// ... | monitor block size
// [monitors ] /
// [monitor block size ]
// [byte code pointer ] = bcp() bcp_offset
// [pointer to locals ] = locals() locals_offset
// [constant pool cache ] = cache() cache_offset
// [methodData ] = mdp() mdx_offset
// [Method* ] = method() method_offset
// [last sp ] = last_sp() last_sp_offset
// [old stack pointer ] (sender_sp) sender_sp_offset
// [old frame pointer ] <- fp = link()
// [return pc ]
// [oop temp ] (only for native calls)
// [locals and parameters ]
// <- sender sp
// ------------------------------ Asm interpreter ----------------------------------------
eg. the x86 frame has stack addresses for pointer to locals, last sp, old stack pointer, old frame pointer. We will have subtasks of this RFE for changing each.
This task should be done for all the platforms at once so we'll need help with testing on some platforms.
// ------------------------------ Asm interpreter ----------------------------------------
// Layout of asm interpreter frame:
// [expression stack ] * <- sp
// [monitors ] \
// ... | monitor block size
// [monitors ] /
// [monitor block size ]
// [byte code pointer ] = bcp() bcp_offset
// [pointer to locals ] = locals() locals_offset
// [constant pool cache ] = cache() cache_offset
// [methodData ] = mdp() mdx_offset
// [Method* ] = method() method_offset
// [last sp ] = last_sp() last_sp_offset
// [old stack pointer ] (sender_sp) sender_sp_offset
// [old frame pointer ] <- fp = link()
// [return pc ]
// [oop temp ] (only for native calls)
// [locals and parameters ]
// <- sender sp
// ------------------------------ Asm interpreter ----------------------------------------
- relates to
-
JDK-8314508 Improve how relativized pointers are printed by frame::describe
- Resolved
-
JDK-8300197 Freeze/thaw an interpreter frame using a single copy_to_chunk() call
- Resolved