-
- Downloads
arm.c (arm_output_fldmx): Output FLDMD instead of FLDMX.
gcc/ * config/arm/arm.c (arm_output_fldmx): Output FLDMD instead of FLDMX. Rename function to... (vfp_output_fldmd): ...this. (vfp_output_fstmx): Output FSTMD instead of FSTMX. Rename function to... (vfp_output_fstmd): ...this. (vfp_emit_fstmx): Don't leave space in the frame layout for the FSTMX format word. Rename function to... (vfp_emit_fstmd): ...this. (arm_get_vfp_saved_size): Don't add in space for the FSTMX format word. (arm_output_epilogue): Adjust comment to reflect use of FSTMD. (arm_unwind_emit_sequence): Don't compensate for the FSTMX format word. Also emit "vsave" assembler directives in such cases rather than "save". * config/arm/libunwind.S (gnu_Unwind_Restore_VFP, gnu_Unwind_Save_VFP): Adjust comments. (gnu_Unwind_Restore_VFP_D, gnu_Unwind_Save_VFP_D): New functions for saving and restoring using FSTMD and FLDMD rather than FSTMX and FLDMX. (gnu_Unwind_Restore_VFP_D_16_to_31, gnu_Unwind_Restore_VFP_D_16_to_31): New functions for saving and restoring the VFPv3 registers 16 .. 31. * config/arm/pr-support.c (gnu_unwind_execute): Add conditional compilation case to correctly handle unwind opcode 0xc8 when using VFP. * config/arm/unwind-arm.c (struct vfpv3_regs): New. (DEMAND_SAVE_VFP_D, DEMAND_SAVE_VFP_V3): New flags. (__gnu_Unwind_Save_VFP_D, __gnu_Unwind_Restore_VFP_D, __gnu_Unwind_Save_VFP_D_16_to_31, __gnu_Unwind_Restore_VFP_D_16_to_31): Declare. (restore_non_core_regs): Restore registers using FLDMD rather than FLDMX if required. Also handle restoration of VFPv3 registers. (_Unwind_VRS_Pop): Handle saving and restoring of registers using FSTMD and FLDMD if required; also handle VFPv3 registers 16 .. 31, including cases where the caller specifies a range of registers that overlaps the d15/d16 boundary. From-SVN: r119838
Showing
- gcc/ChangeLog 39 additions, 0 deletionsgcc/ChangeLog
- gcc/config/arm/arm-protos.h 1 addition, 1 deletiongcc/config/arm/arm-protos.h
- gcc/config/arm/arm.c 25 additions, 27 deletionsgcc/config/arm/arm.c
- gcc/config/arm/libunwind.S 28 additions, 2 deletionsgcc/config/arm/libunwind.S
- gcc/config/arm/pr-support.c 16 additions, 6 deletionsgcc/config/arm/pr-support.c
- gcc/config/arm/unwind-arm.c 122 additions, 16 deletionsgcc/config/arm/unwind-arm.c
- gcc/config/arm/vfp.md 1 addition, 1 deletiongcc/config/arm/vfp.md
Loading
Please register or sign in to comment