X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=opcodes%2Fs390-mkopc.c;h=bcd453314a16be9428ce9e44734ffdd3fbbeeb91;hb=79abb939304111e0d303b331b7b7ea005cf116f5;hp=8e0b332585338f1f64917ab54f353b9a0771f34f;hpb=64025b4ec97fe8e932c367c6cb719e5fcf2448e8;p=binutils-gdb.git diff --git a/opcodes/s390-mkopc.c b/opcodes/s390-mkopc.c index 8e0b3325853..bcd453314a1 100644 --- a/opcodes/s390-mkopc.c +++ b/opcodes/s390-mkopc.c @@ -1,5 +1,5 @@ /* s390-mkopc.c -- Generates opcode table out of s390-opc.txt - Copyright (C) 2000-2017 Free Software Foundation, Inc. + Copyright (C) 2000-2021 Free Software Foundation, Inc. Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). This file is part of the GNU opcodes library. @@ -240,7 +240,8 @@ insertExpandedMnemonic (char *opcode, char *mnemonic, char *format, ext_table = s390_crb_extensions; ext_table_length = NUM_CRB_EXTENSIONS; break; - default: fprintf (stderr, "Unknown tag char: %c\n", *tag); + default: + abort (); /* Should be unreachable. */ } for (i = 0; i < ext_table_length; i++) @@ -374,8 +375,14 @@ main (void) else if (strcmp (cpu_string, "z13") == 0 || strcmp (cpu_string, "arch11") == 0) min_cpu = S390_OPCODE_Z13; - else if (strcmp (cpu_string, "arch12") == 0) + else if (strcmp (cpu_string, "z14") == 0 + || strcmp (cpu_string, "arch12") == 0) min_cpu = S390_OPCODE_ARCH12; + else if (strcmp (cpu_string, "z15") == 0 + || strcmp (cpu_string, "arch13") == 0) + min_cpu = S390_OPCODE_ARCH13; + else if (strcmp (cpu_string, "arch14") == 0) + min_cpu = S390_OPCODE_ARCH14; else { fprintf (stderr, "Couldn't parse cpu string %s\n", cpu_string); exit (1); @@ -411,18 +418,18 @@ main (void) && (str[7] == 0 || str[7] == ',')) { flag_bits |= S390_INSTR_FLAG_OPTPARM; str += 7; + } else if (strncmp (str, "optparm2", 8) == 0 + && (str[8] == 0 || str[8] == ',')) { + flag_bits |= S390_INSTR_FLAG_OPTPARM2; + str += 8; } else if (strncmp (str, "htm", 3) == 0 - && (str[3] == 0 || str[3] == ',')) { + && (str[3] == 0 || str[3] == ',')) { flag_bits |= S390_INSTR_FLAG_HTM; str += 3; } else if (strncmp (str, "vx", 2) == 0 - && (str[2] == 0 || str[2] == ',')) { + && (str[2] == 0 || str[2] == ',')) { flag_bits |= S390_INSTR_FLAG_VX; str += 2; - } else if (strncmp (str, "vx2", 3) == 0 - && (str[3] == 0 || str[3] == ',')) { - flag_bits |= S390_INSTR_FLAG_VX2; - str += 3; } else { fprintf (stderr, "Couldn't parse flags string %s\n", flags_string);