A question on SPARC ABI and Instruction clocks

bala@wipinfo.soft.net bala@wipinfo.soft.net
Fri Oct 1 00:00:00 GMT 1999


Could someone answer the following questions please? I'd very much
appreciate a quick answer or a pointer to some resource.

Thank you very much,
Bala
(bala@wipinfo.soft.net)

(1) Where do I get information on the number of clock cycles each SPARC 
    instruction in V9 architecture takes? We are writing an engine that 
    generates SPARC V9 instructions for execution and we need this info
    quite desperately. Our hardware V9 implementation is by SUN SPARC.

(2) We have the SPARC V9 architecture manual, but it doesn't contain the
    anything about the Application Binary Interface (ABI) specification. 
    We generate SPARC V9 instructions that interface with code that is 
    written in C & compiled with the SUN Solaris compiler. We need to know 
    the parameter passing conventions (like how a structure is passed if it 
    is less than 16 bytes, how a structure is returned if it is greater than 
    32 bytes, how floating point values are passed) among other things -- 
    hence we need the specification in its entirety.

    We are looking for V9 ABI details like:

(*) The %sp and %fp registers are actually offset by 2047.
(*) Structure arguments that are larger 16 bytes will go into memory on
    a call; those less than 17 bytes go into registers (if we don't run
    out of the %o0-5 registers).
(*) Structures greater than 32 bytes that are returned from a function
    will need the caller to pass a pointer to an area that'd hold the
    structure on return, as the first parameter. If it is less than 33
    bytes, it goes into %o0-%03.

The above details were figured out by writing programs for V9 & looking
at the disassembly. What we need is the complete list of such details,
which will be part of the ABI specification for V9. I have searched the web 
for the specification document without success.


More information about the Gcc-help mailing list