On Tue, 2010-01-12 at 00:02 +0300, Dan Kruchinin wrote: > Hi, list. > > Are there any gcc-specific rules about stack alignment on x86_64? > I reached quite strange behavior of my program when it passes some float to a function that accepts variable length arguments list > and %rsp contains aligned on 16 bytes boundary address. > Does your code follow "When a function taking variable-arguments is called, %rax must be set to the total number of floating point parameters passed to the function in SSE registers." from section 3.5.7 of the ABI? The default in 64-bit mode is to use the SSE registers for passing floating point arguments. --Bob