Home | History | Annotate | Download | only in src
      1 //===---- subzero/src/IceTargetLoweringX86.cpp - x86 lowering -*- C++ -*---===//
      2 //
      3 //                        The Subzero Code Generator
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 ///
     10 /// \file
     11 /// \brief Implements portions of the TargetLoweringX86Base class, and related
     12 /// classes.
     13 ///
     14 //===----------------------------------------------------------------------===//
     15 
     16 // Choose one namespace, since including this file should not cause the
     17 // templates to be instantiated.  This avoids duplicating the PoolTypeConverter
     18 // data items, but is ugly as code common to all of x86 is including code
     19 // specific to one of 32 or 64.
     20 // TODO(jpp): replace this ugliness with the beauty of extern template.
     21 
     22 #define X86NAMESPACE X8632
     23 #include "IceTargetLoweringX86Base.h"
     24 #undef X86NAMESPACE
     25 
     26 namespace Ice {
     27 namespace X86 {
     28 
     29 const char *PoolTypeConverter<float>::TypeName = "float";
     30 const char *PoolTypeConverter<float>::AsmTag = ".long";
     31 const char *PoolTypeConverter<float>::PrintfString = "0x%x";
     32 
     33 const char *PoolTypeConverter<double>::TypeName = "double";
     34 const char *PoolTypeConverter<double>::AsmTag = ".quad";
     35 const char *PoolTypeConverter<double>::PrintfString = "0x%llx";
     36 
     37 const char *PoolTypeConverter<uint32_t>::TypeName = "i32";
     38 const char *PoolTypeConverter<uint32_t>::AsmTag = ".long";
     39 const char *PoolTypeConverter<uint32_t>::PrintfString = "0x%x";
     40 
     41 const char *PoolTypeConverter<uint16_t>::TypeName = "i16";
     42 const char *PoolTypeConverter<uint16_t>::AsmTag = ".short";
     43 const char *PoolTypeConverter<uint16_t>::PrintfString = "0x%x";
     44 
     45 const char *PoolTypeConverter<uint8_t>::TypeName = "i8";
     46 const char *PoolTypeConverter<uint8_t>::AsmTag = ".byte";
     47 const char *PoolTypeConverter<uint8_t>::PrintfString = "0x%x";
     48 
     49 } // end of namespace X86
     50 } // end of namespace Ice
     51