2011-05-13 Michael Hope <email address hidden>
gcc/
Backport from mainline:
2011-05-05 Michael Hope <email address hidden>
PR pch/45979
* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
__ARM_EABI__ hosts.
2011-05-11 Ramana Radhakrishnan <email address hidden>
Backport from mainline
Julian Brown <email address hidden>
gcc/
* config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
parenthesis in D-register case.
gcc/testsuite/
* gcc.target/arm/neon-vset_lanes8.c: New test.
2011-05-05 Andrew Stubbs <email address hidden>
Merge from FSF 4.5 branch r173417 (pre 4.5.4).
2011-05-03 Tom de Vries <email address hidden>
gcc/
* stmt.c (set_jump_prob): Make robust against *inv_scale == 0.
2011-05-06 Richard Sandiford <email address hidden>
gcc/
From Sergey Grechanik <email address hidden>, approved for mainline
* config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS
for constant vectors.
2011-04-28 Andrew Stubbs <email address hidden>
Merge from FSF 4.5 branch r173113 (4.5.3 release).
2011-04-20 Richard Sandiford <email address hidden>
gcc/
PR target/46329
* config/arm/arm.c (arm_legitimate_constant_p_1): Return false
for all Neon struct constants.
2011-04-20 Richard Sandiford <email address hidden>
gcc/
* doc/tm.texi (LEGITIMATE_CONSTANT_P): Replace with...
(TARGET_LEGITIMATE_CONSTANT_P): ...this.
* target.h (gcc_target): Add legitimate_constant_p.
* target-def.h (TARGET_LEGITIMATE_CONSTANT_P): Define.
(TARGET_INITIALIZER): Include it.
* calls.c (precompute_register_parameters): Replace uses of
LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
(emit_library_call_value_1): Likewise.
* expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
(compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
* recog.c (general_operand, immediate_operand): Likewise.
* reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
* reload1.c (init_eliminable_invariants): Likewise.
* targhooks.h (default_legitimate_constant_p); Declare.
* targhooks.c (default_legitimate_constant_p): New function.
* config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
* config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
(THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
* config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
(arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
(arm_legitimate_constant_p): New functions.
(arm_cannot_force_const_mem): Make static.
2011-04-20 Richard Sandiford <email address hidden>
gcc/
* hooks.h (hook_bool_mode_uhwi_false): Declare.
* hooks.c (hook_bool_mode_uhwi_false): New function.
* doc/tm.texi (TARGET_ARRAY_MODE_SUPPORTED_P): Document.
* target.h (array_mode_supported_p): New hook.
* target-def.h (TARGET_ARRAY_MODE_SUPPORTED_P): Define if undefined.
(TARGET_INITIALIZER): Include it.
* stor-layout.c (mode_for_array): New function.
(layout_type): Use it.
* config/arm/arm.c (arm_array_mode_supported_p): New function.
(TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2011-04-20 Richard Sandiford <email address hidden>
gcc/testsuite/
Backport from mainline:
2011-04-12 Richard Sandiford <email address hidden>
* gcc.target/arm/neon-vld3-1.c: New test.
* gcc.target/arm/neon-vst3-1.c: New test.
* gcc.target/arm/neon/v*.c: Regenerate.
gcc/
Backport from mainline:
2011-04-12 Richard Sandiford <email address hidden>
* config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
size of a '%A' memory reference.
(T_DREG, T_QREG): New neon_builtin_type_bits.
(arm_init_neon_builtins): Assert that the load and store operands
are neon_struct_operands.
(locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
(NEON_ARG_MEMORY): New builtin_arg.
(neon_dereference_pointer): New function.
(arm_expand_neon_args): Add a neon_builtin_type_bits argument.
Handle NEON_ARG_MEMORY.
(arm_expand_neon_builtin): Update after above interface changes.
Use NEON_ARG_MEMORY for loads and stores.
* config/arm/predicates.md (neon_struct_operand): New predicate.
* config/arm/neon.md (V_two_elem): Tweak formatting.
(V_three_elem): Use BLKmode for accesses that have no associated mode.
(neon_vld1<mode>, neon_vld1_dup<mode>)
(neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
(neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
(neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
(neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
(neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
(neon_vst4<mode>): Replace pointer operand with a memory operand.
Use %A in the output template.
(neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
(neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
(neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
the width of the memory access. Remove post-increment.
* config/arm/neon-testgen.ml: Allow addresses to have an alignment.
2011-04-20 Richard Sandiford <email address hidden>
gcc/
Backport from mainline:
2011-03-30 Richard Sandiford <email address hidden>
Ramana Radhakrishnan <email address hidden>
PR target/43590
* config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
operand 1 and reshuffle the operands to match.
(neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
2011-04-26 Chung-Lin Tang <email address hidden>
Backport from mainline:
2011-03-21 Chung-Lin Tang <email address hidden>
gcc/
* simplify-rtx.c (simplify_binary_operation_1): Handle
(xor (and A B) C) case when B and C are both constants.
gcc/testsuite/
* gcc.target/arm/xor-and.c: New.
2011-03-18 Chung-Lin Tang <email address hidden>
gcc/
* combine.c (try_combine): Do simplification only call of
subst() on i2 even when i1 is present. Update comments.
gcc/testsuite/
* gcc.target/arm/unsigned-extend-1.c: New.