diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-10-29 20:20:25 +0100 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-10-30 09:50:12 +0100 |
commit | 34f4fefd6b9730bb6661dafff67da64cf73f1082 (patch) | |
tree | 03af2c464fde7254d584247693482d80b70d510d | |
parent | ad71777d2cd8d7a04f6fae06620307df3cf3b0b7 (diff) | |
download | sparse-34f4fefd6b9730bb6661dafff67da64cf73f1082.tar.gz |
arch: add support for s390 (ILP32)
On s390x, the flag -m31 is needed to enable this mode.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | lib.c | 3 | ||||
-rw-r--r-- | machine.h | 4 | ||||
-rw-r--r-- | target.c | 1 |
3 files changed, 7 insertions, 1 deletions
@@ -456,6 +456,8 @@ static char **handle_switch_m(char *arg, char **next) arch_m64 = ARCH_LP64; } else if (!strcmp(arg, "m32") || !strcmp(arg, "m16")) { arch_m64 = ARCH_LP32; + } else if (!strcmp(arg, "m31")) { + arch_m64 = ARCH_LP32; } else if (!strcmp(arg, "mx32")) { arch_m64 = ARCH_X32; } else if (!strcmp(arg, "msize-llp64")) { @@ -1356,6 +1358,7 @@ static void predefined_macros(void) case MACH_S390X: predefine("__zarch__", 1, "1"); predefine("__s390x__", 1, "1"); + case MACH_S390: predefine("__s390__", 1, "1"); break; case MACH_SPARC64: @@ -31,8 +31,8 @@ enum machine { MACH_PPC32, MACH_PPC64, MACH_RISCV32, MACH_RISCV64, MACH_SPARC32, MACH_SPARC64, + MACH_S390, MACH_S390X, MACH_M68K, - MACH_S390X, MACH_UNKNOWN }; @@ -64,6 +64,8 @@ enum machine { #define MACH_NATIVE MACH_M68K #elif defined(__s390x__) || defined(__zarch__) #define MACH_NATIVE MACH_S390X +#elif defined(__s390__) +#define MACH_NATIVE MACH_S390 #else #define MACH_NATIVE MACH_UNKNOWN #endif @@ -97,6 +97,7 @@ void init_target(void) switch (arch_mach) { case MACH_ARM: case MACH_MIPS32: + case MACH_S390: case MACH_S390X: case MACH_SPARC32: bits_in_longdouble = 64; |