version 1.1.1.1, 2009/08/18 10:16:42 |
version 1.1.1.2, 2011/09/24 22:12:50 |
|
|
/* s390-mkopc.c -- Generates opcode table out of s390-opc.txt |
/* s390-mkopc.c -- Generates opcode table out of s390-opc.txt |
Copyright 2000, 2001, 2003, 2007, 2008 Free Software Foundation, Inc. |
Copyright 2000, 2001, 2003, 2005, 2007, 2008 Free Software Foundation, Inc. |
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). |
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). |
|
|
This file is part of the GNU opcodes library. |
This file is part of the GNU opcodes library. |
Line 38 enum s390_opcode_cpu_val |
|
Line 38 enum s390_opcode_cpu_val |
|
S390_OPCODE_Z990, |
S390_OPCODE_Z990, |
S390_OPCODE_Z9_109, |
S390_OPCODE_Z9_109, |
S390_OPCODE_Z9_EC, |
S390_OPCODE_Z9_EC, |
S390_OPCODE_Z10 |
S390_OPCODE_Z10, |
|
S390_OPCODE_Z196 |
}; |
}; |
|
|
struct op_struct |
struct op_struct |
|
|
char opcode[16]; |
char opcode[16]; |
char mnemonic[16]; |
char mnemonic[16]; |
char format[16]; |
char format[16]; |
char description[64]; |
char description[80]; |
char cpu_string[16]; |
char cpu_string[16]; |
char modes_string[16]; |
char modes_string[16]; |
int min_cpu; |
int min_cpu; |
|
|
if (currentLine[0] == '#') |
if (currentLine[0] == '#') |
continue; |
continue; |
memset (opcode, 0, 8); |
memset (opcode, 0, 8); |
if (sscanf (currentLine, "%15s %15s %15s \"%[^\"]\" %15s %15s", |
if (sscanf (currentLine, "%15s %15s %15s \"%79[^\"]\" %15s %15s", |
opcode, mnemonic, format, description, |
opcode, mnemonic, format, description, |
cpu_string, modes_string) == 6) |
cpu_string, modes_string) == 6) |
{ |
{ |
|
|
min_cpu = S390_OPCODE_Z9_EC; |
min_cpu = S390_OPCODE_Z9_EC; |
else if (strcmp (cpu_string, "z10") == 0) |
else if (strcmp (cpu_string, "z10") == 0) |
min_cpu = S390_OPCODE_Z10; |
min_cpu = S390_OPCODE_Z10; |
|
else if (strcmp (cpu_string, "z196") == 0) |
|
min_cpu = S390_OPCODE_Z196; |
else { |
else { |
fprintf (stderr, "Couldn't parse cpu string %s\n", cpu_string); |
fprintf (stderr, "Couldn't parse cpu string %s\n", cpu_string); |
exit (1); |
exit (1); |
|
|
insertExpandedMnemonic (opcode, mnemonic, format, min_cpu, mode_bits); |
insertExpandedMnemonic (opcode, mnemonic, format, min_cpu, mode_bits); |
} |
} |
else |
else |
fprintf (stderr, "Couldn't scan line %s\n", currentLine); |
{ |
|
fprintf (stderr, "Couldn't scan line %s\n", currentLine); |
|
exit (1); |
|
} |
} |
} |
|
|
dumpTable (); |
dumpTable (); |