//===---- subzero/src/IceTargetLoweringX86.cpp - x86 lowering -*- C++ -*---===// // // The Subzero Code Generator // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// /// /// \file /// \brief Implements portions of the TargetLoweringX86Base class, and related /// classes. /// //===----------------------------------------------------------------------===// // Choose one namespace, since including this file should not cause the // templates to be instantiated. This avoids duplicating the PoolTypeConverter // data items, but is ugly as code common to all of x86 is including code // specific to one of 32 or 64. // TODO(jpp): replace this ugliness with the beauty of extern template. #define X86NAMESPACE X8632 #include "IceTargetLoweringX86Base.h" #undef X86NAMESPACE namespace Ice { namespace X86 { const char *PoolTypeConverter<float>::TypeName = "float"; const char *PoolTypeConverter<float>::AsmTag = ".long"; const char *PoolTypeConverter<float>::PrintfString = "0x%x"; const char *PoolTypeConverter<double>::TypeName = "double"; const char *PoolTypeConverter<double>::AsmTag = ".quad"; const char *PoolTypeConverter<double>::PrintfString = "0x%llx"; const char *PoolTypeConverter<uint32_t>::TypeName = "i32"; const char *PoolTypeConverter<uint32_t>::AsmTag = ".long"; const char *PoolTypeConverter<uint32_t>::PrintfString = "0x%x"; const char *PoolTypeConverter<uint16_t>::TypeName = "i16"; const char *PoolTypeConverter<uint16_t>::AsmTag = ".short"; const char *PoolTypeConverter<uint16_t>::PrintfString = "0x%x"; const char *PoolTypeConverter<uint8_t>::TypeName = "i8"; const char *PoolTypeConverter<uint8_t>::AsmTag = ".byte"; const char *PoolTypeConverter<uint8_t>::PrintfString = "0x%x"; } // end of namespace X86 } // end of namespace Ice