This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB 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: [rfa?] Add frame_align(); Was: ARM stack alignment on hand called functions


> >> >> +/* Ensure that the ARM's stack pointer has the correct alignment for a
> >> >> +   new frame.  */
> >> >> +static CORE_ADDR
> >> >> +arm_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
> >> >> +{
> >> >> +  return (addr & -16);
> >> >> +}
> > 
> >> > 
> >> > 
> >> > Yuck, two's complement assumption.  I much prefer ~0xf in this case.
> >> > 
> >> > But why so much.  The maximum stack alignment you'll see on an ARM is 8 
> >> > bytes.
> > 
> >> 
> >> The function was lifted from the PPC code.  And, hey, what's a few extra 
> >> bytes between friends? :-)
> >> 
> >> Does (addr & 0x7) look better?
> >> 
> >> Andrew
> >> 
> >> 
> > 
> > 
> > As discussed elsewhere, the best solution (IMO) is
> > 
> > 	 ~(CORE_ADDR)0x7
> 
> You mean ~(ULONGEST)0x7?
> 
> 

I mean ~(typeof(addr)) 0x7.

R.


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