[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