Difference between revisions of "The code generator"
From Lazarus wiki
Jump to navigationJump to searchLine 1: | Line 1: | ||
With the version 1.9.x of FPC the code generator has been completly rewritten to fit the needs of a compiler with multiple processor target support. | With the version 1.9.x of FPC the code generator has been completly rewritten to fit the needs of a compiler with multiple processor target support. | ||
+ | |||
+ | |||
+ | == MM support == | ||
+ | |||
+ | === The shuffle operand === | ||
+ | |||
+ | { this record describes shuffle operations for mm operations; if a pointer a shuffle record | ||
+ | passed to an mm operation is nil, it means that the whole location is moved } | ||
+ | tmmshuffle = record | ||
+ | { describes how many shuffles are actually described, if len=0 then | ||
+ | moving the scalar with index 0 to the scalar with index 0 is meant } | ||
+ | len : byte; | ||
+ | { lower nibble of each entry of this array describes index of the source data index while | ||
+ | the upper nibble describes the destination index } | ||
+ | shuffles : array[1..1] of byte; | ||
+ | end; |
Revision as of 23:12, 20 December 2003
With the version 1.9.x of FPC the code generator has been completly rewritten to fit the needs of a compiler with multiple processor target support.
MM support
The shuffle operand
{ this record describes shuffle operations for mm operations; if a pointer a shuffle record passed to an mm operation is nil, it means that the whole location is moved } tmmshuffle = record { describes how many shuffles are actually described, if len=0 then moving the scalar with index 0 to the scalar with index 0 is meant } len : byte; { lower nibble of each entry of this array describes index of the source data index while the upper nibble describes the destination index } shuffles : array[1..1] of byte; end;