This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: contributing altivec changes



On Wednesday, October 31, 2001, at 12:36 PM, Aldy Hernandez wrote:
>   	mq		(not saved; best to use it if we can)
>   	ctr		(not saved; when we have the choice ctr is better)
>   	lr		(saved)
> !         cr5, r1, r2, ap, xer (fixed)
>
> + 	AltiVec registers:
> + 	v0 - v1         (not saved or used for anything)
> + 	v13 - v3        (not saved; incoming vector arg registers)
> + 	v2              (not saved; incoming vector arg reg; return value)
> + 	v19 - v14       (not saved or used for anything)
> + 	v31 - v20       (saved; order given to save least number)
> + */

I suggest you add VRSAVE now; you'll need it eventually.

>   ;; Define an insn type attribute.  This is used in function unit delay
>   ;; computations.
> ! (define_attr "type" 
> "integer,load,store,fpload,fpstore,imul,lmul,idiv,ldiv,branch,compare,cr_logical,
> delayed_compare,fpcompare,mtjmpr,fp,dmul,sdiv,ddiv,ssqrt,dsqrt,jmpreg,altivec"
>     (const_string "integer"))

You'll need more than one altivec insn type also.  Take a look at the
functional units.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]