5.1 What is it about?

Free Pascal supports the new MMX (Multi-Media extensions) instructions of Intel processors. The idea of MMX is to process multiple data with one instruction, for example the processor can add simultaneously 4 words. To implement this efficiently, the Pascal language needs to be extended. So Free Pascal allows to add for example two array[0..3] of word, if MMX support is switched on. The operation is done by the MMX unit and allows people without assembler knowledge to take advantage of the MMX extensions.

Here is an example:

uses  
   MMX;   { include some predefined data types }  
 
const  
   { tmmxword = array[0..3] of word;, declared by unit MMX }  
   w1 : tmmxword = (111,123,432,4356);  
   w2 : tmmxword = (4213,63456,756,4);  
 
var  
   w3 : tmmxword;  
   l : longint;  
 
begin  
   if is_mmx_cpu then  { is_mmx_cpu is exported from unit mmx }  
     begin  
{$mmx+}   { turn mmx on }  
        w3:=w1+w2;  
{$mmx-}  
     end  
   else  
     begin  
        for i:=0 to 3 do  
          w3[i]:=w1[i]+w2[i];  
     end;  
end.