[llvm-commits] [llvm] r72336 - in /llvm/trunk/lib/Target/ARM: ARMBuildAttrs.h AsmPrinter/ARMAsmPrinter.cpp

Evan Cheng evan.cheng at apple.com
Mon May 25 11:25:41 PDT 2009


On May 23, 2009, at 12:51 PM, Anton Korobeynikov wrote:

> Author: asl
> Date: Sat May 23 14:51:20 2009
> New Revision: 72336
>
> URL: http://llvm.org/viewvc/llvm-project?rev=72336&view=rev
> Log:
> Emit ARM Build Attributes
>
> Added:
>    llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h
> Modified:
>    llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
>
> Added: llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h?rev=72336&view=auto
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h (added)
> +++ llvm/trunk/lib/Target/ARM/ARMBuildAttrs.h Sat May 23 14:51:20 2009
> @@ -0,0 +1,64 @@
> +//===-------- ARMBuildAttrs.h - ARM Build Attributes ------------*-  
> C++ -*-===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open  
> Source
> +// License. See LICENSE.TXT for details.
> +//
> +// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> +//
> +// This file contains enumerations amd support routines for ARM  
> build attributes

"amd"? What does it stand for?

Evan

>
> +// as defined in ARM ABI addenda document (ABI release 2.07).
> +//
> +// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> +
> +#ifndef __TARGET_ARMBUILDATTRS_H__
> +#define __TARGET_ARMBUILDATTRS_H__
> +
> +namespace ARMBuildAttrs {
> +  enum {
> +    File                      = 1,
> +    Section                   = 2,
> +    Symbol                    = 3,
> +    CPU_raw_name              = 4,
> +    CPU_name                  = 5,
> +    CPU_arch                  = 6,
> +    CPU_arch_profile          = 7,
> +    ARM_ISA_use               = 8,
> +    THUMB_ISA_use             = 9,
> +    VFP_arch                  = 10,
> +    WMMX_arch                 = 11,
> +    Advanced_SIMD_arch        = 12,
> +    PCS_config                = 13,
> +    ABI_PCS_R9_use            = 14,
> +    ABI_PCS_RW_data           = 15,
> +    ABI_PCS_RO_data           = 16,
> +    ABI_PCS_GOT_use           = 17,
> +    ABI_PCS_wchar_t           = 18,
> +    ABI_FP_rounding           = 19,
> +    ABI_FP_denormal           = 20,
> +    ABI_FP_exceptions         = 21,
> +    ABI_FP_user_exceptions    = 22,
> +    ABI_FP_number_model       = 23,
> +    ABI_align8_needed         = 24,
> +    ABI_align8_preserved      = 25,
> +    ABI_enum_size             = 26,
> +    ABI_HardFP_use            = 27,
> +    ABI_VFP_args              = 28,
> +    ABI_WMMX_args             = 29,
> +    ABI_optimization_goals    = 30,
> +    ABI_FP_optimization_goals = 31,
> +    compatibility             = 32,
> +    CPU_unaligned_access      = 34,
> +    VFP_HP_extension          = 36,
> +    ABI_FP_16bit_format       = 38,
> +    nodefaults                = 64,
> +    also_compatible_with      = 65,
> +    T2EE_use                  = 66,
> +    conformance               = 67,
> +    Virtualization_use        = 68,
> +    MPextension_use           = 70
> +  };
> +}
> +
> +#endif // __TARGET_ARMBUILDATTRS_H__
>
> Modified: llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp?rev=72336&r1=72335&r2=72336&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp Sat May  
> 23 14:51:20 2009
> @@ -14,6 +14,7 @@
>
> #define DEBUG_TYPE "asm-printer"
> #include "ARM.h"
> +#include "ARMBuildAttrs.h"
> #include "ARMTargetMachine.h"
> #include "ARMAddressingModes.h"
> #include "ARMConstantPoolValue.h"
> @@ -816,6 +817,32 @@
>   if (Subtarget->isTargetDarwin())
>     Mang->setUseQuotes(true);
>
> +  // Emit ARM Build Attributes
> +  if (Subtarget->isTargetELF()) {
> +    // CPU Type
> +    O << "\t.cpu " << Subtarget->getCPUString() << '\n';
> +
> +    // FIXME: Emit FPU type
> +    if (Subtarget->hasVFP2())
> +      O << "\t.eabi_attribute " << ARMBuildAttrs::VFP_arch << ",  
> 2\n";
> +
> +    // Signal various FP modes.
> +    if (!UnsafeFPMath)
> +      O << "\t.eabi_attribute " << ARMBuildAttrs::ABI_FP_denormal  
> << ", 1\n"
> +        << "\t.eabi_attribute " << ARMBuildAttrs::ABI_FP_exceptions  
> << ", 1\n";
> +
> +    if (FiniteOnlyFPMath())
> +      O << "\t.eabi_attribute " <<  
> ARMBuildAttrs::ABI_FP_number_model << ", 1\n";
> +    else
> +      O << "\t.eabi_attribute " <<  
> ARMBuildAttrs::ABI_FP_number_model << ", 3\n";
> +
> +    // 8-bytes alignment stuff.
> +    O << "\t.eabi_attribute " << ARMBuildAttrs::ABI_align8_needed  
> << ", 1\n"
> +      << "\t.eabi_attribute " <<  
> ARMBuildAttrs::ABI_align8_preserved << ", 1\n";
> +
> +    // FIXME: Should we signal R9 usage?
> +  }
> +
>   return Result;
> }
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list