[AArch64] vqneg and vqabs intrinsics implementation.

This patch implements vqneg_s64, vqnegd_s64, vqabs_s64 and vqabsd_s64
AArch64 intrinsics.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209640 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Vreinterpret re-implemention.

This patch re-implements vreinterpret intrinsics to directly call a
cast. The aim is to forward as much information to front-end as
possible.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209641 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] 64-bit float vreinterpret implemention

This patch introduces vreinterpret implementation for vectors with
64-bit float lanes and adds testcase for those intrinsics.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209642 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Define TARGET_FLAGS_REGNUM

Ramana noted:

This defines TARGET_FLAGS_REGNUM for AArch64 to be CC_REGNUM. Noticed
this turns on the cmpelim pass after reload and in a few examples and
a couple of benchmarks I noticed a number of comparisons getting
deleted.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209643 138bc75d-0d04-0410-961f-82ee72b054a4
	* fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
	(Error_Msg_N): Likewise.
	(Error_Msg_NE): Likewise.
	(Get_External_Name_With_Suffix): Likewise.
	* types.h (Fat_Pointer): Delete.
	(String_Pointer): New type.
	(DECLARE_STRING_POINTER): New macro.
	* gcc-interface/decl.c (create_concat_name): Adjust.
	* gcc-interface/trans.c (post_error): Likewise.
	(post_error_ne): Likewise.
	* gcc-interface/misc.c (internal_error_function): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209644 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Fix TLS for ILP32.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209645 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c/59073
c/
	* c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
	fails, don't set OM_PARALLEL_COMBINED and return NULL.
cp/
	* parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
	fails, don't set OM_PARALLEL_COMBINED and return NULL.
testsuite/
	* c-c++-common/gomp/pr59073.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209646 138bc75d-0d04-0410-961f-82ee72b054a4
Use counter_mode on count_exp to get mode

gcc/

	PR target/60868
	* config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode 
	on count_exp to get mode.

gcc/testsuite/

	PR target/60868
	* gcc.target/i386/pr60868.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209648 138bc75d-0d04-0410-961f-82ee72b054a4
Merge longlong.h from glibc tree.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209649 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-22  Martin Jambor  <mjambor@suse.cz>

	* cgraphclones.c (cgraph_function_versioning): Copy
	ipa_transforms_to_apply instead of asserting it is empty.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209650 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-22  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/43622
gcc/c-family/
	* c-common.c (registered_builtin_types): Make non-static.
	* c-common.h (registered_builtin_types): Declare.
gcc/cp/
	* rtti.c (emit_support_tinfo_1): New function, extracted from
	emit_support_tinfos.
	(emit_support_tinfos): Call it and iterate on registered_builtin_types.
libstdc++-v3/
	* config/abi/pre/gnu.ver (CXXABI_1.3.9): New version, new symbols.
	* config/abi/pre/gnu-versioned-namespace.ver: New symbols.
	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209652 138bc75d-0d04-0410-961f-82ee72b054a4
[Patch, microblaze]: Add optimized lshrsi3

When barrel shifter is not present, the immediate value
is greater than #5 and optimization is -OS, the
compiler will generate shift operation using loop.

Changelog

2013-11-26  David Holsgrove <david.holsgrove@xilinx.com>

 * gcc/config/microblaze/microblaze.md: Add size optimized lshrsi3 insn

ChangeLog/testsuite

2014-02-12  David Holsgrove <david.holsgrove@xilinx.com>

 * gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c: New test.

Signed-off-by:Nagaraju <nmekala@xilix.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
[Patch, microblaze]: Add INIT_PRIORITY support

Added TARGET_ASM_CONSTRUCTOR and TARGET_ASM_DESTRUCTOR macros.

These macros allows users to control the order of initialization
of objects defined at namespace scope with the init_priority
attribute by specifying a relative priority, a constant integral
expression currently bounded between 101 and 65535 inclusive.

Lower numbers indicate a higher priority.

Changelog

2013-11-26  Nagaraju Mekala <nagaraju.mekala@xilinx.com>

 * gcc/config/microblaze/microblaze.c: Add microblaze_asm_constructor,
   microblaze_asm_destructor. Define TARGET_ASM_CONSTRUCTOR and
   TARGET_ASM_DESTRUCTOR.

Signed-off-by:nagaraju <nmekala@xilix.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
[Patch, microblaze]: Add supervisory call support

A function can be executed in supervisory mode when a function
is declared with svc_handler attribute.

If a function with svc_handler is called, the processor switches
to supervisory mode and executes. After executing the function
it returns to normal mode.

Same feature can also be invoked with svc_table_handler attribute
but this attribute will accept a service ID, to be used for
calling the function.

Signed-off-by:nagaraju <nmekala@xilix.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
[Patch, microblaze]: Added Break handler support

Break handler is used to support a normal hardware break.
This is similar to interrupt_handler except that RTBD should be used instead of RTID.

Signed-off-by:Nagaraju <nmekala@xilix.com>
Signed-off-by:David Holsgrove <david.holsgrove@xilinx.com>
[Patch, microblaze]: Increase max alignment to please the testsuite

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
[Patch, microblaze]: Disable fivopts by default

Turn off ivopts by default. Interferes with cse.

Changelog

2013-03-18  Edgar E. Iglesias <edgar.iglesias@xilinx.com>

 * gcc/common/config/microblaze/microblaze-common.c
   (microblaze_option_optimization_table): Disable fivopts by default.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
[Patch, microblaze]: Use bralid for profiler calls

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
[Patch, microblaze]: Enable DWARF exception handling support.

Changelog

2013-03-18  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
            David Holsgrove <david.holsgrove@xilinx.com>

 * common/config/microblaze/microblaze-common.c: Remove
   TARGET_EXCEPT_UNWIND_INFO definition.
 * config/microblaze/microblaze-protos.h: Add
   microblaze_eh_return prototype.
 * gcc/config/microblaze/microblaze.c: (microblaze_must_save_register,
   microblaze_expand_epilogue, microblaze_return_addr): Handle
   calls_eh_return
   (microblaze_eh_return): New function.
 * gcc/config/microblaze/microblaze.h: Define RETURN_ADDR_OFFSET,
   EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX,
   ASM_PREFERRED_EH_DATA_FORMAT
 * gcc/config/microblaze/microblaze.md: Define eh_return pattern.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
[Patch, microblaze]: Fixed missing save of r18 in fast_interrupt.

Register 18 is used as a clobber register, and must be stored when
entering a fast_interrupt. Before this fix, register 18 was only
saved if it was used directly in the interrupt function.

However, if the fast_interrupt function called a function that used
r18, the register would not be saved, and thus be mangled
upon returning from the interrupt.

Changelog

2014-02-27  Klaus Petersen <klauspetersen@gmail.com>

 * gcc/config/microblaze/microblaze.c: Check for fast_interrupt in
   microblaze_must_save_register.

Signed-off-by: Klaus Petersen <klauspetersen@gmail.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>