From: Alan Modra Date: Thu, 4 Sep 2003 01:52:18 +0000 (+0000) Subject: * config/tc-ppc.c (md_parse_option): Add PPC_OPCODE_ANY to existing X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3c9030c1f46b3255af11e975ae6f62713f55d645;p=binutils-gdb.git * config/tc-ppc.c (md_parse_option): Add PPC_OPCODE_ANY to existing ppc_cpu selection rather than replacing. (ppc_set_cpu): Ignore and preserve PPC_OPCODE_ANY in ppc_cpu. (md_begin): When PPC_OPCODE_ANY, insert all opcodes in ppc_hash. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 73ec8b3fe60..aee80e542ce 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2003-09-04 Alan Modra + + * config/tc-ppc.c (md_parse_option): Add PPC_OPCODE_ANY to existing + ppc_cpu selection rather than replacing. + (ppc_set_cpu): Ignore and preserve PPC_OPCODE_ANY in ppc_cpu. + (md_begin): When PPC_OPCODE_ANY, insert all opcodes in ppc_hash. + 2003-09-03 Robert Millan * configure.in: Match GNU/KFreeBSD with new kfreebsd*-gnu diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 30aa2fd6209..5849654837a 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -974,7 +974,7 @@ md_parse_option (c, arg) ppc_cpu = PPC_OPCODE_COMMON | PPC_OPCODE_32; /* -many means to assemble for any architecture (PWR/PWRX/PPC). */ else if (strcmp (arg, "any") == 0) - ppc_cpu = PPC_OPCODE_ANY | PPC_OPCODE_32; + ppc_cpu |= PPC_OPCODE_ANY; else if (strcmp (arg, "regnames") == 0) reg_names_p = TRUE; @@ -1118,23 +1118,23 @@ ppc_set_cpu () const char *default_os = TARGET_OS; const char *default_cpu = TARGET_CPU; - if (ppc_cpu == 0) + if ((ppc_cpu & ~PPC_OPCODE_ANY) == 0) { if (ppc_obj64) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; + ppc_cpu |= PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; else if (strncmp (default_os, "aix", 3) == 0 && default_os[3] >= '4' && default_os[3] <= '9') - ppc_cpu = PPC_OPCODE_COMMON | PPC_OPCODE_32; + ppc_cpu |= PPC_OPCODE_COMMON | PPC_OPCODE_32; else if (strncmp (default_os, "aix3", 4) == 0) - ppc_cpu = PPC_OPCODE_POWER | PPC_OPCODE_32; + ppc_cpu |= PPC_OPCODE_POWER | PPC_OPCODE_32; else if (strcmp (default_cpu, "rs6000") == 0) - ppc_cpu = PPC_OPCODE_POWER | PPC_OPCODE_32; + ppc_cpu |= PPC_OPCODE_POWER | PPC_OPCODE_32; else if (strncmp (default_cpu, "powerpc", 7) == 0) { if (default_cpu[7] == '6' && default_cpu[8] == '4') - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; + ppc_cpu |= PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; else - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32; + ppc_cpu |= PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32; } else as_fatal (_("Unknown default cpu = %s, os = %s"), @@ -1265,6 +1265,10 @@ md_begin () } } + if ((ppc_cpu & PPC_OPCODE_ANY) != 0) + for (op = powerpc_opcodes; op < op_end; op++) + hash_insert (ppc_hash, op->name, (PTR) op); + /* Insert the macros into a hash table. */ ppc_macro_hash = hash_new ();