This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH,ARM] Define simple_alu_shift value for type attribute


On 17/12/12 10:37, Greta Yorsh wrote:
The attribute "type" for UXTB, UXTH, SXTB, and SXTH is set to
"simple_alu_imm" if tuning is for cortex-a7 and "alu_shift" otherwise (since
r193996). The problem is that attributes should not depend on a specific CPU
or tuning. To eliminate the dependency, this patch introduces a new value
for "type" attribute, called "simple_alu_shift" and updates the relevant
insn definitions. This patch also updates all existing pipeline descriptions
to use simple_alu_shift in the same way as alu_shift.

The motivation for this patch is cortex-a7 pipeline description that will be
submitted separately and will handle simple_alu_shift differently from
alu_shift.

No regression on qemu for arm-none-eabi Cortex-A15.

No difference in generated assembly when compiling all of the preprocessed
sources of gcc 4.8 as a test in various configurations: -mcpu=cortex-a15
-march=armv6t2 -marm/-mthumb -O0/-O1/-O2/-O3/-Os.

Ok for trunk?

Thanks,
Greta

2012-12-05 Greta Yorsh <Greta.Yorsh@arm.com>

         * config/arm/arm.md (type): Add "simple_alu_shift" to attribute
"type".
         (core_cycles): Update for simple_alu_shift.
         (thumb1_zero_extendhisi2,arm_zero_extendhisi2_v6): Use
simple_alu_shift
         instead of a CPU-speicific condition for "type" attribute.
         (thumb1_zero_extendqisi2_v6,arm_zero_extendqisi2_v6): Likewise.
         (thumb1_extendhisi2,arm_extendhisi2_v6,arm_extendqisi_v6): Likewise.
         (thumb1_extendqisi2): Likewise.
         * config/arm/thumb2.md (thumb2_extendqisi_v6): Likewise.
         (thumb2_zero_extendhisi2_v6,thumb2_zero_extendqisi2_v6) Likewise.
         * config/arm/arm1020e.md (alu_shift_op): Use simple_alu_shift.
         * config/arm/arm1026ejs.md (alu_shift_op): Likewise.
         * config/arm/arm1136jfs.md (11_alu_shift_op): Likewise.
         * config/arm/arm926ejs.md (9_alu_op): Likewise.
         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Likewise.
         * config/arm/cortex-a5.md (cortex_a5_alu_shift): Likewise.
         * config/arm/cortex-a8.md (cortex_a8_alu_shift,cortex_a8_mov):
Likewise.
         * config/arm/cortex-a9.md (cortex_a9_dp,cortex_a9_dp_shift):
Likewise.
         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
         * config/arm/cortex-r4.md (cortex_r4_alu_shift): Likewise.
         * config/arm/fa526.md (526_alu_shift_op): Likewise.
         * config/arm/fa606te.md (fa606te_core): Likewise.
         * config/arm/fa626te.md (626te_alu_shift_op): Likewise.
         * config/arm/fa726te.md (726te_alu_shift_op): Likewise.
         * config/arm/fmp626.md (mp626_alu_shift_op): Likewise.



OK.


R.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]