Mac OS X i486 ABI -- 16-byte stack alignment

steve goldman Steve.Goldman at Sun.COM
Fri Nov 9 08:03:15 PST 2007

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