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