[Math-atlas-commits] CVS: AtlasBase/TexDoc atlas_contrib.tex,1.7,1.8
Brought to you by:
rwhaley,
tonyc040457
From: R. C. W. <rw...@us...> - 2003-02-12 22:08:41
|
Update of /cvsroot/math-atlas/AtlasBase/TexDoc In directory sc8-pr-cvs1:/tmp/cvs-serv11486 Modified Files: atlas_contrib.tex Log Message: added start of sparc assembler summary Index: atlas_contrib.tex =================================================================== RCS file: /cvsroot/math-atlas/AtlasBase/TexDoc/atlas_contrib.tex,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** atlas_contrib.tex 21 Jan 2003 22:29:03 -0000 1.7 --- atlas_contrib.tex 12 Feb 2003 22:08:34 -0000 1.8 *************** *** 2941,2945 **** \begin{center} \begin{tabular}{||l|l|l||}\hline\hline ! & & USER\\ REGISTER & USAGE & SAVE\\\hline\hline \%eax & integer return val & NO\\\hline --- 2941,2945 ---- \begin{center} \begin{tabular}{||l|l|l||}\hline\hline ! & & CALLEE\\ REGISTER & USAGE & SAVE\\\hline\hline \%eax & integer return val & NO\\\hline *************** *** 2968,2972 **** ! Registers marked as USER~SAVE~=~YES must be explicitly saved by any functions which write them. Registers marked NO are scratch registers whose values need not be saved. EAX is used by intergral functions to --- 2968,2972 ---- ! Registers marked as CALLEE~SAVE~=~YES must be explicitly saved by any functions which write them. Registers marked NO are scratch registers whose values need not be saved. EAX is used by intergral functions to *************** *** 3111,3115 **** \begin{center} \begin{tabular}{||l|l|l||}\hline\hline ! & & USER\\ REGISTER & USAGE & SAVE\\\hline\hline \%rsp & Stack pointer & YES\\\hline --- 3111,3115 ---- \begin{center} \begin{tabular}{||l|l|l||}\hline\hline ! & & CALLEE\\ REGISTER & USAGE & SAVE\\\hline\hline \%rsp & Stack pointer & YES\\\hline *************** *** 3166,3168 **** --- 3166,3212 ---- register, for instance), both in register passing and in stack passing. + \subsection{Some notes on Sparc assembler} + \subsubsection{Register usage} + Table~\ref{tab-sparc-iregs} shows the integer registers available on the + sparc. + \begin{table}[hbt] + \begin{center} + \begin{tabular}{||l|l|l||}\hline\hline + & & CALLEE\\ + REGISTER & USAGE & SAVE\\\hline\hline + \multicolumn{3}{||c||}{\bf Global Registers}\\\hline\hline + \%g0 (\%r0) & Always zero& NO \\\hline + \%g1 (\%r1) & N/A & NO \\\hline + \%g2 (\%r2) & N/A & YES \\\hline + \%g3 (\%r3) & N/A & YES \\\hline + \%g4 (\%r4) & N/A & YES \\\hline + \%g5 (\%r5) & N/A & YES \\\hline + \%g6 (\%r6) & N/A & YES \\\hline + \%g7 (\%r7) & N/A & YES \\\hline\hline + \multicolumn{3}{||c||}{\bf Out Registers} \\\hline\hline + \%o0 (\%r8) & Return value from callee & NO\\ + & outgoing arg 1 to caller &\\\hline + \%o1 (\%r9) & outgoing arg 2 to caller & NO \\\hline + \%o2 (\%r10) & outgoing arg 3 to caller & NO \\\hline + \%o3 (\%r11) & outgoing arg 4 to caller & NO \\\hline + \%o4 (\%r12) & outgoing arg 5 to caller & NO \\\hline + \%o5 (\%r13) & outgoing arg 6 to caller & NO \\\hline + \%o6/\%sp (\%r14) & Stack pointer & YES \\\hline + \%o7 (\%r15) & scratch/@ of CALL inst. & NO \\\hline\hline + \multicolumn{3}{||c||}{\bf Local Registers} \\\hline\hline + \%l0-\%l7 (\%r16-\%r23) & scratch registers & NO \\\hline\hline + \multicolumn{3}{||c||}{\bf In Registers} \\\hline\hline + \%i0 (\%r24) & incoming arg 1 & YES \\\hline + \%i1 (\%r25) & incoming arg 2 & YES \\\hline + \%i2 (\%r26) & incoming arg 3 & YES \\\hline + \%i3 (\%r27) & incoming arg 4 & YES \\\hline + \%i4 (\%r28) & incoming arg 5 & YES \\\hline + \%i5 (\%r29) & incoming arg 6 & YES \\\hline + \%i6/\%fp (\%r30) & frame pointer & YES \\\hline + \%i7 (\%r31) & return address - 8 & YES \\\hline\hline + \end{tabular} + \end{center} + \caption{Sparc integer register summary\label{tab-sparc-iregs}} + \end{table} + \subsubsection{The calling sequence and stack frame} \end{document} |