Subject: CVS commit: gnusrc/gnu/dist/toolchain/gcc/config/arm
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 08/21/2002 02:46:46
Module Name:	gnusrc
Committed By:	thorpej
Date:		Tue Aug 20 23:46:46 UTC 2002

Modified Files:
	gnusrc/gnu/dist/toolchain/gcc/config/arm: arm.c arm.h arm.md

Log Message:
Changes to better support XScale, round 1, back-ported from GCC 3.2.
The GCC ChangeLog does not have a complete description to quote here,
so:

arm.c:

* arm_override_options(): Set arm_is_scale according to the the
  -mcpu=xscale option.  Set arm_constant_limit to 2 if arm_is_xscale.
* arm_adjust_cost(): If arm_is_xscale, account for stalls that can
  occur due to shifted operands.
* arm_gen_load_multiple(): Account for the cost of ldm vs. ldr if
  arm_is_xscale.
* arm_gen_store_multiple(): Likewise for stm vs. str.

arm.h:

* CONSTANT_ALIGNMENT(): Use a constant alignment factor of 2 if
  arm_is_xscale.
* MOVE_RATIO: Set to 4 if arm_is_xscale.

arm.md:

* Add XScale scheduling parameters.
* Define a "shift" attribute (used by arm_adjust_cost()) and give it
  to the appropriate operands on andsi_not_shiftsi_si, *shiftsi3,
  *shiftsi3_compare0, *shiftsi3_compare0_scratch, *notsi_shiftsi,
  *notsi_shiftsi_compare0, *not_shiftsi_compare0_scratch,
  abssi2, *neg_abssi2, extendsidi2, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
  *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
  *arith_shiftsi_compare0_scratch, *sub_shiftsi, *sub_shiftsi_compare0,
  *sub_shiftsi_compare0_scratch, *if_shift_move, *if_move_shift,
  and *if_shift_shift.


To generate a diff of this commit:
cvs rdiff -r1.6 -r1.7 gnusrc/gnu/dist/toolchain/gcc/config/arm/arm.c
cvs rdiff -r1.5 -r1.6 gnusrc/gnu/dist/toolchain/gcc/config/arm/arm.h
cvs rdiff -r1.4 -r1.5 gnusrc/gnu/dist/toolchain/gcc/config/arm/arm.md

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.