2013-07-23   Ondřej Bílka  <neleai@seznam.cz>

        * decl.c: Fix comment typos.
        * interface.c: Likewise.
        * trans-array.c: Likewise.
        * trans.c: Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201162 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/avr/avr.md: Explain asm print modifier 'r' for REG.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201163 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64, ILP32] 1/6 Initial support - configury changes

gcc/
	* config.gcc (aarch64*-*-*): Support --with-abi.
	(aarch64*-*-elf): Support --with-multilib-list.
	(aarch64*-*-linux*): Likewise.
	(supported_defaults): Add abi to aarch64*-*-*.
	* configure.ac: Mention AArch64 for --with-multilib-list.
	* configure: Re-generated.
	* config/aarch64/biarchilp32.h: New file.
	* config/aarch64/biarchlp64.h: New file.
	* config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
	(ABI_SPEC): Ditto.
	(MULTILIB_DEFAULTS): Ditto.
	(DRIVER_SELF_SPECS): Ditto.
	(ASM_SPEC): Update to also substitute -mabi.
	* config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
	file whose name depends on -mabi= and -mbig-endian.
	* config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
	TARGET_ILP32.
	(POINTER_SIZE): New define.
	(POINTERS_EXTEND_UNSIGNED): Ditto.
	(enum aarch64_abi_type): New enumeration tag.
	(AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
	(AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
	(TARGET_ILP32): New define.
	* config/aarch64/aarch64.opt (mabi): New.
	(aarch64_abi): New.
	(ilp32, lp64): New values for -mabi.
	* config/aarch64/t-aarch64 (comma): New define.
	(MULTILIB_OPTIONS): Ditto.
	(MULTILIB_DIRNAMES): Ditto.
	* config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
	* doc/invoke.texi: Document -mabi for AArch64.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201164 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64, ILP32] 2/6 More backend changes and support for small absolute and
small PIC addressing models

gcc/

	* config/aarch64/aarch64.c (POINTER_BYTES): New define.
	(aarch64_load_symref_appropriately): In the case of
	SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
	to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
	(aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
	change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
	if 'mode' doesn't equal to 'ptr_mode'.
	(aarch64_output_mi_thunk): Add an assertion on the alignment of
	'vcall_offset'; change to call aarch64_emit_move differently depending
	on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
	to calculate the upper bound of 'vcall_offset'.
	(aarch64_cannot_force_const_mem): Change to also return true if
	mode != ptr_mode.
	(aarch64_legitimize_reload_address): In the case of large
	displacements, add new local variable 'xmode' and an assertion
	based on it; change to use 'xmode' to generate the new rtx and
	reload.
	(aarch64_asm_trampoline_template): Change to generate the template
	differently depending on TARGET_ILP32 or not; change to use
	'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
	(aarch64_trampoline_size): Removed.
	(aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
	and replace immediate literals with it.  Change to use 'ptr_mode'
	instead of 'DImode' and call convert_memory_address if the mode
	of 'fnaddr' doesn't equal to 'ptr_mode'.
	(aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
	to output symbol.
	(aarch64_elf_asm_destructor): Likewise.
	* config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
	on TARGET_ILP32 instead of aarch64_trampoline_size.
	* config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
	of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
	(loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
	(loadwb_pair<GPI:mode>_<P:mode>): ... this.  Replace PTR with P.
	(storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
	(storewb_pair<GPI:mode>_<P:mode>): ... this.
	(add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
	depending on the value of 'mode'.
	(add_losym_<mode>): New.
	(ldr_got_small_<mode>): New, based on ldr_got_small.
	(ldr_got_small): Remove.
	(ldr_got_small_sidi): New.
	* config/aarch64/iterators.md (P): New.
	(PTR): Change to 'ptr_mode' in the condition.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201165 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64, ILP32] 3/6 Change tests to be ILP32-friendly.

gcc/testsuite/

	* gcc.dg/20020219-1.c: Skip the test on aarch64*-*-* in ilp32.
	* gcc.target/aarch64/aapcs64/test_18.c (struct y): Change the field
	type from long to long long.
	* gcc.target/aarch64/atomic-op-long.c: Update dg-final directives
	to have effective-target keywords of lp64 and ilp32.
	* gcc.target/aarch64/fcvt_double_int.c: Likewise.
	* gcc.target/aarch64/fcvt_double_long.c: Likewise.
	* gcc.target/aarch64/fcvt_double_uint.c: Likewise.
	* gcc.target/aarch64/fcvt_double_ulong.c: Likewise.
	* gcc.target/aarch64/fcvt_float_int.c: Likewise.
	* gcc.target/aarch64/fcvt_float_long.c: Likewise.
	* gcc.target/aarch64/fcvt_float_uint.c: Likewise.
	* gcc.target/aarch64/fcvt_float_ulong.c: Likewise.
	* gcc.target/aarch64/vect_smlal_1.c: Replace 'long' with 'long long'.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201166 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64, ILP32] 4/6 Define _ILP32 and __ILP32__.

gcc/

	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
	and __ILP32__ when the ILP32 model is in use.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201167 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64, ILP32] 5/6 Pad pointer-typed stack argument downward in ILP32.

gcc/

	* config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
	pad pointer-typed argument downward.

gcc/testsuite/

	* gcc.target/aarch64/test-ptr-arg-on-stack-1.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201168 138bc75d-0d04-0410-961f-82ee72b054a4
2013-07-23  Tim Shen  <timshen91@gmail.com>

	Implement regex_iterator and regex_token_iterator.
	* include/bits/regex.h: regex_iterator and regex_token_iterator.
	* testsuite/28_regex/iterators/regex_iterator/char/string_01.cc:
	New.
	* testsuite/28_regex/iterators/regex_iterator/wchar_t/string_01.cc:
	New.
	* testsuite/28_regex/iterators/regex_token_iterator/char/string_01.cc:
	New.
	* testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc:
	New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201169 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64, ILP32] 6/6 Add support for "wsp" register.

gcc/

	* config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
	true for SP_REGNUM if mode == ptr_mode.
	* config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
	with value R0_REGNUM + 31.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201170 138bc75d-0d04-0410-961f-82ee72b054a4