1 | //===- ValueTypes.td - ValueType definitions ---------------*- tablegen -*-===// |
---|
2 | // |
---|
3 | // The LLVM Compiler Infrastructure |
---|
4 | // |
---|
5 | // This file is distributed under the University of Illinois Open Source |
---|
6 | // License. See LICENSE.TXT for details. |
---|
7 | // |
---|
8 | //===----------------------------------------------------------------------===// |
---|
9 | // |
---|
10 | // Value types - These values correspond to the register types defined in the |
---|
11 | // ValueTypes.h file. If you update anything here, you must update it there as |
---|
12 | // well! |
---|
13 | // |
---|
14 | //===----------------------------------------------------------------------===// |
---|
15 | |
---|
16 | class ValueType<int size, int value> { |
---|
17 | string Namespace = "MVT"; |
---|
18 | int Size = size; |
---|
19 | int Value = value; |
---|
20 | } |
---|
21 | |
---|
22 | def OtherVT: ValueType<0 , 0>; // "Other" value |
---|
23 | ${int_value_type_defs} |
---|
24 | def f16 : ValueType<16 , $f16>; // 16-bit floating point value |
---|
25 | def f32 : ValueType<32 , $f32>; // 32-bit floating point value |
---|
26 | def f64 : ValueType<64 , $f64>; // 64-bit floating point value |
---|
27 | def f80 : ValueType<80 , $f80>; // 80-bit floating point value |
---|
28 | def f128 : ValueType<128, $f128>; // 128-bit floating point value |
---|
29 | def ppcf128: ValueType<128, $ppcf128>; // PPC 128-bit floating point value |
---|
30 | |
---|
31 | ${int_vector_value_type_defs} |
---|
32 | |
---|
33 | ${float_vector_value_type_defs} |
---|
34 | |
---|
35 | def x86mmx : ValueType<64 , $x86mmx>; // X86 MMX value |
---|
36 | def FlagVT : ValueType<0 , $Glue>; // Pre-RA sched glue |
---|
37 | def isVoid : ValueType<0 , $isVoid>; // Produces no value |
---|
38 | def untyped: ValueType<8 , $Untyped>; // Produces an untyped value |
---|
39 | |
---|
40 | def MetadataVT: ValueType<0, 250>; // Metadata |
---|
41 | |
---|
42 | // Pseudo valuetype mapped to the current pointer size to any address space. |
---|
43 | // Should only be used in TableGen. |
---|
44 | def iPTRAny : ValueType<0, 251>; |
---|
45 | |
---|
46 | // Pseudo valuetype to represent "vector of any size" |
---|
47 | def vAny : ValueType<0 , 252>; |
---|
48 | |
---|
49 | // Pseudo valuetype to represent "float of any format" |
---|
50 | def fAny : ValueType<0 , 253>; |
---|
51 | |
---|
52 | // Pseudo valuetype to represent "integer of any bit width" |
---|
53 | def iAny : ValueType<0 , 254>; |
---|
54 | |
---|
55 | // Pseudo valuetype mapped to the current pointer size. |
---|
56 | def iPTR : ValueType<0 , 255>; |
---|