On Thu, 12 Jun 2003, Kris Kennaway wrote: > On Thu, Jun 12, 2003 at 12:44:51AM -0700, Kris Kennaway wrote: > > > + leal 24(%esp), %eax /* base of newly allocated space */ > > After I figured out what the 24(...) meant ("add 24 to ...") it's > clear that this isn't a fix (except in the special case of PPPoE > support ;-). gcc's builtin inline alloca() is tuning that offset > value at compile-time, so alloca.S is just broken (and has been since > 386BSD, looks like), but it's beyond my pattern-monkey asm skills to > fix. Something like that is needed just to realign the stack frame. Alignment of the (eventual) stack to at least a 16-byte boundary is now required. Since the required alignment depends on the compiler vendor version and flags, and possibly on the calling function's environment, this is impossible to do in all cases. It may be possible to keep current gcc cases working by not disturbing the the stack's alignment mod 16 relative to what it was when the function was called. I don't think misalignment of the stack could cause the current problems. Those are more likely to be caused by "copy possible [sic] saved registers" (see tjr's mail about pushl vs movl to the stack). BruceReceived on Thu Jun 12 2003 - 13:48:21 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:11 UTC