Sparc assembler help (jdk13 port)

John-Mark Gurney gurney_j at
Tue Feb 17 20:51:41 PST 2004

Greg Lewis wrote this message on Mon, Feb 16, 2004 at 23:30 -0700:
> I'm trying to get the jdk13 port running on sparc64.  Unfortunately JDK
> 1.3.1 runs on the Sparc in 32 bit mode under Solaris, so there were a
> number of 32 bit vs. 64 bit problems.  I think I've got most of the initial
> stage of the build working correctly, however I'm running into some trouble
> with the assembler code which 'translates the "Java" calling convention
> into the "C" * calling convention used in native methods'.  Since the code
> was written for 32 bit mode it assumes a pointer can be passed in a single
> 32 bit register, etc.  Unfortunately my knowledge of assembler is very
> limited and in particular I know nothing about Sparc assembler.
> I'd love to hear from someone who knows some Sparc assembler and in
> particular how FreeBSD calls functions (i.e. how the arguments are
> placed into registers or on the stack).  Short of this, some pointers
> to the right information may eventually yield some results.

I have some experience in assembly, and can try to answer your questions..

Sparcs put the arguments into the o? registers (upto to 8)...

You might want to check out, and look at the SPARCv9 arch
manual...  check out chapter 5 which talks about registers...

> The code itself is quite short, however I can't post it due to the way Sun
> licenses their Java source code.  If you've compiled any of the jdk* ports
> though, then you've agreed to the appropriate license (Sun Community Source
> License).

I did d/l the sun java code a while back.. j2sdk-1_3_1-src.tar.gz..
guess it wasn't as far back as I thought.. :)

> Note that I'm working on getting jdk13 working with the Classic VM.  The
> HotSpot VM is a whole lot more work (which is also why I'm not starting
> with the jdk14 port).

  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."

More information about the freebsd-sparc64 mailing list