x264 is written in C. The particular variant of C is: intersection of C99 and gcc>=3.4. checkasm is written in gcc, with no attempt at compatibility with anything else. We make the following additional assumptions which are true of real systems but not guaranteed by C99: * Two's complement. * Signed right-shifts are sign-extended. * int is 32-bit or larger. x86-specific assumptions: * The stack is 16-byte aligned. We align it on entry to libx264 and on entry to any thread, but the compiler must preserve alignment after that. * We call emms before any float operation and before returning from libx264, not after each mmx operation. So bad things could happen if the compiler inserts float operations where they aren't expected.