Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: src/IceTypes.def

Issue 1354673002: Fix call instructions to check parameter types for consistency. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: remove typo Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceTypes.cpp ('k') | src/PNaClTranslator.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceTypes.def - X-macros for ICE types --------*- C++ -*-===// 1 //===- subzero/src/IceTypes.def - X-macros for ICE types --------*- C++ -*-===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file defines properties of ICE primitive types in the form of x-macros. 10 // This file defines properties of ICE primitive types in the form of x-macros.
11 // 11 //
12 //===----------------------------------------------------------------------===// 12 //===----------------------------------------------------------------------===//
13 13
14 #ifndef SUBZERO_SRC_ICETYPES_DEF 14 #ifndef SUBZERO_SRC_ICETYPES_DEF
15 #define SUBZERO_SRC_ICETYPES_DEF 15 #define SUBZERO_SRC_ICETYPES_DEF
16 16
17 // Attributes of each target architecture. 17 // Attributes of each target architecture.
18 // NOTE on is_elf64 -- At some point NaCl would like to use ELF32 for all ILP32 18 // NOTE on is_elf64 -- At some point NaCl would like to use ELF32 for all ILP32
19 // sandboxes, but for now the 64-bit architectures use ELF64: 19 // sandboxes, but for now the 64-bit architectures use ELF64:
20 // https://code.google.com/p/nativeclient/issues/detail?id=349 TODO: Whoever 20 // https://code.google.com/p/nativeclient/issues/detail?id=349 TODO: Whoever
21 // adds AArch64 will need to set ABI e_flags. 21 // adds AArch64 will need to set ABI e_flags.
22 #define TARGETARCH_TABLE \ 22 #define TARGETARCH_TABLE \
23 /* enum value, printable string, is_elf64, e_machine, e_flags */ \ 23 /* enum value, printable string, is_elf64, e_machine, e_flags */ \
24 X(Target_X8632, "x86-32", false, EM_386, 0) \ 24 X(Target_X8632, "x86-32", false, EM_386, 0) \
25 X(Target_X8664, "x86-64", true, EM_X86_64, 0) \ 25 X(Target_X8664, "x86-64", true, EM_X86_64, 0) \
26 X(Target_ARM32, "arm32", false, EM_ARM, EF_ARM_EABI_VER5) \ 26 X(Target_ARM32, "arm32", false, EM_ARM, EF_ARM_EABI_VER5) \
27 X(Target_ARM64, "arm64", true, EM_AARCH64, 0) \ 27 X(Target_ARM64, "arm64", true, EM_AARCH64, 0) \
28 X(Target_MIPS32,"mips32", false, EM_MIPS, 0) \ 28 X(Target_MIPS32,"mips32", false, EM_MIPS, 0) \
29 //#define X(tag, str, is_elf64, e_machine, e_flags) 29 //#define X(tag, str, is_elf64, e_machine, e_flags)
30 30
31 #define ICETYPE_TABLE \ 31 #define ICETYPE_TABLE \
32 /* enum value, log_2(size), align, # elts, element type, printable */ \ 32 /* enum value, log_2(size), align, # elts, element type, printable */ \
33 /* string (size and alignment in bytes) */ \ 33 /* string (size and alignment in bytes) */ \
34 X(IceType_void, -1, 0, 1, IceType_void, "void") \ 34 X(IceType_void, -1, 0, 1, IceType_void, "void") \
35 X(IceType_i1, 0, 1, 1, IceType_i1, "i1") \ 35 X(IceType_i1, 0, 1, 1, IceType_i1, "i1") \
36 X(IceType_i8, 0, 1, 1, IceType_i8, "i8") \ 36 X(IceType_i8, 0, 1, 1, IceType_i8, "i8") \
37 X(IceType_i16, 1, 1, 1, IceType_i16, "i16") \ 37 X(IceType_i16, 1, 1, 1, IceType_i16, "i16") \
38 X(IceType_i32, 2, 1, 1, IceType_i32, "i32") \ 38 X(IceType_i32, 2, 1, 1, IceType_i32, "i32") \
39 X(IceType_i64, 3, 1, 1, IceType_i64, "i64") \ 39 X(IceType_i64, 3, 1, 1, IceType_i64, "i64") \
40 X(IceType_f32, 2, 4, 1, IceType_f32, "float") \ 40 X(IceType_f32, 2, 4, 1, IceType_f32, "float") \
41 X(IceType_f64, 3, 8, 1, IceType_f64, "double") \ 41 X(IceType_f64, 3, 8, 1, IceType_f64, "double") \
42 X(IceType_v4i1, 4, 1, 4, IceType_i1, "<4 x i1>") \ 42 X(IceType_v4i1, 4, 1, 4, IceType_i1, "<4 x i1>") \
43 X(IceType_v8i1, 4, 1, 8, IceType_i1, "<8 x i1>") \ 43 X(IceType_v8i1, 4, 1, 8, IceType_i1, "<8 x i1>") \
44 X(IceType_v16i1, 4, 1, 16, IceType_i1, "<16 x i1>") \ 44 X(IceType_v16i1, 4, 1, 16, IceType_i1, "<16 x i1>") \
45 X(IceType_v16i8, 4, 1, 16, IceType_i8, "<16 x i8>") \ 45 X(IceType_v16i8, 4, 1, 16, IceType_i8, "<16 x i8>") \
46 X(IceType_v8i16, 4, 2, 8, IceType_i16, "<8 x i16>") \ 46 X(IceType_v8i16, 4, 2, 8, IceType_i16, "<8 x i16>") \
47 X(IceType_v4i32, 4, 4, 4, IceType_i32, "<4 x i32>") \ 47 X(IceType_v4i32, 4, 4, 4, IceType_i32, "<4 x i32>") \
48 X(IceType_v4f32, 4, 4, 4, IceType_f32, "<4 x float>") \ 48 X(IceType_v4f32, 4, 4, 4, IceType_f32, "<4 x float>") \
49 //#define X(tag, sizeLog2, align, elts, elty, str) 49 //#define X(tag, sizeLog2, align, elts, elty, str)
50 50
51 // Dictionary: 51 // Dictionary:
52 // V - Is vector type. 52 // V - Is vector type.
53 // I - Is integer value (scalar or vector). 53 // I - Is integer value (scalar or vector).
54 // F - Is floating point value (scalar or vector). 54 // F - Is floating point value (scalar or vector).
55 // IA - Is integer arithmetic type 55 // IA - Is integer arithmetic type
56 // LS - true if load/store allowed on type. 56 // LS - true if load/store allowed on type.
57 // P - true if can be used for parameter of call.
57 // CR - Result type of compare instruction for argument type 58 // CR - Result type of compare instruction for argument type
58 // (IceType_void if disallowed) 59 // (IceType_void if disallowed)
59 #define ICETYPE_PROPS_TABLE \ 60 #define ICETYPE_PROPS_TABLE \
60 /* Enum Value V I F IA LS CR */ \ 61 /* Enum Value V I F IA LS P CR */ \
61 X(IceType_void, 0, 0, 0, 0, 0, IceType_void) \ 62 X(IceType_void, 0, 0, 0, 0, 0, 0, IceType_void) \
62 X(IceType_i1, 0, 1, 0, 0, 0, IceType_i1) \ 63 X(IceType_i1, 0, 1, 0, 0, 0, 0, IceType_i1) \
63 X(IceType_i8, 0, 1, 0, 1, 1, IceType_i1) \ 64 X(IceType_i8, 0, 1, 0, 1, 1, 0, IceType_i1) \
64 X(IceType_i16, 0, 1, 0, 1, 1, IceType_i1) \ 65 X(IceType_i16, 0, 1, 0, 1, 1, 0, IceType_i1) \
65 X(IceType_i32, 0, 1, 0, 1, 1, IceType_i1) \ 66 X(IceType_i32, 0, 1, 0, 1, 1, 1, IceType_i1) \
66 X(IceType_i64, 0, 1, 0, 1, 1, IceType_i1) \ 67 X(IceType_i64, 0, 1, 0, 1, 1, 1, IceType_i1) \
67 X(IceType_f32, 0, 0, 1, 0, 1, IceType_i1) \ 68 X(IceType_f32, 0, 0, 1, 0, 1, 1, IceType_i1) \
68 X(IceType_f64, 0, 0, 1, 0, 1, IceType_i1) \ 69 X(IceType_f64, 0, 0, 1, 0, 1, 1, IceType_i1) \
69 X(IceType_v4i1, 1, 1, 0, 0, 0, IceType_v4i1) \ 70 X(IceType_v4i1, 1, 1, 0, 0, 0, 1, IceType_v4i1) \
70 X(IceType_v8i1, 1, 1, 0, 0, 0, IceType_v8i1) \ 71 X(IceType_v8i1, 1, 1, 0, 0, 0, 1, IceType_v8i1) \
71 X(IceType_v16i1, 1, 1, 0, 0, 0, IceType_v16i1) \ 72 X(IceType_v16i1, 1, 1, 0, 0, 0, 1, IceType_v16i1) \
72 X(IceType_v16i8, 1, 1, 0, 1, 1, IceType_v16i1) \ 73 X(IceType_v16i8, 1, 1, 0, 1, 1, 1, IceType_v16i1) \
73 X(IceType_v8i16, 1, 1, 0, 1, 1, IceType_v8i1) \ 74 X(IceType_v8i16, 1, 1, 0, 1, 1, 1, IceType_v8i1) \
74 X(IceType_v4i32, 1, 1, 0, 1, 1, IceType_v4i1) \ 75 X(IceType_v4i32, 1, 1, 0, 1, 1, 1, IceType_v4i1) \
75 X(IceType_v4f32, 1, 0, 1, 0, 1, IceType_v4i1) \ 76 X(IceType_v4f32, 1, 0, 1, 0, 1, 1, IceType_v4i1) \
76 //#define X(tag, IsVec, IsInt, IsFloat, IsIntArith, IsLoadStore, CompareResult) 77 //#define X(tag, IsVec, IsInt, IsFloat, IsIntArith, IsLoadStore, IsParam, \
78 // CompareResult)
77 79
78 #endif // SUBZERO_SRC_ICETYPES_DEF 80 #endif // SUBZERO_SRC_ICETYPES_DEF
OLDNEW
« no previous file with comments | « src/IceTypes.cpp ('k') | src/PNaClTranslator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698