Commit Graph

61 Commits

Author SHA1 Message Date
Daniel Jacobowitz 0c422e7433 neon-testgen.ml: Use dg-add-options arm_neon.
2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
	* doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
	description.  Add arm_neon_fp16_ok.
	(Add Options): Add arm_neon and arm_neon_fp16.

	gcc/testsuite/
	* gcc.target/arm/neon/: Regenerated test cases.

	* gcc.target/arm/neon/polytypes.c,
	gcc.target/arm/neon-vmla-1.c, gcc.target/arm/neon-vmls-1.c,
	gcc.target/arm/neon-cond-1.c, gcc.target/arm/neon/vfp-shift-a2t2.c,
	gcc.target/arm/neon-thumb2-move.c, gcc.dg/torture/arm-fp16-ops-8.c, 
	gcc.dg/torture/arm-fp16-ops-7.c, g++.dg/ext/arm-fp16/arm-fp16-ops-7.C,
	g++.dg/ext/arm-fp16/arm-fp16-ops-8.C, g++.dg/abi/mangle-neon.C: Use
	dg-add-options arm_neon.

	* gcc.target/arm/fp16-compile-vcvt.c, gcc.dg/torture/arm-fp16-ops-5.c,
	gcc.dg/torture/arm-fp16-ops-6.c, g++.dg/ext/arm-fp16/arm-fp16-ops-5.C,
	g++.dg/ext/arm-fp16/arm-fp16-ops-6.C: Use dg-add-options arm_neon_fp16
	and arm_neon_fp16_ok.

	* gcc.dg/vect/vect.exp, g++.dg/vect/vect.exp,
	gfortran.dg/vect/vect.exp: Use add_options_for_arm_neon.

	* lib/target-supports.exp (add_options_for_arm_neon): New.
	(check_effective_target_arm_neon_ok_nocache): New, from
	check_effective_target_arm_neon_ok.  Check multiple possibilities.
	(check_effective_target_arm_neon_ok): Use
	check_effective_target_arm_neon_ok_nocache.
	(add_options_for_arm_neon_fp16)
	(check_effective_target_arm_neon_fp16_ok)
	check_effective_target_arm_neon_fp16_ok_nocache): New.
	(check_effective_target_arm_neon_hw): Use add_options_for_arm_neon.


Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r159794
2010-05-24 15:36:31 -04:00
Paul Brook b748fbd6b9 gengtype-lex.l: Add HARD_REG_SET.
2010-05-25  Paul Brook  <paul@codesourcery.com>

	gcc/
	* gengtype-lex.l: Add HARD_REG_SET.
	* expr.c (expand_expr_real_1): Record writes to hard registers.
	* function.c (rtl_data): Add asm_clobbers.
	* ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
	(ira_setup_eliminable_regset): Remove regs_asm_clobbered.
	Use crtl->asm_clobbers.

	gcc/testsuite/
	* gcc.target/arm/frame-pointer-1.c: New test.
	* gcc.target/i386/pr9771-1.c: Move code out of main to allow frame
	pointer elimination.

From-SVN: r159776
2010-05-24 12:24:00 +00:00
Wei Guozhi 333b67a9f1 thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
* config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.

	* gcc.target/arm/pr42879.c: New testcase.

From-SVN: r159212
2010-05-10 07:26:04 +00:00
Bernd Schmidt cb751cbd75 re PR target/40657 (allocate local variables with fewer instructions)
PR target/40657
	* config/arm/arm.c (thumb1_extra_regs_pushed): New function.
	(thumb1_expand_prologue, thumb1_output_function_prologue): Call it
	here to determine which regs to push and how much stack to reserve.

	PR target/40657
	* gcc.target/arm/thumb-stackframe.c: New test.

From-SVN: r158771
2010-04-27 09:34:08 +00:00
Paolo Bonzini 910ed7dc70 combine.c (find_split_point): Add third argument.
2010-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (find_split_point): Add third argument.  Use it
	to find nested multiply-accumulate instructions.  Adjust calls.
	(try_combine): Adjust call to find_split_point.

testsuite:
2010-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* gcc.target/arm/mla-1.c: New test.

From-SVN: r158698
2010-04-25 07:52:43 +00:00
Bernd Schmidt 9193b1b4cc re PR middle-end/29274 (not using mulsidi3)
PR middle-end/29274
	* gcc.target/arm/wmul-1.c: New test.
	* gcc.target/arm/wmul-2.c: New test.

From-SVN: r158642
2010-04-22 11:25:44 +00:00
Bernd Schmidt f0c6475aea re PR target/40603 (unnecessary conversion from unsigned byte load to signed byte load)
PR target/40603
	* config/arm/arm.md (cbranchqi4): New pattern.
	* config/arm/predicates.md (const0_operand,
	cbranchqi4_comparison_operator): New predicates.

	PR target/40603
	* gcc.target/arm/thumb-cbranchqi.c: New test.

From-SVN: r158407
2010-04-16 10:04:15 +00:00
Bernd Schmidt 6ea007e447 re PR target/41514 (redundant compare instruction of consecutive conditional branches)
PR target/41514
	* config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
	If the previous insn is a cbranchsi4_insn with the same arguments,
	omit the compare instruction.

	PR target/41514
	gcc.target/arm/thumb-comparisons.c: New test.

From-SVN: r158404
2010-04-16 09:42:32 +00:00
Bernd Schmidt 31ce8a531c re PR rtl-optimization/21803 ([ia64] gcc produces really odd predicated code)
gcc/
	PR target/21803
	* ifcvt.c (cond_exec_process_if_block): Look for identical sequences
	at the start and end of the then/else blocks, and omit them from the
	conversion.
	* cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
	argument; all callers changed.  Pass zero to old_insns_match_p instead.
	(flow_find_head_matching_sequence): New function.
	(old_insns_match_p): Check REG_EH_REGION notes for calls.
	* basic-block.h (flow_find_cross_jump,
	flow_find_head_matching_sequence): Declare functions.

gcc/testsuite/
	PR target/21803
	* gcc.target/arm/pr42496.c: New test.

From-SVN: r158357
2010-04-14 20:42:02 +00:00
Bernd Schmidt 036efbf272 thumb-andsi.c: Correct dg-options and add dg-require-effective-target.
* gcc.target/arm/thumb-andsi.c: Correct dg-options and add
	dg-require-effective-target.

From-SVN: r157583
2010-03-19 19:42:59 +00:00
Bernd Schmidt c99102b8b4 re PR target/40697 (inefficient code to extract least bits from an integer value)
gcc/
	PR target/40697
	* optabs.c (avoid_expensive_constant): Use rtx_cost to find out
	the cost of loading the constant rather than assuming
	COSTS_N_INSNS (1).
	* config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
	outer code is AND, do the same tests as the andsi3 expander and
	return COSTS_N_INSNS (1) if and is cheap.

testsuite/
	PR target/40697
	* gcc.target/arm/thumb-andsi.c: New test.

From-SVN: r157582
2010-03-19 18:41:22 +00:00
Bernd Schmidt 002b2dee5d re PR rtl-optimization/42258 (redundant register move around mul instruction)
gcc/
	PR rtl-optimization/42258
	* ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
	use that may match DEF.

testsuite/
	PR rtl-optimization/42258
	* gcc.target/arm/thumb1-mul-moves.c: New test.

From-SVN: r157581
2010-03-19 18:18:54 +00:00
Kaveh R. Ghazi 3119bda384 sibcall-1.c: Allow PLT to appear with pic code.
* gcc.target/arm/sibcall-1.c: Allow PLT to appear with pic code.

From-SVN: r157415
2010-03-13 01:27:06 +00:00
Ramana Radhakrishnan b3d7e1910f Fix target/38697
2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

       PR target/38697
       * config/arm/neon-testgen.m (emit_automatics): New parameter
	features. Adjust for Fixed_return_reg feature.
	(test_intrinsic): Call emit_automatics with new feature.
       * config/arm/neon.ml: Update copyright years.
	(features): New Fixed_return_reg feature.
	(ops): Update feature for Vget_low.

2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/38697.
	* gcc.target/arm/neon/vget_lowf32.c: Regenerate.
	* gcc.target/arm/neon/vget_lowp16.c: Likewise.
	* gcc.target/arm/neon/vget_lowp8.c:  Likewise.
	* gcc.target/arm/neon/vget_lows16.c: Likewise.
	* gcc.target/arm/neon/vget_lows32.c: Likewise.
	* gcc.target/arm/neon/vget_lows64.c: Likewise.
	* gcc.target/arm/neon/vget_lows8.c: Likewise.
	* gcc.target/arm/neon/vget_lowu16.c: Likewise.
	* gcc.target/arm/neon/vget_lowu32.c: Likewise.
	* gcc.target/arm/neon/vget_lowu64.c: Likewise.
	* gcc.target/arm/neon/vget_lowu8.c: Likewise.

From-SVN: r156042
2010-01-19 14:21:14 +00:00
Julian Brown 0986ef456e re PR target/40887 (GCC generates suboptimal code for indirect function calls on ARM)
Fix PR target/40887



2009-12-24  Julian Brown  <julian@codesourcery.com>
            Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/40887

        * config/arm/arm.c (output_call_mem): Remove armv5 support.
        * config/arm/arm.md (*call_mem): Disable for armv5. Add note.
        (*call_value_mem): Likewise.


        PR target/40887

        * gcc.target/gcc.arm/pr40887.c: New test.

Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>

From-SVN: r155453
2009-12-24 10:46:00 +00:00
Ramana Radhakrishnan 83c3a2d826 re PR target/42093 (Compressed switch tables for Thumb2 have signed offsets)
Fix PR target/42093


2009-12-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/42093
        * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Fix macro usage
        to TARGET_THUMB1.
        (CASE_VECTOR_SHORTEN_MODE): Allow signed offsets 
        only for TARGET_THUMB1.

2009-12-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/42093
        * gcc.target/arm/pr42093.c: New test.

From-SVN: r155428
2009-12-23 16:36:40 +00:00
Ramana Radhakrishnan 07422036e3 Pass floating point constant moves to integer registers
as mov immediates for Thumb1.


2009-12-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/40670
        * config/arm/arm.md: Split for Thumb1 as well.

        * gcc.target/arm/pr40670.c: New test.

From-SVN: r155427
2009-12-23 16:29:12 +00:00
Alexandre Oliva 00ee9f445b re PR debug/41679 (internal compiler error: in loc_cmp, at var-tracking.c:2433)
PR debug/41679
	* var-tracking.c (add_stores): Avoid value mode mismatch for
	promoted declarations.

	* gcc.target/arm/pr41679.c: New.

From-SVN: r155322
2009-12-17 20:30:58 +01:00
Richard Earnshaw 98aa3f36a7 pr40835.c: Require a thumb1 target, do not force -march=armv5e.
* gcc.target/arm/pr40835.c: Require a thumb1 target, do not force
	-march=armv5e.

From-SVN: r154644
2009-11-25 10:33:40 +00:00
Daniel Jacobowitz 814a4c3b35 arm.c (neon_vdup_constant, [...]): New.
gcc/
	* config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
	(neon_expand_vector_init): Use them.  Also handle non-constant
	vectors with identical elements and vectors with only one
	non-constant element.
	(arm_print_operand): Handle 'y' modifier.
	* config/arm/arm-protos.h (neon_make_constant): Declare.
	* config/arm/neon.md (neon_vdup_n<mode>): Split into two
	patterns.  Use VX instead of VDQW for the first one.  Allow
	a VFP alternative and V32 modes for the second one.
	* config/arm/neon.ml (shape_elt): Add Alternatives.
	(ops): Use Alternatives for vdup lane instructions.
	* config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
	* config/arm/vec-common.md (mov<mode>): Use neon_make_constant.

	gcc/testsuite/
	* gcc.target/arm/neon: Regenerate generated tests.

From-SVN: r154094
2009-11-11 14:23:03 +00:00
Richard Earnshaw 57f5eef091 [multiple changes]
2009-11-04  Richard Earnshaw  <rearnsha@arm.com>

	PR target/40835
	* arm.md (peephole2 patterns for move and compare): New.

2009-11-04  Wei Guozhi  <carrot@google.com>

	PR target/40835
	* gcc.target/arm/pr40835: New testcase.

From-SVN: r153895
2009-11-04 14:09:55 +00:00
Paolo Bonzini c4bb78e9cd re PR target/39715 ([cond-optab] extra sign extensions on Thumb)
2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/39715
	* config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
	(gen_cstoresi_ltu_thumb1): New splitter.

2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/39715
	* gcc.target/arm/thumb-ltu.c: New.

From-SVN: r153678
2009-10-28 16:44:08 +00:00
Paolo Bonzini 5d49d0ea6c re PR target/39715 ([cond-optab] extra sign extensions on Thumb)
2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/39715
	* combine.c (simplify_comparison): Use extensions to
	widen comparisons.  Try an ANDing first.

testsuite:
2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/39715
	* gcc.target/arm/thumb-bitfld1.c: New.

From-SVN: r153651
2009-10-28 10:27:15 +00:00
Paolo Bonzini 582021baa7 re PR target/40741 (code size explosion for integer comparison)
2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/40741
	* config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
	a small constant is cheap.
	* config/arm/arm.md (andsi3, iorsi3): Try to place the result of
	force_reg on the LHS.
	(xorsi3): Likewise, and split the XOR if the constant is complex
	and not in Thumb mode.

2009-10-28  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/40741
	* gcc.target/arm/thumb-branch1.c: New.

From-SVN: r153650
2009-10-28 10:17:29 +00:00
Joseph Myers 5728868b82 arm.c (output_move_neon): Use DImode in call to adjust_address.
* config/arm/arm.c (output_move_neon): Use DImode in call to
	adjust_address.

testsuite:
	* gcc.target/arm/neon-thumb2-move.c: New test.

From-SVN: r152977
2009-10-19 16:22:15 +01:00
Daniel Gutson 8cb32ff23b neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>

        gcc/
        * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds
        fixed.

        gcc/testsuite/
        * gcc.target/arm/neon/vfp-shift-a2t2.c: New test case.

From-SVN: r152777
2009-10-14 19:18:20 +00:00
Daniel Gutson ca96ed43b2 arm.md (UNSPEC_RBIT): New constant.
2009-09-03  Daniel Gutson  <dgutson@codesourcery.com>

	* config/arm/arm.md (UNSPEC_RBIT): New constant.
	(rbitsi2): New insn.
	(ctzsi2): New expand.
	* config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.

	testsuite/
	* gcc.target/arm/ctz.c: New test case.

From-SVN: r151402
2009-09-04 02:52:08 +00:00
Ramana Radhakrishnan 3e2d9dcfa8 combine cmps with shifts
2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

       * gcc.target/arm/combine-cmp-shift.c: New test.

2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

       * config/arm/arm.c (arm_select_cc_mode): Handle subreg.

From-SVN: r151050
2009-08-24 09:03:35 +00:00
Maciej W. Rozycki 5399093be2 * lib/target-supports.exp
(check_effective_target_arm_iwmmxt_ok): New procedure.
	* gcc.target/arm/mmx-1.c: Only run if arm_iwmmxt_ok.  Remove the
	exclusions for -mfloat-abi=softfp and -mfloat-abi=hard.

From-SVN: r151003
2009-08-21 22:13:56 +00:00
Ramana Radhakrishnan a552b644fb Fix twolf ICE for ARM
2009-08-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
            Richard Earnshaw  <richard.earnshaw@arm.com>

        * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
        * config/arm/arm.md (*arm_movtas_ze): New pattern for
        movt.

2009-08-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
            Richard Earnshaw  <richard.earnshaw@arm.com>

        * testsuite/gcc.target/arm/20090811-1.c: New test.

Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>

From-SVN: r150953
2009-08-20 08:09:29 +00:00
Andrew Haley 97804369a9 synchronize.c: New file.
2009-08-11  Andrew Haley  <aph@redhat.com>

	* gcc.target/arm/synchronize.c: New file.

From-SVN: r150698
2009-08-12 15:55:19 +00:00
Richard Earnshaw de2aa20e75 abitest.h: Allow the test function to have a PCS attribute.
* gcc.target/arm/abitest.h: Allow the test function to have a PCS
	attribute.
	* gcc.target/arm/vfp1[567].c: New tests.

From-SVN: r150536
2009-08-06 18:15:19 +00:00
Richard Earnshaw 390b17c28c Merge ARM/hard_vfp_branch to trunk
From-SVN: r150525
2009-08-06 14:27:45 +00:00
Doug Kwan ddead5badb polytypes.c: Adjust test for new notes in warnings added in rev 141298.
2009-07-30  Doug Kwan  <dougkwan@google.com>

	* gcc.target/arm/neon/polytypes.c: Adjust test for new notes
	in warnings added in rev 141298.

From-SVN: r150287
2009-07-31 00:17:46 +00:00
Ramana Radhakrishnan ce41c38bfc Fix PR 40482 2009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Fix PR 40482
2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	    PR target/40482
	    * config/arm/arm.c (thumb_shiftable_const): Truncate val to 
	    32 bits.
	    * config/arm/arm.md: Likewise.

2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	    PR target/40482
	    * gcc.target/arm/pr40482.c: New test.

From-SVN: r148728
2009-06-19 21:22:44 +00:00
Sandra Loosemore bdc4827b1c arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
	(arm_scalar_mode_supported_p): New function.

	gcc/testsuite/
	* gcc.target/arm/fp16-compile-none-2.c: New.
	* gcc.target/arm/fp16-compile-ieee-12.c: New.
	* gcc.target/arm/fp16-compile-alt-12.c: New.

From-SVN: r148657
2009-06-18 08:33:27 -04:00
Sandra Loosemore 76d6502fc9 fp16-compile-alt-1.c: New.
2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* gcc.target/arm/fp16-compile-alt-1.c: New.
	* gcc.target/arm/fp16-compile-alt-2.c: New.
	* gcc.target/arm/fp16-compile-alt-3.c: New.
	* gcc.target/arm/fp16-compile-alt-4.c: New.
	* gcc.target/arm/fp16-compile-alt-5.c: New.
	* gcc.target/arm/fp16-compile-alt-6.c: New.
	* gcc.target/arm/fp16-compile-alt-7.c: New.
	* gcc.target/arm/fp16-compile-alt-8.c: New.
	* gcc.target/arm/fp16-compile-alt-9.c: New.
	* gcc.target/arm/fp16-compile-alt-10.c: New.
	* gcc.target/arm/fp16-compile-alt-11.c: New.
	* gcc.target/arm/fp16-compile-ieee-1.c: New.
	* gcc.target/arm/fp16-compile-ieee-2.c: New.
	* gcc.target/arm/fp16-compile-ieee-3.c: New.
	* gcc.target/arm/fp16-compile-ieee-4.c: New.
	* gcc.target/arm/fp16-compile-ieee-5.c: New.
	* gcc.target/arm/fp16-compile-ieee-6.c: New.
	* gcc.target/arm/fp16-compile-ieee-7.c: New.
	* gcc.target/arm/fp16-compile-ieee-8.c: New.
	* gcc.target/arm/fp16-compile-ieee-9.c: New.
	* gcc.target/arm/fp16-compile-ieee-10.c: New.
	* gcc.target/arm/fp16-compile-ieee-11.c: New.
	* gcc.target/arm/fp16-compile-none-1.c: New.
	* gcc.target/arm/fp16-compile-exprtype.c: New.
	* gcc.target/arm/fp16-compile-vcvt.c: New.
	* gcc.target/arm/fp16-builtins-1.c: New.
	* gcc.target/arm/fp16-rounding-alt-1.c: New.
	* gcc.target/arm/fp16-rounding-ieee-1.c: New.
	* gcc.target/arm/fp16-param-1.c: New.
	* gcc.target/arm/fp16-return-1.c: New.
	* gcc.target/arm/fp16-unprototyped-1.c: New.
	* gcc.target/arm/fp16-unprototyped-2.c: New.
	* gcc.target/arm/fp16-variadic-1.c: New.
	* gcc.dg/torture/arm-fp16-compile-assign.c: New.
	* gcc.dg/torture/arm-fp16-compile-convert.c: New.
	* gcc.dg/torture/arm-fp16-int-convert-alt.c: New.
	* gcc.dg/torture/arm-fp16-int-convert-ieee.c: New.
	* gcc.dg/torture/arm-fp16-ops.h: New.
	* gcc.dg/torture/arm-fp16-ops-1.c: New.
	* gcc.dg/torture/arm-fp16-ops-2.c: New.
	* gcc.dg/torture/arm-fp16-ops-3.c: New.
	* gcc.dg/torture/arm-fp16-ops-4.c: New.
	* gcc.dg/torture/arm-fp16-ops-5.c: New.
	* gcc.dg/torture/arm-fp16-ops-6.c: New.
	* gcc.dg/torture/arm-fp16-ops-7.c: New.
	* gcc.dg/torture/arm-fp16-ops-8.c: New.
	* g++.dg/ext/arm-fp16/fp16-overload-1.C: New.
	* g++.dg/ext/arm-fp16/fp16-return-1.C: New.
	* g++.dg/ext/arm-fp16/fp16-param-1.C: New.
	* g++.dg/ext/arm-fp16/fp16-mangle-1.C: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops.h: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops-1.C: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops-2.C: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops-3.C: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops-4.C: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops-5.C: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops-6.C: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops-7.C: New.
	* g++.dg/ext/arm-fp16/arm-fp16-ops-8.C: New.

From-SVN: r148656
2009-06-18 08:30:19 -04:00
Nathan Froyd d8259b07b0 tree.h (tree_base): Add packed_flag and user_align fields.
gcc/
	* tree.h (tree_base): Add packed_flag and user_align fields.
	Decrease size of spare field.
	(TYPE_USER_ALIGN): Use user_align from tree_base.
	(DECL_USER_ALIGN): Likewise.
	(TYPE_PACKED): Use packed_flag from tree_base.
	(DECL_PACKED): Likewise.
	(tree_type): Delete packed_flag and user_align fields.  Widen
	precision field.  Widen mode field and shuffle fields to align
	mode on an 8-bit boundary.
	(tree_decl_common): Delete decl_flag_1 and user_align fields.
	Renumber decl_flag_* fields.  Fix comments.  Widen
	decl_common_unused field.
	(DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
	fields.
	(DECL_EXTERNAL): Likewise.
	(DECL_BIT_FIELD): Likewise.
	(DECL_NONADDRESSABLE_P): Likewise.
	(TYPE_DECL_SUPRESS_DEBUG): Likewise.
	* config/arm/arm-modes.def (XImode): Make it an INT_MODE.

gcc/testsuite/
	* gcc.target/arm/neon-modes-1.c: New test.

From-SVN: r148348
2009-06-10 16:31:29 +00:00
Mark Mitchell 7d31a807ce thumb2.md: Add 16-bit multiply instructions.
* config/arm/thumb2.md: Add 16-bit multiply instructions.
	gcc/testsuite/

	* lib/target-supports.exp (check_effective_target_arm_thumb2_ok):
	New function.
	* gcc.target/arm/thumb2-mul-space.c: New file.
	* gcc.target/arm/thumb2-mul-space-2.c: New file.
	* gcc.target/arm/thumb2-mul-space-3.c: New file.
	* gcc.target/arm/thumb2-mul-speed.c: New file.

From-SVN: r147812
2009-05-23 01:34:53 +00:00
Mark Mitchell 1ea9fe562c neon.md (*mul<mode>3add<mode>_neon): New pattern.
* config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
	(*mul<mode>3neg<mode>add<mode>_neon): Likewise.

	* gcc.dg/target/arm/neon-vmla-1.c: New.
	* gcc.dg/target/arm/neon-vmls-1.c: Likewise.

From-SVN: r147771
2009-05-21 16:53:48 +00:00
Nathan Froyd e8a861bd07 20020118-1.c: Skip on vxworks targets.
2009-04-28  Nathan Froyd  <froydnj@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* gcc.target/powerpc/20020118-1.c: Skip on vxworks targets.
	* gcc.dg/20020103-1.c: Check for __ppc.
	* gcc.dg/asm-b.c: Check for __ppc.
	* gcc.dg/20020919-1.c: Check for __ppc.
	* gcc.dg/20020312-2.c: Likewise.
	* gcc.dg/trampoline-1.c: Add appropriate NO_TRAMPOLINES #ifndefs.
	* gcc.dg/torture/asm-subreg-1.c: Skip on sparc vxworks targets.
	* gcc.dg/attr-weakref-1.c: Skip on selected vxworks targets.
	* g++.dg/warn/weak1.C: Likewise.
	* gcc.dg/tree-ssa/20030714-1.c (find_base_value): Declare as
	static so appropriate optimizations kick in.
	(find_base_value_wrapper): New function.
	* g++.dg/eh/simd-5.C: Fix target triplet.
	* gcc.target/arm/long-calls-1.c: Skip for -mlong-calls.

Co-Authored-By: Mark Mitchell <mark@codesourcery.com>

From-SVN: r146876
2009-04-28 08:38:37 +00:00
Mark Mitchell 07d8efe385 arm.c (arm_builtin_va_list): New function.
2009-02-20  Mark Mitchell  <mark@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_builtin_va_list): New function.
	(arm_expand_builtin_va_start): Likewise.
	(arm_gimplify_va_arg_expr): Likewise.
	(TARGET_BUILD_BUILTIN_VA_LIST): Define.
	(TARGET_BUILD_BUILTIN_VA_START): Likewise.
	(TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
	(va_list_type): New variable.
	(arm_mangle_type): Mangle va_list_type appropriately.

testsuite:
	* gcc.target/arm/va_list.c: New test.
	* g++.dg/abi/arm_va_list.C: Likewise.
	* lib/target-supports.exp (check_effective_target_arm_eabi): New
	function.
	* g++.dg/cpp0x/temp-va-arg-bug.C, g++.dg/other/stdarg1.C,
	g++.dg/warn/miss-format-1.C, g++.dg/warn/miss-format-3.C,
	g++.dg/warn/miss-format-4.C, g++.dg/warn/miss-format-5.C,
	g++.dg/warn/miss-format-6.C, g++.old-deja/g++.other/vaarg2.C,
	g++.old-deja/g++.other/vaarg3.C, g++.old-deja/g++.other/vaarg4.C,
	g++.old-deja/g++.pt/builtin.C: Use -Wno-abi on ARM EABI targets.

Co-Authored-By: Joseph Myers <joseph@codesourcery.com>

From-SVN: r144323
2009-02-20 15:19:38 +00:00
Paul Brook 7b7d60003f Fix broken commit from r143594.
From-SVN: r143705
2009-01-27 16:14:13 +00:00
Mark Mitchell 670dc171dc long-calls-1.c: Tolerate the lack of sibling calls and/or PLT markers.
* gcc.target/arm/long-calls-1.c: Tolerate the lack of sibling
	calls and/or PLT markers.
	* gcc.target/arm/long-calls-2.c: Tolerate the lack of sibling
	calls and/or PLT markers.
	* gcc.target/arm/long-calls-3.c: Tolerate the lack of sibling
	calls and/or PLT markers.
	* gcc.target/arm/long-calls-4.c: Tolerate the lack of sibling
	calls and/or PLT markers.

From-SVN: r143381
2009-01-14 19:37:02 +00:00
Julian Brown 41d3c94943 2009-01-14 Julian Brown <julian@codesourcery.com>
* gcc.target/arm/eabi1.c (__eabi_uread4, __eabi_uwrite4)
	(__eabi_uread8, __eabi_uwrite8): Change spellings of declarations
	to...
	(__aeabi_uread4, __aeabi_uwrite4, __aeabi_uread8, __aeabi_uwrite8):
	These.

From-SVN: r143361
2009-01-14 01:44:39 +00:00
Uros Bizjak 025fa62ffc pr36141.c: Move to ...
* gcc.c-torture/pr36141.c: Move to ...
	* gcc.c-torture/compile/pr36141.c: ... here.
	* gcc.dg/arm-g2.c: Move to ...
	* gcc.target/arm/g2.c: ... here.
	* gcc.dg/arm-vfp1.c: Move to ...
	* gcc.target/arm/vfp1.c: ... here.
	* gcc.dg/20031108-1: Move to ...
	* gcc.target/arm/20031108-1.c: ... here.
	* gcc.dg/20030909-1: Move to ...
	* gcc.target/arm/20030909-1.c: ... here.
	* gcc.dg/arm-mmx-1.c: Move to ...
	* gcc.target/arm/mmx-1.c: ... here.
	* gcc.dg/arm-scd[123].c: Move to ...
	* gcc.target/arm/scd[123].c: ... here.
	* gcc.dg/arm-asm.c: Move to ...
	* gcc.target/arm/asm.c: ... here.
	* gcc.dg/20080410-1: Move to ...
	* gcc.target/sh/20080410-1.c: ... here.
	* gcc.dg/globalreg-1.c: Move to ...
	* gcc.target/sparc/globalreg-1.c: ... here.

From-SVN: r140340
2008-09-13 15:26:46 +02:00
Joseph Myers 658896fbb8 polytypes.c: Use dg-message separately from dg-error to match separate messages.
* gcc.target/arm/neon/polytypes.c: Use dg-message separately from
	dg-error to match separate messages.

From-SVN: r137381
2008-07-02 20:35:08 +01:00
Paul Brook 007e61c28b extend.texi: Clarify use of __attribute__((naked)).
gcc/

2008-05-23  Paul Brook  <paul@codesourcery.com>
	    Carlos O'Donell  <carlos@codesourcery.com>

	* doc/extend.texi: Clarify use of __attribute__((naked)).
	* doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
	* target.h (gcc_target): Add allocate_stack_slots_for_args.
	* function.c (use_register_for_decl): Use
	targetm.calls.allocate_stack_slots_for_args.
	* target-def.h (TARGET_CALLS): Add 
	TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
	* config/arm/arm.c (arm_allocate_stack_slots_for_args): 
	New function.
	(TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.

gcc/testsuite/

2008-05-23  Paul Brook  <paul@codesourcery.com>
	    Carlos O'Donell  <carlos@codesourcery.com>

	* gcc.target/arm/naked-1.c: New test.
	* gcc.target/arm/naked-2.c: New test.


Co-Authored-By: Carlos O'Donell <carlos@codesourcery.com>

From-SVN: r135831
2008-05-23 20:36:57 +00:00
Uros Bizjak f95ae12aa6 arm-eabi1.c, [...]: Move to gcc.target/arm directory.
* gcc.dg/arm-eabi1.c, gcc.dg/symbian1.c, cc.dg/symbian2.c,
	gcc.dg/symbian3.c, gcc.dg/symbian4.c, gcc.dg/symbian5.c,
	gcc.dg/20051215-1.c: Move to gcc.target/arm directory.
	* gcc.dg/const-compare.c, gcc.dg/non-lazy-ptr-test.c,
	gcc.dg/unsigned-long-compare.c, gcc.dg/rs6000-leaf.c: Move to
	gcc.target/powerpc directory.
	* gcc.dg/m68k-pic-1.c, gcc.dg/m68k-slp-ice.c: Move to
	gcc.target/m68k directory.
	* gcc.dg/i386-darwin-fpmath.c: Move to gcc.target/i386 directory.
	* gcc.dg/cris-peep2-andu1.c, gcc.dg/cris-peep2-andu2.c,
	gcc.dg/cris-peep2-xsrand.c, gcc.dg/cris-peep2-xsrand2.c: Move to
	gcc.target/cris directory.
	* gcc.dg/20020620-1.c: Move to gcc.target/mips directory.
	* gcc.dg/bfin-longcall-1.c, gcc.dg/bfin-longcall-2.c: Move to
	gcc.target/bfin directory.

	* gcc.target/sh: New directory.
	* gcc.target/sh/sh.exp: New file.
	* gcc.dg/pr21255-1.c, gcc.dg/pr21255-2-mb.c, gcc.dg/pr21255-2-ml.c,
	gcc.dg/pr21255-3.c, gcc.dg/pr21255-4.c, gcc.dg/sh4a-bitmovua.c,
	gcc.dg/sh4a-cos.c, gcc.dg/sh4a-cosf.c, gcc.dg/sh4a-fprun.c,
	gcc.dg/sh4a-fsrra.c, gcc.dg/sh4a-memmovua.c, gcc.dg/sh4a-sin.c,
	gcc.dg/sh4a-sincosf.c, gcc.dg/sh4a-sinf.c gcc.dg/sh-relax.c,
	gcc.dg/sh-relax-vxworks.c: Move to gcc.target/sh directory.

From-SVN: r127828
2007-08-27 10:47:33 +02:00
Nick Clifton cd976c16a3 execute.exp: Change copyright header to refer to version 3 of the GNU General Public License...
* gcc.c-torture/execute/execute.exp: Change copyright header to refer to version
  3 of the GNU General Public License and to point readers at the COPYING3 file
  and the FSF's license web page.
* gcc.c-torture/execute/ieee/ieee.exp, gcc.c-torture/unsorted/unsorted.exp,
  gcc.c-torture/compile/compile.exp, gcc.c-torture/compile/structs.c, 
  gcc.target/powerpc/powerpc.exp, gcc.target/arm/neon/neon.exp, gcc.target/arm/arm.exp,
  gcc.target/cris/torture/cris-torture.exp, gcc.target/cris/cris.exp, gcc.target/ia64/ia64.exp,
  gcc.target/alpha/alpha.exp, gcc.target/m68k/m68k.exp, gcc.target/spu/spu.exp, gcc.target/mips/mips.exp,
  gcc.target/sparc/sparc.exp, gcc.target/i386/i386.exp, gcc.target/x86_64/abi/abi-x86_64.exp, gnat.dg/specs/specs.exp,
  gnat.dg/dg.exp, gnat.dg/style/style.exp, gcc.dg/special/mips-abi.exp, gcc.dg/special/special.exp,
  gcc.dg/pch/pch.exp, gcc.dg/vxworks/vxworks.exp, gcc.dg/dg.exp, gcc.dg/charset/charset.exp, gcc.dg/weak/weak.exp,
  gcc.dg/tree-ssa/tree-ssa.exp, gcc.dg/tls/tls.exp, gcc.dg/cpp/cpp.exp, gcc.dg/cpp/trad/trad.exp,
  gcc.dg/matrix/matrix.exp, gcc.dg/vmx/vmx.exp, gcc.dg/compat/struct-layout-1.exp, gcc.dg/compat/compat.exp,
  gcc.dg/compat/struct-layout-1_generate.c, gcc.dg/debug/debug.exp, gcc.dg/debug/dwarf2/dwarf2.exp, gcc.dg/tree-prof/tree-prof.exp,
  gcc.dg/ipa/ipa.exp, gcc.dg/dfp/dfp.exp, gcc.dg/noncompile/noncompile.exp,
  gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp, gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp,
  gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp, gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp,
  gcc.dg/vect/vect.exp, gcc.dg/format/format.exp, gcc.misc-tests/i386-prefetch.exp, gcc.misc-tests/sort2.exp,
  gcc.misc-tests/matrix1.exp, gcc.misc-tests/dectest.exp, gcc.misc-tests/options.exp, gcc.misc-tests/gcov.exp,
  gcc.misc-tests/mg-2.exp, gcc.misc-tests/mg.exp, gcc.misc-tests/bprob.exp, gcc.misc-tests/acker1.exp,
  gcc.misc-tests/dhry.exp, gcc.misc-tests/linkage.exp, gcc.misc-tests/arm-isr.exp, gcc.misc-tests/sieve.exp,
  g++.old-deja/g++.niklas/README, g++.old-deja/g++.gb/README, g++.old-deja/old-deja.exp,
  gfortran.fortran-torture/execute/execute.exp, gfortran.fortran-torture/compile/compile.exp,
  treelang/output/output-1.c, treelang/output/output-1.tree, treelang/execute/execute.exp, treelang/Makefile.in,
  treelang/compile/compile.exp, g++.dg/dg.exp, g++.dg/debug/debug.exp, g++.dg/debug/dwarf2/dwarf2.exp,
  g++.dg/charset/charset.exp, g++.dg/vect/vect.exp, g++.dg/tls/tls.exp, g++.dg/tree-prof/tree-prof.exp,
  g++.dg/pch/pch.exp, g++.dg/special/ecos.exp, g++.dg/compat/struct-layout-1.exp,
  g++.dg/compat/struct-layout-1_generate.c, g++.dg/compat/compat.exp, g++.dg/gcov/gcov.exp,
  g++.dg/bprob/bprob.exp, config/default.exp, gcc.test-framework/test-framework.awk,
  gcc.test-framework/gen_directive_tests, gcc.test-framework/test-framework.exp,
  objc.dg/special/special.exp, objc.dg/gnu-encoding/gnu-encoding.exp,
  objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c, objc.dg/pch/pch.exp, objc.dg/dg.exp, lib/copy-file.exp,
  lib/profopt.exp, lib/gcc.exp, lib/mike-g++.exp, lib/c-compat.exp, lib/scanrtl.exp, lib/gfortran-dg.exp, lib/g++.exp,
  lib/obj-c++.exp, lib/wrapper.exp, lib/gnat-dg.exp, lib/compat.exp, lib/c-torture.exp, lib/gcc-dg.exp, lib/scanasm.exp, lib/gnat.exp,
  lib/treelang-dg.exp, lib/prune.exp, lib/gcov.exp, lib/treelang.exp, lib/dg-pch.exp, lib/scantree.exp,
  lib/g++-dg.exp, lib/objc-dg.exp, lib/file-format.exp, lib/target-libpath.exp, lib/obj-c++-dg.exp, lib/scandump.exp,
  lib/target-supports-dg.exp, lib/gcc-defs.exp, lib/fortran-torture.exp, lib/objc.exp, lib/scanipa.exp,
  lib/mike-gcc.exp, lib/objc-torture.exp, lib/gfortran.exp, lib/target-supports.exp, obj-c++.dg/dg.exp, gfortran.dg/dg.exp,
  gfortran.dg/vect/vect.exp, objc/execute/execute.exp, objc/execute/exceptions/exceptions.exp, 
  objc/compile/compile.exp: Likewise.

From-SVN: r127127
2007-08-01 16:25:11 +00:00