On Mon, Feb 15, 2016 at 12:17:50PM -0800, Mark Millard wrote:
> On 2016-Feb-15, at 11:11 AM, Roman Divacky <rdivacky at vlakno.cz> wrote:
> > 
> > Mark, I believe you're right. What do you think about this patch?
> > 
> > Index: tools/clang/lib/CodeGen/TargetInfo.cpp
> > ===================================================================
> > --- tools/clang/lib/CodeGen/TargetInfo.cpp  (revision 260852)
> > +++ tools/clang/lib/CodeGen/TargetInfo.cpp  (working copy)
> > @@ -3599,6 +3599,8 @@
> >   {
> >     CGF.EmitBlock(UsingOverflow);
> > 
> > +    Builder.CreateStore(Builder.getInt8(11), NumRegsAddr);
> > +
> >     // Everything in the overflow area is rounded up to a size of at least 
> > 4.
> >     CharUnits OverflowAreaAlign = CharUnits::fromQuantity(4);
> > 
> > 
> > Can you test it?
> 
> It may be later today before I can start the the test process.
> 
> While your change is not wrong as presented, it does seem to be based on the 
> ABI document's numbering with the range 3 <= gr <12, where 3 <= gr < 11 cover 
> r3-r10 use and gr=11 implies overflow stack area use. (gr being the ABI 
> documents name.)
> 
> The clang code generation that I saw while analyzing the problem and the 
> clang source that you had me look at did not use that numbering. Instead it 
> seems to be based on 0 <= gpr < 9, where 0 <= gpr < 8 cover r3-r10 use and 
> gpr=8 implies overflow stack area use. (gpr being what gdb showed me as I 
> remember.) In other words: clang counts the number of "parameter registers" 
> already in use as it goes along instead of tracking register numbers that 
> have been used.
> 
> So assigning any value that appears to be positive and >= 8 should work, such 
> as:
> 
> Builder.CreateStore(Builder.getInt8(8), NumRegsAddr);

Can you check what number gcc uses? We want to be interoperable with gcc.

Anyway, thanks for testing!

Roman
_______________________________________________
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to