diff options
Diffstat (limited to 'gcc/tm.texi')
-rw-r--r-- | gcc/tm.texi | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/gcc/tm.texi b/gcc/tm.texi index 9f704032f63..9b447126f81 100644 --- a/gcc/tm.texi +++ b/gcc/tm.texi @@ -4574,22 +4574,25 @@ if the @samp{mov@var{m}} pattern's constraints do not allow such copying. @item MEMORY_MOVE_COST (@var{mode}, @var{class}, @var{in}) A C expression for the cost of moving data of mode @var{mode} between a register of class @var{class} and memory; @var{in} is zero if the value -is to be written to memory, non-zero if it is to be read in. If this -macro is not defined, the default cost is assumed to be 4, plus any costs -that would be incurred copying via a secondary reload register, if -needed. This cost is relative to those in @code{REGISTER_MOVE_COST}. - -If moving between registers and memory is more expensive than between -two registers, you should define this macro to express the relative cost. - -If a secondary reload register would be required for @var{class}, but the -reload mechanism is more complex than copying via an intermediate, this -macro should be defined to reflect the actual cost of the move. - -The function @code{memory_move_secondary_cost}, which is defined if -secondary reloads are needed, will compute the costs due to copying; you -can use this function if you need to take other factors into account as -well, or if the default base value of 4 is not correct for your machine. +is to be written to memory, non-zero if it is to be read in. This cost +is relative to those in @code{REGISTER_MOVE_COST}. If moving between +registers and memory is more expensive than between two registers, you +should define this macro to express the relative cost. + +If you do not define this macro, GNU CC uses a default cost of 4 plus +the cost of copying copying via a secondary reload register, if one is +needed. If your machine requires a secondary reload register to copy +between memory and a register of @var{class} but the reload mechanism is +more complex than copying via an intermediate, define this macro to +reflect the actual cost of the move. + +GNU CC defines the function @code{memory_move_secondary_cost} if +secondary reloads are needed. It computes the costs due to copying via +a secondary register. If your machine copies from memory using a +secondary register in the conventional way but the default base value of +4 is not correct for your machine, define this macro to add some other +value to the result of that function. The arguments to that function +are the same as to this macro. @findex BRANCH_COST @item BRANCH_COST |