diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 38 | ||||
-rw-r--r-- | gcc/config/arm/arm-cpus.in | 189 | ||||
-rw-r--r-- | gcc/config/arm/arm-fixed.md | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm-protos.h | 3 | ||||
-rw-r--r-- | gcc/config/arm/arm-tables.opt | 141 | ||||
-rw-r--r-- | gcc/config/arm/arm-tune.md | 68 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 20 | ||||
-rw-r--r-- | gcc/config/arm/arm.h | 3 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 24 | ||||
-rw-r--r-- | gcc/config/arm/t-arm-elf | 2 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 |
12 files changed, 130 insertions, 374 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ce3dc01..a20554e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,43 @@ 2018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * config/arm/arm-cpus.in (armv3m, mode32): Delete features. + (ARMv4): Update. + (ARMv2, ARMv3, ARMv3m): Delete fgroups. + (ARMv6m): Update. + (armv2, armv2a, armv3, armv3m): Delete architectures. + (arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620, + arm7, arm7d, arm7di, arm70, arm700, arm700i, arm710, arm720, + arm710c, arm7100, arm7500, arm7500fe, arm7m, arm7dm, arm7dmi): + Delete cpus. + * config/arm/arm.md (maddsidi4): Remove check for arm_arch3m. + (*mulsidi3adddi): Likewise. + (mulsidi3): Likewise. + (*mulsidi3_nov6): Likewise. + (umulsidi3): Likewise. + (umulsidi3_nov6): Likewise. + (umaddsidi4): Likewise. + (*umulsidi3adddi): Likewise. + (smulsi3_highpart): Likewise. + (*smulsi3_highpart_nov6): Likewise. + (umulsi3_highpart): Likewise. + (*umulsi3_highpart_nov6): Likewise. + * config/arm/arm.h (arm_arch3m): Delete. + * config/arm/arm.c (arm_arch3m): Delete. + (arm_option_override_internal): Update armv3-related comment. + (arm_configure_build_target): Delete use of isa_bit_mode32. + (arm_option_reconfigure_globals): Delete set of arm_ach3m. + (arm_rtx_costs_internal): Delete check of arm_arch3m. + * config/arm/arm-fixed.md (mulsq3): Delete check for arm_arch3m. + (mulsa3): Likewise. + (mulusa3): Likewise. + * config/arm/arm-protos.h (arm_arch3m): Delete. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Likewise. + * config/arm/t-arm-elf (all_early_nofp): Delete mentions of + deleted architectures. + +2018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * config/arm/arm-cpus.in (armv5, armv5e): Delete features. (armv5t, armv5te): New features. (ARMv5, ARMv5e): Delete fgroups. diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in index 0a31887..16a381c 100644 --- a/gcc/config/arm/arm-cpus.in +++ b/gcc/config/arm/arm-cpus.in @@ -48,15 +48,9 @@ # Features - general convention: all lower case. -# Extended multiply -define feature armv3m - # 26-bit mode support define feature mode26 -# 32-bit mode support -define feature mode32 - # Architecture rel 4 define feature armv4 @@ -215,10 +209,7 @@ define fgroup ALL_FPU_INTERNAL vfpv2 vfpv3 vfpv4 fpv5 fp16conv fp_dbl ALL_SIMD_I # -mfpu support. define fgroup ALL_FP fp16 ALL_FPU_INTERNAL -define fgroup ARMv2 notm -define fgroup ARMv3 ARMv2 mode32 -define fgroup ARMv3m ARMv3 armv3m -define fgroup ARMv4 ARMv3m armv4 +define fgroup ARMv4 armv4 notm define fgroup ARMv4t ARMv4 thumb define fgroup ARMv5t ARMv4t armv5t define fgroup ARMv5te ARMv5t armv5te @@ -232,7 +223,7 @@ define fgroup ARMv6zk ARMv6k define fgroup ARMv6t2 ARMv6 thumb2 # This is suspect. ARMv6-m doesn't really pull in any useful features # from ARMv5* or ARMv6. -define fgroup ARMv6m mode32 armv3m armv4 thumb armv5t armv5te armv6 be8 +define fgroup ARMv6m armv4 thumb armv5t armv5te armv6 be8 # This is suspect, the 'common' ARMv7 subset excludes the thumb2 'DSP' and # integer SIMD instructions that are in ARMv6T2. */ define fgroup ARMv7 ARMv6m thumb2 armv7 @@ -279,34 +270,6 @@ define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd # end arch <name> # -begin arch armv2 - tune for arm2 - tune flags CO_PROC NO_MODE32 - base 2 - isa ARMv2 mode26 -end arch armv2 - -begin arch armv2a - tune for arm2 - tune flags CO_PROC NO_MODE32 - base 2 - isa ARMv2 mode26 -end arch armv2a - -begin arch armv3 - tune for arm6 - tune flags CO_PROC - base 3 - isa ARMv3 mode26 -end arch armv3 - -begin arch armv3m - tune for arm7m - tune flags CO_PROC - base 3M - isa ARMv3m mode26 -end arch armv3m - begin arch armv4 tune for arm7tdmi tune flags CO_PROC @@ -675,154 +638,6 @@ end arch iwmmxt2 # option must similarly have a distinct feature set. Option aliases can be # added with the optalias statement -# V2/V2A Architecture Processors -begin cpu arm2 - tune flags CO_PROC NO_MODE32 - architecture armv2 - costs slowmul -end cpu arm2 - -begin cpu arm250 - tune flags CO_PROC NO_MODE32 - architecture armv2 - costs slowmul -end cpu arm250 - -begin cpu arm3 - tune flags CO_PROC NO_MODE32 - architecture armv2 - costs slowmul -end cpu arm3 - - -# V3 Architecture Processors -begin cpu arm6 - tune flags CO_PROC - architecture armv3 - costs slowmul -end cpu arm6 - -begin cpu arm60 - tune flags CO_PROC - architecture armv3 - costs slowmul -end cpu arm60 - -begin cpu arm600 - tune flags CO_PROC WBUF - architecture armv3 - costs slowmul -end cpu arm600 - -begin cpu arm610 - tune flags WBUF - architecture armv3 - costs slowmul -end cpu arm610 - -begin cpu arm620 - tune flags CO_PROC WBUF - architecture armv3 - costs slowmul -end cpu arm620 - -begin cpu arm7 - tune flags CO_PROC - architecture armv3 - costs slowmul -end cpu arm7 - -begin cpu arm7d - tune flags CO_PROC - architecture armv3 - costs slowmul -end cpu arm7d - -begin cpu arm7di - tune flags CO_PROC - architecture armv3 - costs slowmul -end cpu arm7di - -begin cpu arm70 - tune flags CO_PROC - architecture armv3 - costs slowmul -end cpu arm70 - -begin cpu arm700 - tune flags CO_PROC WBUF - architecture armv3 - costs slowmul -end cpu arm700 - -begin cpu arm700i - tune flags CO_PROC WBUF - architecture armv3 - costs slowmul -end cpu arm700i - -begin cpu arm710 - tune flags WBUF - architecture armv3 - costs slowmul -end cpu arm710 - -begin cpu arm720 - tune flags WBUF - architecture armv3 - costs slowmul -end cpu arm720 - -begin cpu arm710c - tune flags WBUF - architecture armv3 - costs slowmul -end cpu arm710c - -begin cpu arm7100 - tune flags WBUF - architecture armv3 - costs slowmul -end cpu arm7100 - -begin cpu arm7500 - tune flags WBUF - architecture armv3 - costs slowmul -end cpu arm7500 - -# Doesn't have an external co-proc, but does have embedded FPA -# (the FPA part is no-longer supported). -begin cpu arm7500fe - tune flags CO_PROC WBUF - architecture armv3 - costs slowmul -end cpu arm7500fe - - -# V3M Architecture Processors -# arm7m doesn't exist on its own, but only with "D", (and "I"), but -# those don't alter the code, so arm7m is sometimes used. -begin cpu arm7m - tune flags CO_PROC - architecture armv3m - costs fastmul -end cpu arm7m - -begin cpu arm7dm - tune flags CO_PROC - architecture armv3m - costs fastmul -end cpu arm7dm - -begin cpu arm7dmi - tune flags CO_PROC - architecture armv3m - costs fastmul -end cpu arm7dmi - - # V4 Architecture Processors begin cpu arm8 tune flags LDSCHED diff --git a/gcc/config/arm/arm-fixed.md b/gcc/config/arm/arm-fixed.md index b1451e0..18a564b 100644 --- a/gcc/config/arm/arm-fixed.md +++ b/gcc/config/arm/arm-fixed.md @@ -137,7 +137,7 @@ [(set (match_operand:SQ 0 "s_register_operand" "") (mult:SQ (match_operand:SQ 1 "s_register_operand" "") (match_operand:SQ 2 "s_register_operand" "")))] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" { rtx tmp1 = gen_reg_rtx (DImode); rtx tmp2 = gen_reg_rtx (SImode); @@ -159,7 +159,7 @@ [(set (match_operand:SA 0 "s_register_operand" "") (mult:SA (match_operand:SA 1 "s_register_operand" "") (match_operand:SA 2 "s_register_operand" "")))] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" { rtx tmp1 = gen_reg_rtx (DImode); rtx tmp2 = gen_reg_rtx (SImode); @@ -178,7 +178,7 @@ [(set (match_operand:USA 0 "s_register_operand" "") (mult:USA (match_operand:USA 1 "s_register_operand" "") (match_operand:USA 2 "s_register_operand" "")))] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" { rtx tmp1 = gen_reg_rtx (DImode); rtx tmp2 = gen_reg_rtx (SImode); diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h index ea2cf69..8537262 100644 --- a/gcc/config/arm/arm-protos.h +++ b/gcc/config/arm/arm-protos.h @@ -379,9 +379,6 @@ extern bool arm_is_constant_pool_ref (rtx); be used. */ extern unsigned int tune_flags; -/* Nonzero if this chip supports the ARM Architecture 3M extensions. */ -extern int arm_arch3m; - /* Nonzero if this chip supports the ARM Architecture 4 extensions. */ extern int arm_arch4; diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt index b05da64..0ffb4c8 100644 --- a/gcc/config/arm/arm-tables.opt +++ b/gcc/config/arm/arm-tables.opt @@ -25,75 +25,6 @@ Name(processor_type) Type(enum processor_type) Known ARM CPUs (for use with the -mcpu= and -mtune= options): EnumValue -Enum(processor_type) String(arm2) Value( TARGET_CPU_arm2) - -EnumValue -Enum(processor_type) String(arm250) Value( TARGET_CPU_arm250) - -EnumValue -Enum(processor_type) String(arm3) Value( TARGET_CPU_arm3) - -EnumValue -Enum(processor_type) String(arm6) Value( TARGET_CPU_arm6) - -EnumValue -Enum(processor_type) String(arm60) Value( TARGET_CPU_arm60) - -EnumValue -Enum(processor_type) String(arm600) Value( TARGET_CPU_arm600) - -EnumValue -Enum(processor_type) String(arm610) Value( TARGET_CPU_arm610) - -EnumValue -Enum(processor_type) String(arm620) Value( TARGET_CPU_arm620) - -EnumValue -Enum(processor_type) String(arm7) Value( TARGET_CPU_arm7) - -EnumValue -Enum(processor_type) String(arm7d) Value( TARGET_CPU_arm7d) - -EnumValue -Enum(processor_type) String(arm7di) Value( TARGET_CPU_arm7di) - -EnumValue -Enum(processor_type) String(arm70) Value( TARGET_CPU_arm70) - -EnumValue -Enum(processor_type) String(arm700) Value( TARGET_CPU_arm700) - -EnumValue -Enum(processor_type) String(arm700i) Value( TARGET_CPU_arm700i) - -EnumValue -Enum(processor_type) String(arm710) Value( TARGET_CPU_arm710) - -EnumValue -Enum(processor_type) String(arm720) Value( TARGET_CPU_arm720) - -EnumValue -Enum(processor_type) String(arm710c) Value( TARGET_CPU_arm710c) - -EnumValue -Enum(processor_type) String(arm7100) Value( TARGET_CPU_arm7100) - -EnumValue -Enum(processor_type) String(arm7500) Value( TARGET_CPU_arm7500) - -EnumValue -Enum(processor_type) String(arm7500fe) Value( TARGET_CPU_arm7500fe) - -EnumValue -Enum(processor_type) String(arm7m) Value( TARGET_CPU_arm7m) - -EnumValue -Enum(processor_type) String(arm7dm) Value( TARGET_CPU_arm7dm) - -EnumValue -Enum(processor_type) String(arm7dmi) Value( TARGET_CPU_arm7dmi) - -EnumValue Enum(processor_type) String(arm8) Value( TARGET_CPU_arm8) EnumValue @@ -365,106 +296,94 @@ Name(arm_arch) Type(int) Known ARM architectures (for use with the -march= option): EnumValue -Enum(arm_arch) String(armv2) Value(0) - -EnumValue -Enum(arm_arch) String(armv2a) Value(1) - -EnumValue -Enum(arm_arch) String(armv3) Value(2) - -EnumValue -Enum(arm_arch) String(armv3m) Value(3) - -EnumValue -Enum(arm_arch) String(armv4) Value(4) +Enum(arm_arch) String(armv4) Value(0) EnumValue -Enum(arm_arch) String(armv4t) Value(5) +Enum(arm_arch) String(armv4t) Value(1) EnumValue -Enum(arm_arch) String(armv5t) Value(6) +Enum(arm_arch) String(armv5t) Value(2) EnumValue -Enum(arm_arch) String(armv5te) Value(7) +Enum(arm_arch) String(armv5te) Value(3) EnumValue -Enum(arm_arch) String(armv5tej) Value(8) +Enum(arm_arch) String(armv5tej) Value(4) EnumValue -Enum(arm_arch) String(armv6) Value(9) +Enum(arm_arch) String(armv6) Value(5) EnumValue -Enum(arm_arch) String(armv6j) Value(10) +Enum(arm_arch) String(armv6j) Value(6) EnumValue -Enum(arm_arch) String(armv6k) Value(11) +Enum(arm_arch) String(armv6k) Value(7) EnumValue -Enum(arm_arch) String(armv6z) Value(12) +Enum(arm_arch) String(armv6z) Value(8) EnumValue -Enum(arm_arch) String(armv6kz) Value(13) +Enum(arm_arch) String(armv6kz) Value(9) EnumValue -Enum(arm_arch) String(armv6zk) Value(14) +Enum(arm_arch) String(armv6zk) Value(10) EnumValue -Enum(arm_arch) String(armv6t2) Value(15) +Enum(arm_arch) String(armv6t2) Value(11) EnumValue -Enum(arm_arch) String(armv6-m) Value(16) +Enum(arm_arch) String(armv6-m) Value(12) EnumValue -Enum(arm_arch) String(armv6s-m) Value(17) +Enum(arm_arch) String(armv6s-m) Value(13) EnumValue -Enum(arm_arch) String(armv7) Value(18) +Enum(arm_arch) String(armv7) Value(14) EnumValue -Enum(arm_arch) String(armv7-a) Value(19) +Enum(arm_arch) String(armv7-a) Value(15) EnumValue -Enum(arm_arch) String(armv7ve) Value(20) +Enum(arm_arch) String(armv7ve) Value(16) EnumValue -Enum(arm_arch) String(armv7-r) Value(21) +Enum(arm_arch) String(armv7-r) Value(17) EnumValue -Enum(arm_arch) String(armv7-m) Value(22) +Enum(arm_arch) String(armv7-m) Value(18) EnumValue -Enum(arm_arch) String(armv7e-m) Value(23) +Enum(arm_arch) String(armv7e-m) Value(19) EnumValue -Enum(arm_arch) String(armv8-a) Value(24) +Enum(arm_arch) String(armv8-a) Value(20) EnumValue -Enum(arm_arch) String(armv8.1-a) Value(25) +Enum(arm_arch) String(armv8.1-a) Value(21) EnumValue -Enum(arm_arch) String(armv8.2-a) Value(26) +Enum(arm_arch) String(armv8.2-a) Value(22) EnumValue -Enum(arm_arch) String(armv8.3-a) Value(27) +Enum(arm_arch) String(armv8.3-a) Value(23) EnumValue -Enum(arm_arch) String(armv8.4-a) Value(28) +Enum(arm_arch) String(armv8.4-a) Value(24) EnumValue -Enum(arm_arch) String(armv8-m.base) Value(29) +Enum(arm_arch) String(armv8-m.base) Value(25) EnumValue -Enum(arm_arch) String(armv8-m.main) Value(30) +Enum(arm_arch) String(armv8-m.main) Value(26) EnumValue -Enum(arm_arch) String(armv8-r) Value(31) +Enum(arm_arch) String(armv8-r) Value(27) EnumValue -Enum(arm_arch) String(iwmmxt) Value(32) +Enum(arm_arch) String(iwmmxt) Value(28) EnumValue -Enum(arm_arch) String(iwmmxt2) Value(33) +Enum(arm_arch) String(iwmmxt2) Value(29) Enum Name(arm_fpu) Type(enum fpu_type) diff --git a/gcc/config/arm/arm-tune.md b/gcc/config/arm/arm-tune.md index df43a1c..877e346 100644 --- a/gcc/config/arm/arm-tune.md +++ b/gcc/config/arm/arm-tune.md @@ -21,42 +21,34 @@ ; <http://www.gnu.org/licenses/>. (define_attr "tune" - "arm2,arm250,arm3, - arm6,arm60,arm600, - arm610,arm620,arm7, - arm7d,arm7di,arm70, - arm700,arm700i,arm710, - arm720,arm710c,arm7100, - arm7500,arm7500fe,arm7m, - arm7dm,arm7dmi,arm8, - arm810,strongarm,strongarm110, - strongarm1100,strongarm1110,fa526, - fa626,arm7tdmi,arm7tdmis, - arm710t,arm720t,arm740t, - arm9,arm9tdmi,arm920, - arm920t,arm922t,arm940t, - ep9312,arm10tdmi,arm1020t, - arm9e,arm946es,arm966es, - arm968es,arm10e,arm1020e, - arm1022e,xscale,iwmmxt, - iwmmxt2,fa606te,fa626te, - fmp626,fa726te,arm926ejs, - arm1026ejs,arm1136js,arm1136jfs, - arm1176jzs,arm1176jzfs,mpcorenovfp, - mpcore,arm1156t2s,arm1156t2fs, - cortexm1,cortexm0,cortexm0plus, - cortexm1smallmultiply,cortexm0smallmultiply,cortexm0plussmallmultiply, - genericv7a,cortexa5,cortexa7, - cortexa8,cortexa9,cortexa12, - cortexa15,cortexa17,cortexr4, - cortexr4f,cortexr5,cortexr7, - cortexr8,cortexm7,cortexm4, - cortexm3,marvell_pj4,cortexa15cortexa7, - cortexa17cortexa7,cortexa32,cortexa35, - cortexa53,cortexa57,cortexa72, - cortexa73,exynosm1,xgene1, - cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35, - cortexa73cortexa53,cortexa55,cortexa75, - cortexa75cortexa55,cortexm23,cortexm33, - cortexr52" + "arm8,arm810,strongarm, + strongarm110,strongarm1100,strongarm1110, + fa526,fa626,arm7tdmi, + arm7tdmis,arm710t,arm720t, + arm740t,arm9,arm9tdmi, + arm920,arm920t,arm922t, + arm940t,ep9312,arm10tdmi, + arm1020t,arm9e,arm946es, + arm966es,arm968es,arm10e, + arm1020e,arm1022e,xscale, + iwmmxt,iwmmxt2,fa606te, + fa626te,fmp626,fa726te, + arm926ejs,arm1026ejs,arm1136js, + arm1136jfs,arm1176jzs,arm1176jzfs, + mpcorenovfp,mpcore,arm1156t2s, + arm1156t2fs,cortexm1,cortexm0, + cortexm0plus,cortexm1smallmultiply,cortexm0smallmultiply, + cortexm0plussmallmultiply,genericv7a,cortexa5, + cortexa7,cortexa8,cortexa9, + cortexa12,cortexa15,cortexa17, + cortexr4,cortexr4f,cortexr5, + cortexr7,cortexr8,cortexm7, + cortexm4,cortexm3,marvell_pj4, + cortexa15cortexa7,cortexa17cortexa7,cortexa32, + cortexa35,cortexa53,cortexa57, + cortexa72,cortexa73,exynosm1, + xgene1,cortexa57cortexa53,cortexa72cortexa53, + cortexa73cortexa35,cortexa73cortexa53,cortexa55, + cortexa75,cortexa75cortexa55,cortexm23, + cortexm33,cortexr52" (const (symbol_ref "((enum attr_tune) arm_tune)"))) diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 3bfc0d5..4a5da7e 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -850,9 +850,6 @@ struct arm_build_target arm_active_target; /* The following are used in the arm.md file as equivalents to bits in the above two flag variables. */ -/* Nonzero if this chip supports the ARM Architecture 3M extensions. */ -int arm_arch3m = 0; - /* Nonzero if this chip supports the ARM Architecture 4 extensions. */ int arm_arch4 = 0; @@ -3002,7 +2999,8 @@ arm_option_override_internal (struct gcc_options *opts, if (TARGET_INTERWORK && !bitmap_bit_p (arm_active_target.isa, isa_bit_thumb)) { /* The default is to enable interworking, so this warning message would - be confusing to users who have just compiled with, eg, -march=armv3. */ + be confusing to users who have just compiled with + eg, -march=armv4. */ /* warning (0, "ignoring -minterwork because target CPU does not support THUMB"); */ opts->x_target_flags &= ~MASK_INTERWORK; } @@ -3236,7 +3234,6 @@ arm_configure_build_target (struct arm_build_target *target, if (TARGET_INTERWORK || TARGET_THUMB) { bitmap_set_bit (sought_isa, isa_bit_thumb); - bitmap_set_bit (sought_isa, isa_bit_mode32); /* There are no ARM processors that support both APCS-26 and interworking. Therefore we forcibly remove MODE26 from @@ -3636,7 +3633,6 @@ arm_option_reconfigure_globals (void) /* Initialize boolean versions of the architectural flags, for use in the arm.md file. */ - arm_arch3m = bitmap_bit_p (arm_active_target.isa, isa_bit_armv3m); arm_arch4 = bitmap_bit_p (arm_active_target.isa, isa_bit_armv4); arm_arch4t = arm_arch4 && bitmap_bit_p (arm_active_target.isa, isa_bit_thumb); arm_arch5t = bitmap_bit_p (arm_active_target.isa, isa_bit_armv5t); @@ -10005,8 +10001,7 @@ arm_rtx_costs_internal (rtx x, enum rtx_code code, enum rtx_code outer_code, if (mode == DImode) { - if (arm_arch3m - && GET_CODE (XEXP (x, 0)) == MULT + if (GET_CODE (XEXP (x, 0)) == MULT && ((GET_CODE (XEXP (XEXP (x, 0), 0)) == ZERO_EXTEND && GET_CODE (XEXP (XEXP (x, 0), 1)) == ZERO_EXTEND) || (GET_CODE (XEXP (XEXP (x, 0), 0)) == SIGN_EXTEND @@ -10204,11 +10199,10 @@ arm_rtx_costs_internal (rtx x, enum rtx_code code, enum rtx_code outer_code, if (mode == DImode) { - if (arm_arch3m - && ((GET_CODE (XEXP (x, 0)) == ZERO_EXTEND - && GET_CODE (XEXP (x, 1)) == ZERO_EXTEND) - || (GET_CODE (XEXP (x, 0)) == SIGN_EXTEND - && GET_CODE (XEXP (x, 1)) == SIGN_EXTEND))) + if ((GET_CODE (XEXP (x, 0)) == ZERO_EXTEND + && GET_CODE (XEXP (x, 1)) == ZERO_EXTEND) + || (GET_CODE (XEXP (x, 0)) == SIGN_EXTEND + && GET_CODE (XEXP (x, 1)) == SIGN_EXTEND)) { if (speed_p) *cost += extra_cost->mult[1].extend; diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index f3a6f7d..34894c0 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -399,9 +399,6 @@ enum base_architecture /* The major revision number of the ARM Architecture implemented by the target. */ extern enum base_architecture arm_base_arch; -/* Nonzero if this chip supports the ARM Architecture 3M extensions. */ -extern int arm_arch3m; - /* Nonzero if this chip supports the ARM Architecture 4 extensions. */ extern int arm_arch4; diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 118cecf..361a026 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -1754,7 +1754,7 @@ (sign_extend:DI (match_operand:SI 1 "s_register_operand" "")) (sign_extend:DI (match_operand:SI 2 "s_register_operand" ""))) (match_operand:DI 3 "s_register_operand" "")))] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" "") (define_insn "*mulsidi3adddi" @@ -1764,7 +1764,7 @@ (sign_extend:DI (match_operand:SI 2 "s_register_operand" "%r")) (sign_extend:DI (match_operand:SI 3 "s_register_operand" "r"))) (match_operand:DI 1 "s_register_operand" "0")))] - "TARGET_32BIT && arm_arch3m && !arm_arch6" + "TARGET_32BIT && !arm_arch6" "smlal%?\\t%Q0, %R0, %3, %2" [(set_attr "type" "smlal") (set_attr "predicable" "yes")] @@ -1794,7 +1794,7 @@ (mult:DI (sign_extend:DI (match_operand:SI 1 "s_register_operand" "")) (sign_extend:DI (match_operand:SI 2 "s_register_operand" ""))))] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" "" ) @@ -1803,7 +1803,7 @@ (mult:DI (sign_extend:DI (match_operand:SI 1 "s_register_operand" "%r")) (sign_extend:DI (match_operand:SI 2 "s_register_operand" "r"))))] - "TARGET_32BIT && arm_arch3m && !arm_arch6" + "TARGET_32BIT && !arm_arch6" "smull%?\\t%Q0, %R0, %1, %2" [(set_attr "type" "smull") (set_attr "predicable" "yes")] @@ -1825,7 +1825,7 @@ (mult:DI (zero_extend:DI (match_operand:SI 1 "s_register_operand" "")) (zero_extend:DI (match_operand:SI 2 "s_register_operand" ""))))] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" "" ) @@ -1834,7 +1834,7 @@ (mult:DI (zero_extend:DI (match_operand:SI 1 "s_register_operand" "%r")) (zero_extend:DI (match_operand:SI 2 "s_register_operand" "r"))))] - "TARGET_32BIT && arm_arch3m && !arm_arch6" + "TARGET_32BIT && !arm_arch6" "umull%?\\t%Q0, %R0, %1, %2" [(set_attr "type" "umull") (set_attr "predicable" "yes")] @@ -1858,7 +1858,7 @@ (zero_extend:DI (match_operand:SI 1 "s_register_operand" "")) (zero_extend:DI (match_operand:SI 2 "s_register_operand" ""))) (match_operand:DI 3 "s_register_operand" "")))] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" "") (define_insn "*umulsidi3adddi" @@ -1868,7 +1868,7 @@ (zero_extend:DI (match_operand:SI 2 "s_register_operand" "%r")) (zero_extend:DI (match_operand:SI 3 "s_register_operand" "r"))) (match_operand:DI 1 "s_register_operand" "0")))] - "TARGET_32BIT && arm_arch3m && !arm_arch6" + "TARGET_32BIT && !arm_arch6" "umlal%?\\t%Q0, %R0, %3, %2" [(set_attr "type" "umlal") (set_attr "predicable" "yes")] @@ -1897,7 +1897,7 @@ (sign_extend:DI (match_operand:SI 2 "s_register_operand" ""))) (const_int 32)))) (clobber (match_scratch:SI 3 ""))])] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" "" ) @@ -1910,7 +1910,7 @@ (sign_extend:DI (match_operand:SI 2 "s_register_operand" "r,r"))) (const_int 32)))) (clobber (match_scratch:SI 3 "=&r,&r"))] - "TARGET_32BIT && arm_arch3m && !arm_arch6" + "TARGET_32BIT && !arm_arch6" "smull%?\\t%3, %0, %2, %1" [(set_attr "type" "smull") (set_attr "predicable" "yes")] @@ -1941,7 +1941,7 @@ (zero_extend:DI (match_operand:SI 2 "s_register_operand" ""))) (const_int 32)))) (clobber (match_scratch:SI 3 ""))])] - "TARGET_32BIT && arm_arch3m" + "TARGET_32BIT" "" ) @@ -1954,7 +1954,7 @@ (zero_extend:DI (match_operand:SI 2 "s_register_operand" "r,r"))) (const_int 32)))) (clobber (match_scratch:SI 3 "=&r,&r"))] - "TARGET_32BIT && arm_arch3m && !arm_arch6" + "TARGET_32BIT && !arm_arch6" "umull%?\\t%3, %0, %2, %1" [(set_attr "type" "umull") (set_attr "predicable" "yes")] diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf index aa36ff0..3506b16 100644 --- a/gcc/config/arm/t-arm-elf +++ b/gcc/config/arm/t-arm-elf @@ -39,7 +39,7 @@ v7ve_fps := vfpv3-d16 vfpv3 vfpv3-d16-fp16 vfpv3-fp16 vfpv4 neon \ v8_fps := simd fp16 crypto fp16+crypto dotprod fp16fml # We don't do anything special with these. Pre-v4t probably doesn't work. -all_early_nofp := armv2 armv2a armv3 armv3m armv4 armv4t armv5t +all_early_nofp := armv4 armv4t armv5t all_early_arch := armv5tej armv6 armv6j armv6k armv6z armv6kz \ armv6zk armv6t2 iwmmxt iwmmxt2 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index d221bb9..612b97c 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -15904,9 +15904,7 @@ Permissible names are: @samp{iwmmxt} and @samp{iwmmxt2}. Additionally, the following architectures, which lack support for the -Thumb execution state, are recognized but support is deprecated: -@samp{armv2}, @samp{armv2a}, @samp{armv3}, @samp{armv3m}, -@samp{armv4}. +Thumb execution state, are recognized but support is deprecated: @samp{armv4}. Many of the architectures support extensions. These can be added by appending @samp{+@var{extension}} to the architecture name. Extension diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d8cf65b..6f47ddc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * gcc.target/arm/pr62554.c: Delete. + * gcc.target/arm/pr69610-1.c: Likewise. + * gcc.target/arm/pr69610-2.c: Likewise. + +2018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * gcc.target/arm/pr40887.c: Update comment. * lib/target-supports.exp: Don't generate effective target checks and related helpers for armv5. Update comment. |