2014-06-19  Richard Earnshaw  <rearnsha@arm.com>

	* sysdeps/aarch64/strchr.S: New file.

2014-06-03  Wilco  <wdijkstr@arm.com>

	* sysdeps/aarch64/fpu/math_private.h (libc_fesetround_aarch64)
	(libc_feholdexcept_setround_aarch64) (libc_feholdsetround_aarch64)
	(libc_feresetround_aarch64) (libc_feholdsetround_aarch64_ctx):
	Use _FPU_FPCR_RM_MASK for rounding mask rather than FE_TOWARDZERO.
	* sysdeps/aarch64/fpu/get-rounding-mode.h (get_rounding_mode):
	Likewise.

	* sysdeps/aarch64/fpu/math_private.h
	(libc_feholdexcept_aarch64) (libc_feholdexcept_setround_aarch64)
	(libc_fetestexcept_aarch64) (libc_fesetenv_aarch64)
	(libc_feupdateenv_test_aarch64) (libc_feholdsetround_aarch64)
	(libc_feresetround_aarch64) (libc_feholdsetround_aarch64_ctx):
	Fix declarations.

2014-05-30  Richard Henderson  <rth@twiddle.net>

	* sysdeps/unix/sysv/linux/aarch64/sysdep.h (PSEUDO_RET): Remove.
	(PSEUDO_RET_NOERRNO): Remove.
	(ret): Don't redefine.
	(ret_NOERRNO): Define in terms of ret.
	(ret_ERRVAL): Likewise.

	* sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl): Remove the
	use of PSEUDO_RET; perform the error check directly.

2014-05-29  Richard Henderson  <rth@twiddle.net>

	* sysdeps/unix/sysv/linux/aarch64/sysdep.h (INTERNAL_VSYSCALL_NCS):
	Remove comma before expanding ASM_ARGS_##nr.
	(INTERNAL_SYSCALL_RAW): Make _sys_result signed, instead of casting.
	Make _x0 a strict output; make _x8 a strict input; adjust expansion
	of ASM_ARGS_##nr.
	(CLOBBER_ARGS_0, CLOBBER_ARGS_1, CLOBBER_ARGS_2): Remove.
	(CLOBBER_ARGS_3, CLOBBER_ARGS_4, CLOBBER_ARGS_5): Remove.
	(CLOBBER_ARGS_6, CLOBBER_ARGS_7): Remove.
	(ASM_ARGS_1): Add leading comma.

	* sysdeps/unix/sysv/linux/aarch64/sysdep.h [NOT_IN_libc]
	(SYSCALL_ERROR_HANDLER): Use tpidr_el0 instead of a call
	to __errno_location.
	* sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data (libpthread.so):
	Remove the expected plt for __errno_location.

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
	[NOT_IN_libc] (SINGLE_THREAD_P): Use tpidr_el0 instead of a
	call to __read_tp.

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO):
	Always allocate 64 bytes of stack frame.  Use ldp/stp to create
	it and break it down.
	(DOCARGS_0, DOCARGS_1): Do nothing.
	(DOCARGS_2): Update to store into the new stack frame.
	(DOCARGS_3, DOCARGS_4, DOCARGS_5, DOCARGS_6): Likewise.
	(UNDOCARGS_1): Update to restore from the new stack frame.
	(UNDOCARGS_2, UNDOCARGS_3, UNDOCARGS_4): Likewise.
	(UNDOCARGS_5, UNDOCARGS_6): Likewise.

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
	(SINGLE_THREAD_P): New parameter for result regno.
	(PSEUDO): Update to match; use cbz instead of beq.

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO):
	Use ENTRY to define the _nocancel entry point.  Share the syscall
	and syscall error check paths with the cancel path.
	(PSEUDO_END): New.

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h: Adjust
	whitespace; tabs before and after asm mnemonics.

2014-05-26  Kyle McMartin  <kyle@redhat.com>

	[BZ #16796]
	* sysdeps/aarch64/nptl/tls.h: increase TCB alignment to the
	alignment of struct pthread.

2014-05-25  Richard Henderson  <rth@twiddle.net>

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
	(SINGLE_THREAD_P_PIC): Remove.

2014-05-21  Richard Henderson  <rth@redhat.com>

	* sysdeps/unix/sysv/linux/aarch64/sysdep.h (PSEUDO_RET): Move
	branch to syscall error ...
	(PSEUDO): ... here.
	[NOT_IN_libc] (SYSCALL_ERROR_HANDLER): Rename the label
	from __local_syscall_error to .Lsyscall_error.
	[!NOT_IN_libc] (SYSCALL_ERROR_HANDLER): Branch to __syscall_error.
	(SYSCALL_ERROR): Update label name.

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO):
	Do not use DOARGS/UNDOARGS.
	* sysdeps/unix/sysv/linux/aarch64/sysdep.h (DO_CALL): Likewise.
	(DOARGS_0, DOARGS_1, DOARGS_2, DOARGS_3): Remove.
	(DOARGS_4, DOARGS_5, DOARGS_6, DOARGS_7): Remove.
	(UNDOARGS_0, UNDOARGS_1, UNDOARGS_2, UNDOARGS_3): Remove.
	(UNDOARGS_4, UNDOARGS_5, UNDOARGS_6, UNDOARGS_7): Remove.

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
	(SINGLE_THREAD_P): Use the correct width load.  Fold
	into the ldr offset.

	* sysdeps/unix/sysv/linux/aarch64/sysdep.h [RTLD_PRIVATE_ERRNO]
	(SYSCALL_ERROR_HANDLER): Fold add insn into str offset.

2014-06-02  Wilco  <wdijkstr@arm.com>

	* sysdeps/aarch64/fpu/fpu_control.h (_FPU_SETCW): Remove ISB after
	FPCR write.

2014-06-02  Wilco  <wdijkstr@arm.com>

	[BZ #17009]
	* sysdeps/aarch64/fpu/feupdateenv (feupdateenv):
	Rewrite to reduce FPCR/FPSR accesses.

2014-05-20  Will Newton  <will.newton@linaro.org>

	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO):
	Test the return value of the system call in the nocancel case.

2014-05-20  Will Newton  <will.newton@linaro.org>
	    Yvan Roux  <yvan.roux@linaro.org>

	* sysdeps/unix/sysv/linux/aarch64/sys/user.h: Remove unused
	#include of asm/ptrace.h.
	(PTRACE_GET_THREAD_AREA): Remove #undef.
	(PTRACE_GETHBPREGS): Likewise.
	(PTRACE_SETHBPREGS): Likewise.
	(struct user_regs_struct): New structure.
	(struct user_fpsimd_struct): New structure.
	* sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Remove unused
	#include of asm/ptrace.h and second #include of sys/user.h.
	(PTRACE_GET_THREAD_AREA): Remove #undef.
	(PTRACE_GETHBPREGS): Likewise.
	(PTRACE_SETHBPREGS): Likewise.
	(ELF_NGREG): Use new struct user_regs_struct.
	(elf_fpregset_t): Use new struct user_fpsimd_struct.

2014-04-24  Ian Bolton  <ian.bolton@arm.com>

	* sysdeps/aarch64/fpu/fclrexcpt.c (feclearexcept): Don't write to
	fpsr if value didn't change.
	* sysdeps/aarch64/fpu/fedisblxcpt.c (fedisableexcept): Don't write
	to fpcr if value didn't change.
	* sysdeps/aarch64/fpu/feenablxcpt.c (feenableexcept): Likewise.
	* sysdeps/aarch64/fpu/feholdexcpt.c (feholdexcept): Don't write to
	fpsr or fpcr if value didn't change.
	* sysdeps/aarch64/fpu/fesetenv.c (fesetenv): Likewise.
	* sysdeps/aarch64/fpu/fesetround.c (fesetround): Don't write to
	fpcr if value didn't change.
	* sysdeps/aarch64/fpu/fsetexcptflg.c (fesetexceptflag): Don't write
	to fpsr if value didn't change.

2014-04-17  Ian Bolton  <ian.bolton@arm.com>
	    Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* sysdeps/aarch64/fpu/math_private.h (HAVE_RM_CTX)
	(libc_feholdsetround_aarch64_ctx)
	(libc_feholdsetround_ctx, libc_feholdsetroundf_ctx)
	(libc_feholdsetroundl_ctx, libc_feresetround_aarch64_ctx)
	(libc_feresetround_ctx, libc_feresetroundf_ctx)
	(libc_feresetroundl_ctx, libc_feresetround_noex_aarch64_ctx)
	(libc_feresetround_noex_ctx, libc_feresetround_noexf_ctx)
	(libc_feresetround_noexl_ctx): Define.

2014-04-16  Ian Bolton  <ian.bolton@arm.com>
	    Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* sysdeps/aarch64/fpu/math_private.h: New file.

2014-03-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* sysdeps/aarch64/fpu/feenablxcpt.c (feenableexcept): Detect and
	error absence of trapping exception support.
	* sysdeps/aarch64/fpu/fesetenv.c (fesetenv): Likewise.

2014-04-22  Will Newton  <will.newton@linaro.org>
	    Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>

	* sysdeps/aarch64/__longjmp.S: Include stap-probe.h.
	(__longjmp): Add longjmp and longjmp_target SystemTap
	probes.
	* sysdeps/aarch64/setjmp.S: Include stap-probe.h.
	(__sigsetjmp): Add setjmp SystemTap probe.

2014-04-17  Will Newton  <will.newton@linaro.org>

	[BZ #16629]
	* sysdeps/unix/sysv/linux/aarch64/setcontext.S (__setcontext):
	Re-implement to restore registers in user code and avoid
	rt_sigreturn system call.
