[llvm] r190683 - [ARMv8] Emit the proper .fpu directive.

Renato Golin renato.golin at linaro.org
Fri Sep 13 06:36:00 PDT 2013


LGTM.

--renato


On 13 September 2013 12:51, Joey Gouly <joey.gouly at arm.com> wrote:

> Author: joey
> Date: Fri Sep 13 06:51:52 2013
> New Revision: 190683
>
> URL: http://llvm.org/viewvc/llvm-project?rev=190683&view=rev
> Log:
> [ARMv8] Emit the proper .fpu directive.
>
> Patch by Bradley Smith!
>
> Modified:
>     llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp
>     llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
>
> Modified: llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp?rev=190683&r1=190682&r2=190683&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp Fri Sep 13 06:51:52 2013
> @@ -807,8 +807,11 @@ void ARMAsmPrinter::emitAttributes() {
>
>    if (Subtarget->hasNEON() && emitFPU) {
>      /* NEON is not exactly a VFP architecture, but GAS emit one of
> -     * neon/neon-vfpv4/vfpv3/vfpv2 for .fpu parameters */
> -    if (Subtarget->hasVFP4())
> +     * neon/neon-fp-armv8/neon-vfpv4/vfpv3/vfpv2 for .fpu parameters */
> +    if (Subtarget->hasV8FP())
> +      AttrEmitter->EmitTextAttribute(ARMBuildAttrs::Advanced_SIMD_arch,
> +                                     "neon-fp-armv8");
> +    else if (Subtarget->hasVFP4())
>        AttrEmitter->EmitTextAttribute(ARMBuildAttrs::Advanced_SIMD_arch,
>                                       "neon-vfpv4");
>      else
> @@ -823,7 +826,7 @@ void ARMAsmPrinter::emitAttributes() {
>      AttrEmitter->EmitAttribute(ARMBuildAttrs::VFP_arch,
>                                 ARMBuildAttrs::AllowV8FPA);
>      if (emitFPU)
> -      AttrEmitter->EmitTextAttribute(ARMBuildAttrs::VFP_arch, "v8fp");
> +      AttrEmitter->EmitTextAttribute(ARMBuildAttrs::VFP_arch, "fp-armv8");
>      /* VFPv4 + .fpu */
>    } else if (Subtarget->hasVFP4()) {
>      AttrEmitter->EmitAttribute(ARMBuildAttrs::VFP_arch,
>
> Modified: llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll?rev=190683&r1=190682&r2=190683&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll Fri Sep
> 13 06:51:52 2013
> @@ -3,6 +3,7 @@
>  ; RUN: llc < %s -mtriple=thumbv8-linux-gnueabi | FileCheck %s
> --check-prefix=Vt8
>  ; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=+v8fp | FileCheck %s
> --check-prefix=V8-V8FP
>  ; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=+neon | FileCheck %s
> --check-prefix=V8-NEON
> +; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=+v8fp -mattr=+neon |
> FileCheck %s --check-prefix=V8-V8FP-NEON
>  ; This tests that MC/asm header conversion is smooth
>  ;
>  ; V7:      .syntax unified
> @@ -22,11 +23,17 @@
>  ; V8-V8FP:      .syntax unified
>  ; V8-V8FP: .eabi_attribute 6, 14
>  ; V8-V8FP: .eabi_attribute 10, 7
> +; V8-V8FP: .fpu fp-armv8
>
>  ; V8-NEON:      .syntax unified
>  ; V8-NEON: .eabi_attribute 6, 14
>  ; V8-NEON: .eabi_attribute 12, 3
>
> +; V8-V8FP-NEON:      .syntax unified
> +; V8-V8FP-NEON: .eabi_attribute 6, 14
> +; V8-V8FP-NEON: .fpu neon-fp-armv8
> +; V8-V8FP-NEON: .eabi_attribute 10, 7
> +
>  define i32 @f(i64 %z) {
>         ret i32 0
>  }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130913/982673f1/attachment.html>


More information about the llvm-commits mailing list