config.host: (arm*-*-freebsd*): Remove.
* config.host: (arm*-*-freebsd*): Remove. (arm*-*-linux*, arm*-*-uclinux*): Simplify logic. (arm*-*-elf*): Remove. (arm*-*-wince-pe*): Remove. * arm/unwind-arm.c (struct fpa_reg): Delete. (struct fpa_regs): Delete. (phase1_vrs): Remove fpa element. (_Unwind_VRS_Get): Remove _UVRSC_FPA. (_Unwind_VRS_Set, _Unwind_VRS_Pop): Likewise. * arm/pr-support.c (__gnu_unwind_execute): Remove FPA support. * ieee754-sf.S (floatundisf): Remove FPA support. (floatdisf): Likewise. * ieee75f-df.S (floatundidf): Likewise. (floatdidf): Likewise. From-SVN: r194138
This commit is contained in:
parent
37e33ecb85
commit
5005fe220a
@ -1,3 +1,20 @@
|
||||
2012-12-04 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* config.host: (arm*-*-freebsd*): Remove.
|
||||
(arm*-*-linux*, arm*-*-uclinux*): Simplify logic.
|
||||
(arm*-*-elf*): Remove.
|
||||
(arm*-*-wince-pe*): Remove.
|
||||
* arm/unwind-arm.c (struct fpa_reg): Delete.
|
||||
(struct fpa_regs): Delete.
|
||||
(phase1_vrs): Remove fpa element.
|
||||
(_Unwind_VRS_Get): Remove _UVRSC_FPA.
|
||||
(_Unwind_VRS_Set, _Unwind_VRS_Pop): Likewise.
|
||||
* arm/pr-support.c (__gnu_unwind_execute): Remove FPA support.
|
||||
* ieee754-sf.S (floatundisf): Remove FPA support.
|
||||
(floatdisf): Likewise.
|
||||
* ieee75f-df.S (floatundidf): Likewise.
|
||||
(floatdidf): Likewise.
|
||||
|
||||
2012-11-29 Kai Tietz <ktietz@redhat.com>
|
||||
|
||||
PR target/55445
|
||||
|
@ -320,39 +320,21 @@ arm-wrs-vxworks)
|
||||
tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-fdpbit"
|
||||
extra_parts="$extra_parts crti.o crtn.o"
|
||||
;;
|
||||
arm*-*-freebsd*)
|
||||
tmake_file="$tmake_file arm/t-arm arm/t-strongarm-elf t-fdpbit"
|
||||
;;
|
||||
arm*-*-netbsdelf*)
|
||||
tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
|
||||
;;
|
||||
arm*-*-linux*) # ARM GNU/Linux with ELF
|
||||
tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix"
|
||||
case ${host} in
|
||||
arm*-*-linux-*)
|
||||
tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
|
||||
tm_file="$tm_file arm/bpabi-lib.h"
|
||||
unwind_header=config/arm/unwind-arm.h
|
||||
;;
|
||||
*)
|
||||
tmake_file="$tmake_file arm/t-linux"
|
||||
;;
|
||||
esac
|
||||
tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
|
||||
tm_file="$tm_file arm/bpabi-lib.h"
|
||||
unwind_header=config/arm/unwind-arm.h
|
||||
tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
|
||||
;;
|
||||
arm*-*-uclinux*) # ARM ucLinux
|
||||
tmake_file="${tmake_file} t-fixedpoint-gnu-prefix"
|
||||
case ${host} in
|
||||
arm*-*-uclinux*eabi)
|
||||
tmake_file="${tmake_file} arm/t-bpabi"
|
||||
tm_file="$tm_file arm/bpabi-lib.h"
|
||||
unwind_header=config/arm/unwind-arm.h
|
||||
;;
|
||||
esac
|
||||
tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
|
||||
extra_parts="$extra_parts crti.o crtn.o"
|
||||
;;
|
||||
arm*-*-ecos-elf)
|
||||
tmake_file="${tmake_file} arm/t-bpabi"
|
||||
tm_file="$tm_file arm/bpabi-lib.h"
|
||||
unwind_header=config/arm/unwind-arm.h
|
||||
tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
|
||||
extra_parts="$extra_parts crti.o crtn.o"
|
||||
;;
|
||||
@ -373,13 +355,6 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
|
||||
tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
|
||||
unwind_header=config/arm/unwind-arm.h
|
||||
;;
|
||||
arm*-*-elf)
|
||||
tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
|
||||
extra_parts="$extra_parts crti.o crtn.o"
|
||||
;;
|
||||
arm*-wince-pe*)
|
||||
tmake_file="$tmake_file arm/t-arm arm/t-wince-pe"
|
||||
;;
|
||||
avr-*-rtems*)
|
||||
tmake_file="$tmake_file avr/t-avr avr/t-rtems t-fpbit"
|
||||
tm_file="$tm_file avr/avr-lib.h"
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* ieee754-df.S double-precision floating point support for ARM
|
||||
|
||||
Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2012
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Nicolas Pitre (nico@cam.org)
|
||||
|
||||
This file is free software; you can redistribute it and/or modify it
|
||||
@ -36,9 +37,7 @@
|
||||
*/
|
||||
|
||||
|
||||
@ For FPA, float words are always big-endian.
|
||||
@ For VFP, floats words follow the memory system mode.
|
||||
#if defined(__VFP_FP__) && !defined(__ARMEB__)
|
||||
#ifndef __ARMEB__
|
||||
#define xl r0
|
||||
#define xh r1
|
||||
#define yl r2
|
||||
@ -494,24 +493,10 @@ ARM_FUNC_START floatundidf
|
||||
ARM_FUNC_ALIAS aeabi_ul2d floatundidf
|
||||
|
||||
orrs r2, r0, r1
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
do_it eq, t
|
||||
mvfeqd f0, #0.0
|
||||
#else
|
||||
do_it eq
|
||||
#endif
|
||||
RETc(eq)
|
||||
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
@ For hard FPA code we want to return via the tail below so that
|
||||
@ we can return the result in f0 as well as in r0/r1 for backwards
|
||||
@ compatibility.
|
||||
adr ip, LSYM(f0_ret)
|
||||
@ Push pc as well so that RETLDM works correctly.
|
||||
do_push {r4, r5, ip, lr, pc}
|
||||
#else
|
||||
do_push {r4, r5, lr}
|
||||
#endif
|
||||
|
||||
mov r5, #0
|
||||
b 2f
|
||||
@ -520,24 +505,10 @@ ARM_FUNC_START floatdidf
|
||||
ARM_FUNC_ALIAS aeabi_l2d floatdidf
|
||||
|
||||
orrs r2, r0, r1
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
do_it eq, t
|
||||
mvfeqd f0, #0.0
|
||||
#else
|
||||
do_it eq
|
||||
#endif
|
||||
RETc(eq)
|
||||
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
@ For hard FPA code we want to return via the tail below so that
|
||||
@ we can return the result in f0 as well as in r0/r1 for backwards
|
||||
@ compatibility.
|
||||
adr ip, LSYM(f0_ret)
|
||||
@ Push pc as well so that RETLDM works correctly.
|
||||
do_push {r4, r5, ip, lr, pc}
|
||||
#else
|
||||
do_push {r4, r5, lr}
|
||||
#endif
|
||||
|
||||
ands r5, ah, #0x80000000 @ sign bit in r5
|
||||
bpl 2f
|
||||
@ -552,7 +523,7 @@ ARM_FUNC_ALIAS aeabi_l2d floatdidf
|
||||
mov r4, #0x400 @ initial exponent
|
||||
add r4, r4, #(52-1 - 1)
|
||||
|
||||
@ FPA little-endian: must swap the word order.
|
||||
@ If FP word order does not match integer word order, swap the words.
|
||||
.ifnc xh, ah
|
||||
mov ip, al
|
||||
mov xh, ah
|
||||
@ -580,17 +551,6 @@ ARM_FUNC_ALIAS aeabi_l2d floatdidf
|
||||
add r4, r4, r2
|
||||
b LSYM(Lad_p)
|
||||
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
|
||||
@ Legacy code expects the result to be returned in f0. Copy it
|
||||
@ there as well.
|
||||
LSYM(f0_ret):
|
||||
do_push {r0, r1}
|
||||
ldfd f0, [sp], #8
|
||||
RETLDM
|
||||
|
||||
#endif
|
||||
|
||||
FUNC_END floatdidf
|
||||
FUNC_END aeabi_l2d
|
||||
FUNC_END floatundidf
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* ieee754-sf.S single-precision floating point support for ARM
|
||||
|
||||
Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2012
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Nicolas Pitre (nico@cam.org)
|
||||
|
||||
This file is free software; you can redistribute it and/or modify it
|
||||
@ -325,12 +326,7 @@ ARM_FUNC_START floatundisf
|
||||
ARM_FUNC_ALIAS aeabi_ul2f floatundisf
|
||||
|
||||
orrs r2, r0, r1
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
do_it eq, t
|
||||
mvfeqs f0, #0.0
|
||||
#else
|
||||
do_it eq
|
||||
#endif
|
||||
RETc(eq)
|
||||
|
||||
mov r3, #0
|
||||
@ -340,12 +336,7 @@ ARM_FUNC_START floatdisf
|
||||
ARM_FUNC_ALIAS aeabi_l2f floatdisf
|
||||
|
||||
orrs r2, r0, r1
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
do_it eq, t
|
||||
mvfeqs f0, #0.0
|
||||
#else
|
||||
do_it eq
|
||||
#endif
|
||||
RETc(eq)
|
||||
|
||||
ands r3, ah, #0x80000000 @ sign bit in r3
|
||||
@ -358,14 +349,6 @@ ARM_FUNC_ALIAS aeabi_l2f floatdisf
|
||||
rsc ah, ah, #0
|
||||
#endif
|
||||
1:
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
@ For hard FPA code we want to return via the tail below so that
|
||||
@ we can return the result in f0 as well as in r0 for backwards
|
||||
@ compatibility.
|
||||
str lr, [sp, #-8]!
|
||||
adr lr, LSYM(f0_ret)
|
||||
#endif
|
||||
|
||||
movs ip, ah
|
||||
do_it eq, tt
|
||||
moveq ip, al
|
||||
@ -427,15 +410,6 @@ ARM_FUNC_ALIAS aeabi_l2f floatdisf
|
||||
biceq r0, r0, ip, lsr #31
|
||||
RET
|
||||
|
||||
#if !defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
|
||||
LSYM(f0_ret):
|
||||
str r0, [sp, #-4]!
|
||||
ldfs f0, [sp], #4
|
||||
RETLDM
|
||||
|
||||
#endif
|
||||
|
||||
FUNC_END floatdisf
|
||||
FUNC_END aeabi_l2f
|
||||
FUNC_END floatundisf
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ARM EABI compliant unwinding routines
|
||||
Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook
|
||||
|
||||
This file is free software; you can redistribute it and/or modify it
|
||||
@ -226,15 +226,9 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
|
||||
return _URC_FAILURE;
|
||||
continue;
|
||||
}
|
||||
if ((op & 0xfc) == 0xb4)
|
||||
{
|
||||
/* Pop FPA E[4]-E[4+nn]. */
|
||||
op = 0x40000 | ((op & 3) + 1);
|
||||
if (_Unwind_VRS_Pop (context, _UVRSC_FPA, op, _UVRSD_FPAX)
|
||||
!= _UVRSR_OK)
|
||||
return _URC_FAILURE;
|
||||
continue;
|
||||
}
|
||||
if ((op & 0xfc) == 0xb4) /* Obsolete FPA. */
|
||||
return _URC_FAILURE;
|
||||
|
||||
/* op & 0xf8 == 0xb8. */
|
||||
/* Pop VFP D[8]-D[8+nnn] with fldmx. */
|
||||
op = 0x80000 | ((op & 7) + 1);
|
||||
@ -278,15 +272,6 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
|
||||
}
|
||||
if (op == 0xc8)
|
||||
{
|
||||
#ifndef __VFP_FP__
|
||||
/* Pop FPA registers. */
|
||||
op = next_unwind_byte (uws);
|
||||
op = ((op & 0xf0) << 12) | ((op & 0xf) + 1);
|
||||
if (_Unwind_VRS_Pop (context, _UVRSC_FPA, op, _UVRSD_FPAX)
|
||||
!= _UVRSR_OK)
|
||||
return _URC_FAILURE;
|
||||
continue;
|
||||
#else
|
||||
/* Pop VFPv3 registers D[16+ssss]-D[16+ssss+cccc] with vldm. */
|
||||
op = next_unwind_byte (uws);
|
||||
op = (((op & 0xf0) + 16) << 12) | ((op & 0xf) + 1);
|
||||
@ -294,7 +279,6 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
|
||||
!= _UVRSR_OK)
|
||||
return _URC_FAILURE;
|
||||
continue;
|
||||
#endif
|
||||
}
|
||||
if (op == 0xc9)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ARM EABI compliant unwinding routines.
|
||||
Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
|
||||
Contributed by Paul Brook
|
||||
|
||||
This file is free software; you can redistribute it and/or modify it
|
||||
@ -53,16 +53,6 @@ struct vfpv3_regs
|
||||
_uw64 d[16];
|
||||
};
|
||||
|
||||
struct fpa_reg
|
||||
{
|
||||
_uw w[3];
|
||||
};
|
||||
|
||||
struct fpa_regs
|
||||
{
|
||||
struct fpa_reg f[8];
|
||||
};
|
||||
|
||||
struct wmmxd_regs
|
||||
{
|
||||
_uw64 wd[16];
|
||||
@ -90,7 +80,6 @@ typedef struct
|
||||
_uw prev_sp; /* Only valid during forced unwinding. */
|
||||
struct vfp_regs vfp;
|
||||
struct vfpv3_regs vfp_regs_16_to_31;
|
||||
struct fpa_regs fpa;
|
||||
struct wmmxd_regs wmmxd;
|
||||
struct wmmxc_regs wmmxc;
|
||||
} phase1_vrs;
|
||||
@ -181,7 +170,6 @@ _Unwind_VRS_Result _Unwind_VRS_Get (_Unwind_Context *context,
|
||||
return _UVRSR_OK;
|
||||
|
||||
case _UVRSC_VFP:
|
||||
case _UVRSC_FPA:
|
||||
case _UVRSC_WMMXD:
|
||||
case _UVRSC_WMMXC:
|
||||
return _UVRSR_NOT_IMPLEMENTED;
|
||||
@ -213,7 +201,6 @@ _Unwind_VRS_Result _Unwind_VRS_Set (_Unwind_Context *context,
|
||||
return _UVRSR_OK;
|
||||
|
||||
case _UVRSC_VFP:
|
||||
case _UVRSC_FPA:
|
||||
case _UVRSC_WMMXD:
|
||||
case _UVRSC_WMMXC:
|
||||
return _UVRSR_NOT_IMPLEMENTED;
|
||||
@ -380,9 +367,6 @@ _Unwind_VRS_Result _Unwind_VRS_Pop (_Unwind_Context *context,
|
||||
}
|
||||
return _UVRSR_OK;
|
||||
|
||||
case _UVRSC_FPA:
|
||||
return _UVRSR_NOT_IMPLEMENTED;
|
||||
|
||||
case _UVRSC_WMMXD:
|
||||
{
|
||||
_uw start = discriminator >> 16;
|
||||
|
Loading…
Reference in New Issue
Block a user