math: array parameters can be NULL
[smatch.git] / target-s390.c
blob9dbc810e507c989038b00d7f40ce7c578cdc969c
1 #include "symbol.h"
2 #include "target.h"
3 #include "machine.h"
4 #include "expression.h"
7 static void predefine_s390(const struct target *self)
9 predefine("__s390__", 1, "1");
12 static const char *asm_constraint_s390(struct asm_operand *op, int c, const char *str)
14 switch (c) {
15 case 'R': case 'S': case 'T':
16 op->is_memory = true;
17 break;
19 return str;
22 const struct target target_s390 = {
23 .mach = MACH_S390,
24 .bitness = ARCH_LP32,
25 .big_endian = 1,
26 .unsigned_char = 1,
27 .size_t_long = 1,
29 .bits_in_longdouble = 64,
30 .max_fp_alignment = 8,
32 .target_64bit = &target_s390x,
34 .predefine = predefine_s390,
35 .asm_constraint = asm_constraint_s390,
39 static void predefine_s390x(const struct target *self)
41 predefine("__zarch__", 1, "1");
42 predefine("__s390x__", 1, "1");
44 predefine_s390(self);
47 const struct target target_s390x = {
48 .mach = MACH_S390X,
49 .bitness = ARCH_LP64,
50 .big_endian = 1,
51 .unsigned_char = 1,
52 .has_int128 = 1,
54 .bits_in_longdouble = 64,
55 .max_fp_alignment = 8,
57 .target_32bit = &target_s390,
59 .predefine = predefine_s390x,
60 .asm_constraint = asm_constraint_s390,