[x265] ASM crash in r6706

Jason Garrett-Glaser jason at x264.com
Fri Apr 18 19:47:16 CEST 2014


> In this case, they pass a align stack to our code, but cglobal push 3
> registers, so broken stack align.

I don't understand what you mean.  x264asm knows what the stack
alignment is, so when it allocates scratch space, it references
aligned locations on the stack.  It doesn't matter how many registers
it pushes; if it pushes 12 bytes of registers, it references locations
that are 12 bytes off from where it would if there were no registers
pushed.

"esp" itself may not be aligned, but that's fine, because no data is
ever accessed directly from esp -- it's accessed from aligned
locations on the stack.  That's how stack alignment works. esp only
needs to be aligned if the function calls another function, but
x264asm is for leaf functions, so that doesn't apply.

Jason


More information about the x265-devel mailing list