[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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)
>  public:
>  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).

Cheers,
Carlos.


Reply to: