Chromium Code Reviews| Index: src/IceTypes.cpp |
| diff --git a/src/IceTypes.cpp b/src/IceTypes.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c2c0b16f19f53f289697346769fc75c5a74e1a73 |
| --- /dev/null |
| +++ b/src/IceTypes.cpp |
| @@ -0,0 +1,76 @@ |
| +//===- subzero/src/IceTypes.cpp - Primitive type properties ---------------===// |
| +// |
| +// The Subzero Code Generator |
| +// |
| +// This file is distributed under the University of Illinois Open Source |
| +// License. See LICENSE.TXT for details. |
| +// |
| +//===----------------------------------------------------------------------===// |
| +// |
| +// This file defines a few attributes of Subzero primitive types. |
| +// |
| +//===----------------------------------------------------------------------===// |
| + |
| +#include "IceDefs.h" |
| +#include "IceTypes.h" |
| + |
| +uint32_t iceTypeWidth(IceType T) { |
| + switch (T) { |
| + case IceType_i1: |
| + return 1; |
| + case IceType_i8: |
| + return 1; |
| + case IceType_i16: |
| + return 2; |
| + case IceType_i32: |
| + return 4; |
| + case IceType_i64: |
| + return 8; |
| + case IceType_f32: |
| + return 4; |
| + case IceType_f64: |
| + return 8; |
| + case IceType_void: |
| + case IceType_NUM: |
| + break; |
|
JF
2014/04/04 04:05:26
This would be a great use of xmacros. Put the enum
Jim Stichnoth
2014/04/06 02:16:09
Done, but using tables instead for now. (I can ch
|
| + } |
| + assert(0 && "Invalid type for iceTypeWidth()"); |
| + return 0; |
| +} |
| + |
| +// ======================== Dump routines ======================== // |
| + |
| +IceOstream &operator<<(IceOstream &Str, IceType T) { |
| + switch (T) { |
| + case IceType_void: |
| + Str << "void"; |
| + return Str; |
| + case IceType_i1: |
| + Str << "i1"; |
| + return Str; |
| + case IceType_i8: |
| + Str << "i8"; |
| + return Str; |
| + case IceType_i16: |
| + Str << "i16"; |
| + return Str; |
| + case IceType_i32: |
| + Str << "i32"; |
| + return Str; |
| + case IceType_i64: |
| + Str << "i64"; |
| + return Str; |
| + case IceType_f32: |
| + Str << "float"; |
| + return Str; |
| + case IceType_f64: |
| + Str << "double"; |
| + return Str; |
| + case IceType_NUM: |
| + default: |
| + assert(0 && "Invalid type for printing"); |
| + break; |
| + } |
| + Str << "???"; |
| + return Str; |
| +} |