This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [Patch]Option support to ARM MCU Cortex-M7 and related FPU



> 
> I think this gets the build attributes wrong.  By my reading of the
> attributes spec, fpv5-d16 should generate Tag_FP_arch = 8; while
> fpv5-sp-d16 should generate Tag_FP_arch = 8 + Tag_ABI_HardFP_use = 1 (SP
> only).
> 
> For example, if I build with .arch=armv7e-m .fpu=fpv4-sp-d16, I get
> attributes:
> 
>   Tag_CPU_name: "7E-M"
>   Tag_CPU_arch: v7E-M
>   Tag_CPU_arch_profile: Microcontroller
>   Tag_THUMB_ISA_use: Thumb-2
>   Tag_FP_arch: VFPv4-D16
>   Tag_ABI_HardFP_use: SP only
> 
> I should get something equivalent with your new patches.
> 
> You'll probably also need linker patches to reason about the
> compatibility of these attributes.
> 
> And, of course, there need to be tests to validate the merging is done
> correctly :-)
> 
> R.
> 

Patch is updated per your suggestions. Is it OK?

BR,
Terry

include/ChangeLog:
2014-11-20  Terry Guo  <terry.guo@arm.com>
 
      * opcode/arm.h (FPU_VFP_EXT_ARMV8xD): New macro.
      (FPU_VFP_V5D16): Likewise.
      (FPU_VFP_V5_SP_D16): Likewise.
      (FPU_ARCH_VFP_V5D16): Likewise.
      (FPU_ARCH_VFP_V5_SP_D16): Likewise.

bfd/ChangeLog:
2014-11-20  Terry Guo  <terry.guo@arm.com>

     * elf32-arm.c (elf32_arm_merge_eabi_attributes): Extended to support
FPv5.

binutils/ChangeLog:
2014-11-20  Terry Guo  <terry.guo@arm.com>

     * readelf.c (arm_attr_tag_FP_arch): Extended to support FPv5.
 
gas/ChangeLog:
2014-11-20  Terry Guo  <terry.guo@arm.com>
 
     * config/tc-arm.c (fpu_vfp_ext_armv8xd): New. 
     (arm_cpus): Support cortex-m7.
     (arm_fpus): Support fpv5-sp-d16 and fpv5-d16.
     (do_vfp_nsyn_cvt_fpv8): Generate error when use D register for S
     register only target like FPv5-SP-D16.
     (do_neon_cvttb_1): Likewise.
     (do_vfp_nsyn_fpv8): Likewise.
     (do_vrint_1): Likewise.
     (aeabi_set_public_attributes): Set proper FP arch for FPv5.
     * doc/c-arm.texi: Document new cpu and fpu names for cortex-m7.
 
gas/testsuite/ChangeLog:
2014-11-20  Terry Guo  <terry.guo@arm.com>
 
      * gas/arm/armv7e-m+fpv5-d16.s: New.
      * gas/arm/armv7e-m+fpv5-d16.d: Likewise.
      * gas/arm/armv7e-m+fpv5-sp-d16.s: Likewise.
      * gas/arm/armv7e-m+fpv5-sp-d16.d: Likewise.

ld/testsuite/ChangeLog:
2014-11-20  Terry Guo  <terry.guo@arm.com>

      * ld-arm/attr-merge-vfp-4-sp.s: New test source file.
      * ld-arm/attr-merge-vfp-5-sp.s: Likewise.
      * ld-arm/attr-merge-vfp-5.s: Likewise.
      * ld-arm/attr-merge-vfp-8.d: New test.
      * ld-arm/attr-merge-vfp-8r.d: Likewise.
      * ld-arm/attr-merge-vfp-9.d: Likewise.
      * ld-arm/attr-merge-vfp-9r.d: Likewise.
      * ld-arm/attr-merge-vfp-10.d: Likewise.
      * ld-arm/attr-merge-vfp-10r.d: Likewise.
      * ld-arm/attr-merge-vfp-11.d: Likewise.
      * ld-arm/attr-merge-vfp-11r.d: Likewise.
      * ld-arm/attr-merge-vfp-12.d: Likewise.
      * ld-arm/attr-merge-vfp-12r.d: Likewise.
      * ld-arm/attr-merge-vfp-13.d: Likewise.
      * ld-arm/attr-merge-vfp-13r.d: Likewise.
      * ld-arm/attr-merge-vfp-14.d: Likewise.
      * ld-arm/attr-merge-vfp-14r.d: Likewise.
      * ld-arm/arm-elf.exp: Run the new tests.

Attachment: option-support-cortex-m7-v4.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]