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