Mac OS X i486 ABI -- 16-byte stack alignment
Paul Hohensee
Paul.Hohensee at Sun.COM
Fri Nov 9 09:14:36 PST 2007
I didn't say it'd be easy. :)
btw, Steve of course knows this :) , but sparc doesn't cut back the
stack on calls
because of the register save area at the top of the frame, which latter
doesn't
exist on x86.
Paul
steve goldman wrote:
> Paul Hohensee wrote:
>> You're right about x64. My bad.
>>
>> Another possibility is to adopt the sparc paradigm whereby the max size
>> java expression stack is allocated in the top interpreter frame and
>> cut back
>> on calls. You can maintain 16-byte stack alignment at all times in
>> the interpreter
>> that way, which would allow you to properly align the stack at call
>> sites before
>> you push arguments onto the stack, rather than in the call_VM wrappers.
>>
>
> Ack. This would be exceedingly painful on 32bit because sp takes on
> the role of SP and Lesp from sparc. It's not like 32bit has any spare
> registers laying around to become the equivalent of Lesp. Now if you
> were using the c++ based interpreter that would be another story. :-)
>
> (BTW sparc doesn't cut back the stack on interpreter calls except when
> using the c++ interpreter. sparc is an interpreter stack space hog.)
>
More information about the hotspot-dev
mailing list