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]
Other format: [Raw text]

Re: [TESTCASE] Minimized testcase for AltiVec segfault



On Thursday, February 28, 2002, at 02:49  PM, Dale Johannesen wrote:

>
> On Wednesday, February 27, 2002, at 07:38 PM, Kumar Gala wrote:
>> That would be good (on LinuxPPC the default should be for vrsave to be 
>> disabled).  I am not sure how register allocation is handled on 
>> darwin/MacOS-X ABI.  Maybe one of the Apple guys can pipe up, Stan?  
>> My guess would be that it does not differ much from how it is handled 
>> on MacOS.  (I could be wrong).
>
> The usual lreg/greg algorithms are used; it's not necessarily in any 
> order.
> By prologue/epilogue generation time we know which Vregs were used in 
> the function.
> If needed, the old value of VRsave is saved on the stack and VRsave is 
> ORed with
> a mask indicating which regs are used in the function.  This must be 
> done before
> any Vreg is actually used.  At epilogue the old VRsave is restored, and 
> this must
> be after all Vreg uses.  Interrupt handlers, context switch, etc. are 
> responsible
> for saving/restoring whichever Vregs are indicated by VRsave, i.e. it 
> is expected
> to be up to date (or overly conservative) all the time.  When 
> non-Altivec code
> is running, VRsave will be 0, which means there's no save/restore 
> overhead.

in other words, it works exactly the same as for all the other ppc
variants? :-)

>
>
--
Aldy Hernandez                                E-mail: aldyh@redhat.com
Professional Gypsy Lost in Australia
Red Hat, Inc.


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