Re: State of openjdk on hppa
On Tue, Jan 5, 2010 at 1:13 PM, Tom Rodriguez <Thomas.Rodriguez@sun.com> wrote:
>> please could one of the hotspot developers sched some light on this, how easy this might to be fix, and if there are other assumptions?
> Could you give more detail on where exactly the direction of growth is being assumed? I know there's an accessor in frame that's supposed to describe the direction of growth of the expression stack which is used a few places in the code:
The usual problem faced by HPPA is that it is one of the few
stack-grows-up targets, therefore it is the *missing* calls to
interpreter_frame_expression_stack_direction() that a porter has to
determine. There is no easy way to know this other than debugging a
failed application and determining that a section of code is assuming
stack-grows-down and should instead call the appropriate accessor
function to determine stack growth. I don't know if there are any such
instances in the hotspot code.
> // expression stack (may go up or down, direction == 1 or -1)
> intptr_t* interpreter_frame_expression_stack() const;
> static jint interpreter_frame_expression_stack_direction();
> I would think this has to be set correctly for HPPA to work. Is it? It's possible that the C++ interpreter would also need to consult this when pushing values for it to work correctly.
Given that HPPA is a stack-grows-up target, is the value of this constant 1?
All interpreters that manually manipulate the stack must know the
direction of stack growth (and alignment of stack).