The consequence is that you can't mix MMX and oating point operations. After using MMX operations and before using oating point operations, you have to call the routine EMMS of the MMX unit. This routine restores the FPU registers.
Careful: The compiler doesn't warn if you mix oating point and MMX operations, so be careful.
The MMX instructions are optimized for multi media (what else?). So it isn't possible to perform each operation, some operations give a type mismatch, see section 5.4 for the supported MMX operations
An important restriction is that MMX operations aren't range or over ow checked, even when you turn range and over ow checking on. This is due to the nature of MMX operations.
The MMX unit must always be used when doing MMX operations because the exit code of this unit clears the MMX unit. If it wouldn't do that, other program will crash. A consequence of this is that you can't use MMX operations in the exit code of your units or programs, since they would interfere with the exit code of the MMX unit. The compiler can't check this, so you are responsible for this!