-void
-opencl_language_arch_info (struct gdbarch *gdbarch,
- struct language_arch_info *lai)
-{
- const struct builtin_opencl_type *builtin = builtin_opencl_type (gdbarch);
-
- lai->string_char_type = builtin->builtin_char;
- lai->primitive_type_vector
- = GDBARCH_OBSTACK_CALLOC (gdbarch, nr_opencl_primitive_types + 1,
- struct type *);
-
-/* This macro fills the primitive_type_vector from a given type. */
-#define FILL_TYPE_VECTOR(LAI, TYPE)\
- LAI->primitive_type_vector [opencl_primitive_type_##TYPE]\
- = builtin->builtin_##TYPE;\
- LAI->primitive_type_vector [opencl_primitive_type_##TYPE##2]\
- = builtin->builtin_##TYPE##2;\
- LAI->primitive_type_vector [opencl_primitive_type_##TYPE##3]\
- = builtin->builtin_##TYPE##3;\
- LAI->primitive_type_vector [opencl_primitive_type_##TYPE##4]\
- = builtin->builtin_##TYPE##4;\
- LAI->primitive_type_vector [opencl_primitive_type_##TYPE##8]\
- = builtin->builtin_##TYPE##8;\
- LAI->primitive_type_vector [opencl_primitive_type_##TYPE##16]\
- = builtin->builtin_##TYPE##16
-
- FILL_TYPE_VECTOR (lai, char);
- FILL_TYPE_VECTOR (lai, uchar);
- FILL_TYPE_VECTOR (lai, short);
- FILL_TYPE_VECTOR (lai, ushort);
- FILL_TYPE_VECTOR (lai, int);
- FILL_TYPE_VECTOR (lai, uint);
- FILL_TYPE_VECTOR (lai, long);
- FILL_TYPE_VECTOR (lai, ulong);
- FILL_TYPE_VECTOR (lai, half);
- FILL_TYPE_VECTOR (lai, float);
- FILL_TYPE_VECTOR (lai, double);
- lai->primitive_type_vector [opencl_primitive_type_bool]
- = builtin->builtin_bool;
- lai->primitive_type_vector [opencl_primitive_type_unsigned_char]
- = builtin->builtin_unsigned_char;
- lai->primitive_type_vector [opencl_primitive_type_unsigned_short]
- = builtin->builtin_unsigned_short;
- lai->primitive_type_vector [opencl_primitive_type_unsigned_int]
- = builtin->builtin_unsigned_int;
- lai->primitive_type_vector [opencl_primitive_type_unsigned_long]
- = builtin->builtin_unsigned_long;
- lai->primitive_type_vector [opencl_primitive_type_half]
- = builtin->builtin_half;
- lai->primitive_type_vector [opencl_primitive_type_size_t]
- = builtin->builtin_size_t;
- lai->primitive_type_vector [opencl_primitive_type_ptrdiff_t]
- = builtin->builtin_ptrdiff_t;
- lai->primitive_type_vector [opencl_primitive_type_intptr_t]
- = builtin->builtin_intptr_t;
- lai->primitive_type_vector [opencl_primitive_type_uintptr_t]
- = builtin->builtin_uintptr_t;
- lai->primitive_type_vector [opencl_primitive_type_void]
- = builtin->builtin_void;
-
- /* Specifies the return type of logical and relational operations. */
- lai->bool_type_symbol = "int";
- lai->bool_type_default = builtin->builtin_int;
-}
-