From d1fd0f2d0da3171a8678c7e31bb1863a53dfe1c2 Mon Sep 17 00:00:00 2001 From: chenyuanfeng Date: Wed, 3 Jan 2024 14:26:27 +0800 Subject: [PATCH] PPC-gas-supported-c2000 --- binutils/ChangeLog-2024 | 29 +++++ binutils/doc/binutils.info | 2 +- binutils/doc/binutils.texi | 2 +- gas/config/tc-ppc.c | 2 + gas/doc/as.info | 5 +- gas/doc/as.texi | 2 +- gas/doc/c-ppc.texi | 3 + gas/po/gas.pot | 231 +++++++++++++++++++------------------ include/opcode/ppc.h | 7 ++ opcodes/ppc-dis.c | 21 ++-- opcodes/ppc-opc.c | 2 +- 11 files changed, 180 insertions(+), 126 deletions(-) create mode 100644 binutils/ChangeLog-2024 mode change 100644 => 100755 gas/po/gas.pot diff --git a/binutils/ChangeLog-2024 b/binutils/ChangeLog-2024 new file mode 100644 index 00000000..caf4b43d --- /dev/null +++ b/binutils/ChangeLog-2024 @@ -0,0 +1,29 @@ +2024-01-03 YuanFeng Chen + + * config/tc-ppc.c (md_show_usage): Add -mc2000 options. + * ppc.h : (PPC_OPCODE_HTM): Define. + (PPC_OPCODE_C2000): Likewise. + * ppc-dis.c (PPCHTM): Define as PPC_OPCODE_HTM. + (ppc_opts): Add "c2000" entry. + (ppc_opts): "power8","power9","power10", "libresoc", "future" entries add PPC_OPCODE_HTM flag. + * ppc-opc.c : PPCHTM defined as PPC_OPCODE_HTM instead of PPC_OPCODE_POWER8. + * doc/binutils.texi (PowerPC -M option): Mention c2000. + * doc/as.texi (Target PowerPC optins): Mention c2000. + * doc/c-ppc.texi (PowerPC-Opts): Document "-mc2000". + * po/gas.pot: Regenerate. + + +For older changes see ChangeLog-2020 + +Copyright (C) 2024 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: \ No newline at end of file diff --git a/binutils/doc/binutils.info b/binutils/doc/binutils.info index 56b7005c..9b13580f 100644 --- a/binutils/doc/binutils.info +++ b/binutils/doc/binutils.info @@ -2335,7 +2335,7 @@ given. 'efs', 'power4', 'power5', 'power6', 'power7', 'power8', 'power9', 'power10', 'ppc', 'ppc32', 'ppc64', 'ppc64bridge', 'ppcps', 'pwr', 'pwr2', 'pwr4', 'pwr5', 'pwr5x', 'pwr6', 'pwr7', 'pwr8', 'pwr9', - 'pwr10', 'pwrx', 'titan', 'vle', and 'future'. '32' and '64' + 'pwr10', 'pwrx', 'titan', 'c2000', 'vle', and 'future'. '32' and '64' modify the default or a prior CPU selection, disabling and enabling 64-bit insns respectively. In addition, 'altivec', 'any', 'lsp', 'htm', 'vsx', 'spe' and 'spe2' add capabilities to a previous _or diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index e48a48dd..e33d5beb 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -2648,7 +2648,7 @@ rather than @code{li}. All of the @option{-m} arguments for @option{ppc32}, @option{ppc64}, @option{ppc64bridge}, @option{ppcps}, @option{pwr}, @option{pwr2}, @option{pwr4}, @option{pwr5}, @option{pwr5x}, @option{pwr6}, @option{pwr7}, @option{pwr8}, @option{pwr9}, @option{pwr10}, -@option{pwrx}, @option{titan}, @option{vle}, and @option{future}. +@option{pwrx}, @option{titan}, @option{c2000}, @option{vle}, and @option{future}. @option{32} and @option{64} modify the default or a prior CPU selection, disabling and enabling 64-bit insns respectively. In addition, @option{altivec}, @option{any}, @option{lsp}, @option{htm}, diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 9450fa74..f904c7ed 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -1426,6 +1426,8 @@ PowerPC options:\n")); fprintf (stream, _("\ -mtitan generate code for AppliedMicro Titan core complex\n")); fprintf (stream, _("\ +-mc2000 generate code for Hexin C2000 architecture\n")); + fprintf (stream, _("\ -mregnames Allow symbolic names for registers\n")); fprintf (stream, _("\ -mno-regnames Do not allow symbolic names for registers\n")); diff --git a/gas/doc/as.info b/gas/doc/as.info index 37793fa5..6c8fdcf7 100644 --- a/gas/doc/as.info +++ b/gas/doc/as.info @@ -288,7 +288,7 @@ Command-Line Options: Invoking. -mbroadway|-mppc64|-m620|-me500|-e500x2|-me500mc|-me500mc64|-me5500| -me6500|-mppc64bridge|-mbooke|-mpower4|-mpwr4|-mpower5|-mpwr5|-mpwr5x| -mpower6|-mpwr6|-mpower7|-mpwr7|-mpower8|-mpwr8|-mpower9|-mpwr9-ma2| - -mcell|-mspe|-mspe2|-mtitan|-me300|-mcom] + -mcell|-mspe|-mspe2|-mtitan|-mc2000|-me300|-mcom] [-many] [-maltivec|-mvsx|-mhtm|-mvle] [-mregnames|-mno-regnames] [-mrelocatable|-mrelocatable-lib|-K PIC] [-memb] @@ -18366,6 +18366,9 @@ architecture reference manual. '-mfuture' Generate code for 'future' architecture. +'-mc2000' + Generate code for Hexin C2000 architecture. + '-mcell' '-mcell' Generate code for Cell Broadband Engine architecture. diff --git a/gas/doc/as.texi b/gas/doc/as.texi index bbdfa4bf..d046c18e 100644 --- a/gas/doc/as.texi +++ b/gas/doc/as.texi @@ -536,7 +536,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. @b{-mbroadway}|@b{-mppc64}|@b{-m620}|@b{-me500}|@b{-e500x2}|@b{-me500mc}|@b{-me500mc64}|@b{-me5500}| @b{-me6500}|@b{-mppc64bridge}|@b{-mbooke}|@b{-mpower4}|@b{-mpwr4}|@b{-mpower5}|@b{-mpwr5}|@b{-mpwr5x}| @b{-mpower6}|@b{-mpwr6}|@b{-mpower7}|@b{-mpwr7}|@b{-mpower8}|@b{-mpwr8}|@b{-mpower9}|@b{-mpwr9}@b{-ma2}| - @b{-mcell}|@b{-mspe}|@b{-mspe2}|@b{-mtitan}|@b{-me300}|@b{-mcom}] + @b{-mcell}|@b{-mspe}|@b{-mspe2}|@b{-mtitan}|@b{-mc2000}|@b{-me300}|@b{-mcom}] [@b{-many}] [@b{-maltivec}|@b{-mvsx}|@b{-mhtm}|@b{-mvle}] [@b{-mregnames}|@b{-mno-regnames}] [@b{-mrelocatable}|@b{-mrelocatable-lib}|@b{-K PIC}] [@b{-memb}] diff --git a/gas/doc/c-ppc.texi b/gas/doc/c-ppc.texi index f1dc17c6..115b730c 100644 --- a/gas/doc/c-ppc.texi +++ b/gas/doc/c-ppc.texi @@ -159,6 +159,9 @@ Generate code for Power10 architecture. @item -mfuture Generate code for 'future' architecture. +@item -mc2000 +Generate code for Hexin C2000 architecture. + @item -mcell @item -mcell Generate code for Cell Broadband Engine architecture. diff --git a/gas/po/gas.pot b/gas/po/gas.pot old mode 100644 new mode 100755 index 09c2411b..df3a81e1 --- a/gas/po/gas.pot +++ b/gas/po/gas.pot @@ -8,10 +8,11 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" -"POT-Creation-Date: 2023-01-14 13:17+0000\n" +"POT-Creation-Date: 2024-01-03 14:12+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" @@ -647,7 +648,7 @@ msgstr "" #: cgen.c:106 config/tc-alpha.c:2094 config/tc-alpha.c:2118 #: config/tc-arc.c:4072 config/tc-arc.c:4145 config/tc-d10v.c:550 #: config/tc-d30v.c:534 config/tc-mn10200.c:1091 config/tc-mn10300.c:1752 -#: config/tc-ppc.c:3957 config/tc-s390.c:1334 config/tc-s390.c:1457 +#: config/tc-ppc.c:3959 config/tc-s390.c:1334 config/tc-s390.c:1457 #: config/tc-s390.c:1591 config/tc-v850.c:2535 config/tc-v850.c:2606 #: config/tc-v850.c:2653 config/tc-v850.c:2690 config/tc-v850.c:2727 #: config/tc-v850.c:2990 @@ -655,7 +656,7 @@ msgid "too many fixups" msgstr "" #: cgen.c:371 cgen.c:391 config/tc-d10v.c:461 config/tc-d30v.c:450 -#: config/tc-mn10200.c:1033 config/tc-mn10300.c:1677 config/tc-ppc.c:3479 +#: config/tc-mn10200.c:1033 config/tc-mn10300.c:1677 config/tc-ppc.c:3481 #: config/tc-s390.c:1318 config/tc-v850.c:2644 config/tc-v850.c:2678 #: config/tc-v850.c:2718 config/tc-v850.c:2963 config/tc-z80.c:785 msgid "illegal operand" @@ -664,7 +665,7 @@ msgstr "" #: cgen.c:395 config/tc-avr.c:910 config/tc-d10v.c:463 config/tc-d30v.c:452 #: config/tc-h8300.c:493 config/tc-mcore.c:662 config/tc-microblaze.c:613 #: config/tc-mmix.c:495 config/tc-mn10200.c:1036 config/tc-mn10300.c:1680 -#: config/tc-msp430.c:417 config/tc-ppc.c:3481 config/tc-s390.c:1323 +#: config/tc-msp430.c:417 config/tc-ppc.c:3483 config/tc-s390.c:1323 #: config/tc-sh.c:988 config/tc-v850.c:2648 config/tc-v850.c:2682 #: config/tc-v850.c:2722 config/tc-v850.c:2966 config/tc-xgate.c:895 #: config/tc-z80.c:932 config/tc-z8k.c:349 @@ -688,7 +689,7 @@ msgstr "" msgid "expression too complex" msgstr "" -#: cgen.c:959 config/tc-ppc.c:7484 config/tc-s390.c:2373 config/tc-v850.c:3499 +#: cgen.c:959 config/tc-ppc.c:7486 config/tc-s390.c:2373 config/tc-v850.c:3499 #: config/tc-xstormy16.c:541 msgid "unresolved expression that must be resolved" msgstr "" @@ -2573,7 +2574,7 @@ msgid "sequence number in use for !tlsgd!%ld" msgstr "" #: config/tc-alpha.c:1991 config/tc-arc.c:2867 config/tc-mn10200.c:847 -#: config/tc-mn10300.c:1150 config/tc-ppc.c:2063 config/tc-s390.c:668 +#: config/tc-mn10300.c:1150 config/tc-ppc.c:2065 config/tc-s390.c:668 #: config/tc-tilegx.c:422 config/tc-tilegx.c:472 config/tc-tilepro.c:375 msgid "operand" msgstr "" @@ -2590,7 +2591,7 @@ msgstr "" msgid "can not resolve expression" msgstr "" -#: config/tc-alpha.c:3511 config/tc-microblaze.c:204 config/tc-ppc.c:2405 +#: config/tc-alpha.c:3511 config/tc-microblaze.c:204 config/tc-ppc.c:2407 #, c-format msgid ".COMMon length (%ld.) <0! Ignored." msgstr "" @@ -2810,8 +2811,8 @@ msgstr "" #: config/tc-ia64.c:7462 config/tc-m68k.c:4558 config/tc-m68k.c:4570 #: config/tc-mips.c:3700 config/tc-mips.c:3733 config/tc-mips.c:3759 #: config/tc-nds32.c:3439 config/tc-nios2.c:3624 config/tc-nios2.c:3629 -#: config/tc-nios2.c:3635 config/tc-ns32k.c:1906 config/tc-ppc.c:1743 -#: config/tc-ppc.c:1783 config/tc-pru.c:1568 config/tc-pru.c:1572 +#: config/tc-nios2.c:3635 config/tc-ns32k.c:1906 config/tc-ppc.c:1745 +#: config/tc-ppc.c:1785 config/tc-pru.c:1568 config/tc-pru.c:1572 #: config/tc-s390.c:538 config/tc-s390.c:576 config/tc-sparc.c:961 #: config/tc-sparc.c:993 config/tc-tic30.c:121 config/tc-tic30.c:131 #: config/tc-tic30.c:141 config/tc-tic30.c:151 config/tc-tic4x.c:1219 @@ -5903,7 +5904,7 @@ msgstr "" #. xgettext:c-format. #: config/tc-avr.c:1865 config/tc-bfin.c:824 config/tc-d10v.c:1461 #: config/tc-d30v.c:1768 config/tc-metag.c:7016 config/tc-mn10200.c:772 -#: config/tc-mn10300.c:2177 config/tc-msp430.c:4643 config/tc-ppc.c:7763 +#: config/tc-mn10300.c:2177 config/tc-msp430.c:4643 config/tc-ppc.c:7765 #: config/tc-spu.c:877 config/tc-spu.c:1090 config/tc-v850.c:3364 #: config/tc-z80.c:3877 #, c-format @@ -8601,8 +8602,8 @@ msgstr "" #: config/tc-i386.c:7421 #, c-format msgid "" -"no instruction mnemonic suffix given and no register operands; can't size `%" -"s'" +"no instruction mnemonic suffix given and no register operands; can't size `" +"%s'" msgstr "" #: config/tc-i386.c:7426 @@ -10677,8 +10678,8 @@ msgstr "" msgid ".SCOMMon length (%ld.) <0! Ignored." msgstr "" -#: config/tc-m32r.c:1514 config/tc-microblaze.c:218 config/tc-ppc.c:2419 -#: config/tc-ppc.c:4356 config/tc-ppc.c:4411 +#: config/tc-m32r.c:1514 config/tc-microblaze.c:218 config/tc-ppc.c:2421 +#: config/tc-ppc.c:4358 config/tc-ppc.c:4413 msgid "ignoring bad alignment" msgstr "" @@ -11524,7 +11525,7 @@ msgid_plural "%s relocations do not fit in %u bytes" msgstr[0] "" msgstr[1] "" -#: config/tc-m68k.c:7940 config/tc-ppc.c:2592 +#: config/tc-m68k.c:7940 config/tc-ppc.c:2594 msgid "unknown .gnu_attribute value" msgstr "" @@ -11561,11 +11562,10 @@ msgstr "" msgid "operand must be a multiple of 2" msgstr "" -#: config/tc-mcore.c:888 config/tc-microblaze.c:948 -#: config/tc-microblaze.c:1084 config/tc-microblaze.c:1118 -#: config/tc-microblaze.c:1573 config/tc-microblaze.c:1641 -#: config/tc-microblaze.c:1716 config/tc-microblaze.c:2137 -#: config/tc-microblaze.c:2186 +#: config/tc-mcore.c:888 config/tc-microblaze.c:948 config/tc-microblaze.c:1084 +#: config/tc-microblaze.c:1118 config/tc-microblaze.c:1573 +#: config/tc-microblaze.c:1641 config/tc-microblaze.c:1716 +#: config/tc-microblaze.c:2137 config/tc-microblaze.c:2186 #, c-format msgid "unknown opcode \"%s\"" msgstr "" @@ -13591,7 +13591,7 @@ msgid "Unrecognized opcode: `%s'" msgstr "" #. xgettext:c-format. -#: config/tc-mn10200.c:1132 config/tc-mn10300.c:1821 config/tc-ppc.c:4006 +#: config/tc-mn10200.c:1132 config/tc-mn10300.c:1821 config/tc-ppc.c:4008 #: config/tc-s390.c:1604 config/tc-v850.c:3040 #, c-format msgid "junk at end of line: `%s'" @@ -15050,7 +15050,7 @@ msgstr "" msgid "pcrel too far" msgstr "" -#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3493 +#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3495 msgid "invalid register expression" msgstr "" @@ -15318,418 +15318,423 @@ msgstr "" #: config/tc-ppc.c:1428 #, c-format -msgid "-mregnames Allow symbolic names for registers\n" +msgid "-mc2000 generate code for Hexin C2000 architecture\n" msgstr "" #: config/tc-ppc.c:1430 #, c-format +msgid "-mregnames Allow symbolic names for registers\n" +msgstr "" + +#: config/tc-ppc.c:1432 +#, c-format msgid "-mno-regnames Do not allow symbolic names for registers\n" msgstr "" -#: config/tc-ppc.c:1433 +#: config/tc-ppc.c:1435 #, c-format msgid "-mrelocatable support for GCC's -mrelocatble option\n" msgstr "" -#: config/tc-ppc.c:1435 +#: config/tc-ppc.c:1437 #, c-format msgid "-mrelocatable-lib support for GCC's -mrelocatble-lib option\n" msgstr "" -#: config/tc-ppc.c:1437 +#: config/tc-ppc.c:1439 #, c-format msgid "-memb set PPC_EMB bit in ELF flags\n" msgstr "" -#: config/tc-ppc.c:1439 +#: config/tc-ppc.c:1441 #, c-format msgid "" "-mlittle, -mlittle-endian, -le\n" " generate code for a little endian machine\n" msgstr "" -#: config/tc-ppc.c:1442 +#: config/tc-ppc.c:1444 #, c-format msgid "" "-mbig, -mbig-endian, -be\n" " generate code for a big endian machine\n" msgstr "" -#: config/tc-ppc.c:1445 +#: config/tc-ppc.c:1447 #, c-format msgid "-msolaris generate code for Solaris\n" msgstr "" -#: config/tc-ppc.c:1447 +#: config/tc-ppc.c:1449 #, c-format msgid "-mno-solaris do not generate code for Solaris\n" msgstr "" -#: config/tc-ppc.c:1449 +#: config/tc-ppc.c:1451 #, c-format msgid "-K PIC set EF_PPC_RELOCATABLE_LIB in ELF flags\n" msgstr "" -#: config/tc-ppc.c:1451 +#: config/tc-ppc.c:1453 #, c-format msgid "-V print assembler version number\n" msgstr "" -#: config/tc-ppc.c:1453 +#: config/tc-ppc.c:1455 #, c-format msgid "-Qy, -Qn ignored\n" msgstr "" -#: config/tc-ppc.c:1456 +#: config/tc-ppc.c:1458 #, c-format msgid "" "-nops=count when aligning, more than COUNT nops uses a branch\n" msgstr "" -#: config/tc-ppc.c:1458 +#: config/tc-ppc.c:1460 #, c-format msgid "-ppc476-workaround warn if emitting data to code sections\n" msgstr "" -#: config/tc-ppc.c:1488 +#: config/tc-ppc.c:1490 #, c-format msgid "unknown default cpu = %s, os = %s" msgstr "" -#: config/tc-ppc.c:1516 +#: config/tc-ppc.c:1518 msgid "neither Power nor PowerPC opcodes were selected." msgstr "" -#: config/tc-ppc.c:1574 +#: config/tc-ppc.c:1576 #, c-format msgid "mask trims opcode bits for %s" msgstr "" -#: config/tc-ppc.c:1584 +#: config/tc-ppc.c:1586 #, c-format msgid "operand index error for %s" msgstr "" -#: config/tc-ppc.c:1610 +#: config/tc-ppc.c:1612 #, c-format msgid "operand %d overlap in %s" msgstr "" -#: config/tc-ppc.c:1619 +#: config/tc-ppc.c:1621 #, c-format msgid "non-optional operand %d follows optional operand in %s" msgstr "" -#: config/tc-ppc.c:1685 +#: config/tc-ppc.c:1687 #, c-format msgid "powerpc_operands[%d].bitm invalid" msgstr "" -#: config/tc-ppc.c:1692 +#: config/tc-ppc.c:1694 #, c-format msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]" msgstr "" -#: config/tc-ppc.c:1720 config/tc-ppc.c:1773 config/tc-ppc.c:1815 -#: config/tc-ppc.c:1863 +#: config/tc-ppc.c:1722 config/tc-ppc.c:1775 config/tc-ppc.c:1817 +#: config/tc-ppc.c:1865 #, c-format msgid "major opcode is not sorted for %s" msgstr "" -#: config/tc-ppc.c:1726 +#: config/tc-ppc.c:1728 #, c-format msgid "%s is enabled by vle flag" msgstr "" -#: config/tc-ppc.c:1733 +#: config/tc-ppc.c:1735 #, c-format msgid "%s not disabled by vle flag" msgstr "" -#: config/tc-ppc.c:1839 +#: config/tc-ppc.c:1841 #, c-format msgid "opcode is not sorted for %s" msgstr "" -#: config/tc-ppc.c:2257 +#: config/tc-ppc.c:2259 #, c-format msgid "symbol+offset@%s means symbol@%s+offset" msgstr "" -#: config/tc-ppc.c:2277 +#: config/tc-ppc.c:2279 #, c-format msgid "symbol+offset@%s not supported" msgstr "" -#: config/tc-ppc.c:2356 config/tc-ppc.c:4224 config/tc-ppc.c:7686 +#: config/tc-ppc.c:2358 config/tc-ppc.c:4226 config/tc-ppc.c:7688 msgid "data in executable section" msgstr "" -#: config/tc-ppc.c:2397 +#: config/tc-ppc.c:2399 msgid "expected comma after symbol-name: rest of line ignored." msgstr "" -#: config/tc-ppc.c:2430 +#: config/tc-ppc.c:2432 #, c-format msgid "ignoring attempt to re-define symbol `%s'." msgstr "" -#: config/tc-ppc.c:2438 +#: config/tc-ppc.c:2440 #, c-format msgid "length of .lcomm \"%s\" is already %ld. Not changed to %ld." msgstr "" -#: config/tc-ppc.c:2456 +#: config/tc-ppc.c:2458 msgid "common alignment not a power of 2" msgstr "" -#: config/tc-ppc.c:2498 +#: config/tc-ppc.c:2500 #, c-format msgid "expected comma after name `%s' in .localentry directive" msgstr "" -#: config/tc-ppc.c:2508 +#: config/tc-ppc.c:2510 msgid "missing expression in .localentry directive" msgstr "" -#: config/tc-ppc.c:2529 +#: config/tc-ppc.c:2531 #, c-format msgid ".localentry expression for `%s' is not a valid power of 2" msgstr "" -#: config/tc-ppc.c:2546 +#: config/tc-ppc.c:2548 #, c-format msgid ".localentry expression for `%s' does not evaluate to a constant" msgstr "" -#: config/tc-ppc.c:2561 +#: config/tc-ppc.c:2563 msgid "missing expression in .abiversion directive" msgstr "" -#: config/tc-ppc.c:2570 +#: config/tc-ppc.c:2572 msgid ".abiversion expression does not evaluate to a constant" msgstr "" -#: config/tc-ppc.c:2650 +#: config/tc-ppc.c:2652 msgid "relocation cannot be done when using -mrelocatable" msgstr "" -#: config/tc-ppc.c:2696 +#: config/tc-ppc.c:2698 msgid "TOC section size exceeds 64k" msgstr "" -#: config/tc-ppc.c:3256 +#: config/tc-ppc.c:3258 #, c-format msgid "%s howto doesn't match size/pcrel in gas" msgstr "" -#: config/tc-ppc.c:3335 +#: config/tc-ppc.c:3337 #, c-format msgid "unrecognized opcode: `%s'" msgstr "" #. lmw, stmw, lswi, lswx, stswi, stswx -#: config/tc-ppc.c:3346 +#: config/tc-ppc.c:3348 #, c-format msgid "`%s' invalid when little-endian" msgstr "" -#: config/tc-ppc.c:3693 +#: config/tc-ppc.c:3695 #, c-format msgid "@tls may not be used with \"%s\" operands" msgstr "" -#: config/tc-ppc.c:3696 +#: config/tc-ppc.c:3698 msgid "@tls may only be used in last operand" msgstr "" -#: config/tc-ppc.c:3734 config/tc-ppc.c:3744 config/tc-ppc.c:3754 -#: config/tc-ppc.c:3769 +#: config/tc-ppc.c:3736 config/tc-ppc.c:3746 config/tc-ppc.c:3756 +#: config/tc-ppc.c:3771 #, c-format msgid "%s unsupported on this instruction" msgstr "" -#: config/tc-ppc.c:3816 +#: config/tc-ppc.c:3818 #, c-format msgid "assuming %s on symbol" msgstr "" -#: config/tc-ppc.c:3939 +#: config/tc-ppc.c:3941 msgid "unsupported relocation for DS offset field" msgstr "" -#: config/tc-ppc.c:3992 +#: config/tc-ppc.c:3994 #, c-format msgid "syntax error; found `%c', expected `%c'" msgstr "" -#: config/tc-ppc.c:3997 +#: config/tc-ppc.c:3999 #, c-format msgid "syntax error; end of line, expected `%c'" msgstr "" -#: config/tc-ppc.c:4062 config/tc-ppc.c:6860 +#: config/tc-ppc.c:4064 config/tc-ppc.c:6862 #, c-format msgid "instruction address is not a multiple of %d" msgstr "" -#: config/tc-ppc.c:4181 +#: config/tc-ppc.c:4183 msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string" msgstr "" -#: config/tc-ppc.c:4331 +#: config/tc-ppc.c:4333 msgid "missing size" msgstr "" -#: config/tc-ppc.c:4340 +#: config/tc-ppc.c:4342 msgid "negative size" msgstr "" -#: config/tc-ppc.c:4367 +#: config/tc-ppc.c:4369 msgid "Unknown visibility field in .comm" msgstr "" -#: config/tc-ppc.c:4385 +#: config/tc-ppc.c:4387 msgid "missing real symbol name" msgstr "" -#: config/tc-ppc.c:4424 +#: config/tc-ppc.c:4426 msgid "attempt to redefine symbol" msgstr "" -#: config/tc-ppc.c:4733 +#: config/tc-ppc.c:4735 #, c-format msgid "no known dwarf XCOFF section for flag 0x%08x\n" msgstr "" -#: config/tc-ppc.c:4746 +#: config/tc-ppc.c:4748 #, c-format msgid "label %s was not defined in this dwarf section" msgstr "" -#: config/tc-ppc.c:4860 +#: config/tc-ppc.c:4862 msgid "the XCOFF file format does not support arbitrary sections" msgstr "" -#: config/tc-ppc.c:4898 +#: config/tc-ppc.c:4900 msgid "Unknown visibility field in .extern" msgstr "" -#: config/tc-ppc.c:4935 +#: config/tc-ppc.c:4937 msgid "Unknown visibility field in .globl" msgstr "" -#: config/tc-ppc.c:4972 +#: config/tc-ppc.c:4974 msgid "Unknown visibility field in .weak" msgstr "" -#: config/tc-ppc.c:5023 +#: config/tc-ppc.c:5025 msgid ".ref outside .csect" msgstr "" -#: config/tc-ppc.c:5044 config/tc-ppc.c:5304 +#: config/tc-ppc.c:5046 config/tc-ppc.c:5306 msgid "missing symbol name" msgstr "" -#: config/tc-ppc.c:5074 +#: config/tc-ppc.c:5076 msgid "missing rename string" msgstr "" -#: config/tc-ppc.c:5104 config/tc-ppc.c:5706 +#: config/tc-ppc.c:5106 config/tc-ppc.c:5708 msgid "missing value" msgstr "" -#: config/tc-ppc.c:5122 +#: config/tc-ppc.c:5124 msgid "illegal .stabx expression; zero assumed" msgstr "" -#: config/tc-ppc.c:5154 +#: config/tc-ppc.c:5156 msgid "missing class" msgstr "" -#: config/tc-ppc.c:5163 +#: config/tc-ppc.c:5165 msgid "missing type" msgstr "" -#: config/tc-ppc.c:5190 +#: config/tc-ppc.c:5192 msgid ".stabx of storage class stsym must be within .bs/.es" msgstr "" -#: config/tc-ppc.c:5494 +#: config/tc-ppc.c:5496 msgid "nested .bs blocks" msgstr "" -#: config/tc-ppc.c:5525 +#: config/tc-ppc.c:5527 msgid ".es without preceding .bs" msgstr "" -#: config/tc-ppc.c:5698 +#: config/tc-ppc.c:5700 msgid "non-constant byte count" msgstr "" -#: config/tc-ppc.c:5773 +#: config/tc-ppc.c:5775 msgid ".tc not in .toc section" msgstr "" -#: config/tc-ppc.c:5791 +#: config/tc-ppc.c:5793 msgid ".tc with no label" msgstr "" -#: config/tc-ppc.c:5819 +#: config/tc-ppc.c:5821 #, c-format msgid ".tc with storage class %d not yet supported" msgstr "" -#: config/tc-ppc.c:5888 config/tc-s390.c:1964 +#: config/tc-ppc.c:5890 config/tc-s390.c:1964 msgid ".machine stack overflow" msgstr "" -#: config/tc-ppc.c:5895 config/tc-s390.c:1975 +#: config/tc-ppc.c:5897 config/tc-s390.c:1975 msgid ".machine stack underflow" msgstr "" -#: config/tc-ppc.c:5937 config/tc-s390.c:1987 +#: config/tc-ppc.c:5939 config/tc-s390.c:1987 #, c-format msgid "invalid machine `%s'" msgstr "" -#: config/tc-ppc.c:5981 +#: config/tc-ppc.c:5983 msgid "bad symbol suffix" msgstr "" -#: config/tc-ppc.c:6080 +#: config/tc-ppc.c:6082 msgid "unrecognized symbol suffix" msgstr "" -#: config/tc-ppc.c:6168 +#: config/tc-ppc.c:6170 msgid ".ef with no preceding .function" msgstr "" -#: config/tc-ppc.c:6304 +#: config/tc-ppc.c:6306 #, c-format msgid "warning: symbol %s has no csect" msgstr "" -#: config/tc-ppc.c:6636 +#: config/tc-ppc.c:6638 msgid "symbol in .toc does not match any .tc" msgstr "" -#: config/tc-ppc.c:7388 +#: config/tc-ppc.c:7390 #, c-format msgid "%s unsupported as instruction fixup" msgstr "" -#: config/tc-ppc.c:7487 +#: config/tc-ppc.c:7489 #, c-format msgid "unsupported relocation against %s" msgstr "" -#: config/tc-ppc.c:7649 +#: config/tc-ppc.c:7651 #, c-format msgid "R_TLSML relocation doesn't target a TOC entry named \"_$TLSML\": %s" msgstr "" -#: config/tc-ppc.c:7669 +#: config/tc-ppc.c:7671 #, c-format msgid "Gas failure, reloc value %d\n" msgstr "" diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h index aea7d6c2..f599a8a1 100644 --- a/include/opcode/ppc.h +++ b/include/opcode/ppc.h @@ -245,6 +245,13 @@ extern const unsigned int spe2_num_opcodes; /* Opcode is only supported by 'future' architecture. */ #define PPC_OPCODE_FUTURE 0x1000000000000ull +/* Opcode is supported by Hardware Transactional Memory */ +#define PPC_OPCODE_HTM 0x2000000000000ull + +/* Opcode is supported by C2000 */ +#define PPC_OPCODE_C2000 0x4000000000000ull + + /* A macro to extract the major opcode from an instruction. */ #define PPC_OP(i) (((i) >> 26) & 0x3f) diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c index d97137d8..055dc8f5 100644 --- a/opcodes/ppc-dis.c +++ b/opcodes/ppc-dis.c @@ -196,29 +196,34 @@ struct ppc_mopt ppc_opts[] = { { "power8", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 - | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX), + | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_HTM), 0 }, { "power9", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9 - | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX), + | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_HTM), 0 }, { "power10", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9 - | PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX), + | PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_HTM), 0 }, { "libresoc",(PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9 - | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_SVP64), + | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_SVP64 | PPC_OPCODE_HTM), 0 }, { "future", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9 - | PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX + | PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_HTM | PPC_OPCODE_FUTURE), 0 }, + { "c2000", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 + | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 + | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_C2000 + | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX), + 0 }, { "ppc", PPC_OPCODE_PPC, 0 }, { "ppc32", PPC_OPCODE_PPC, @@ -255,17 +260,17 @@ struct ppc_mopt ppc_opts[] = { { "pwr8", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 - | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX), + | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_HTM), 0 }, { "pwr9", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9 - | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX), + | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_HTM), 0 }, { "pwr10", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9 - | PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX), + | PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX | PPC_OPCODE_HTM), 0 }, { "pwrx", PPC_OPCODE_POWER | PPC_OPCODE_POWER2, 0 }, diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c index 37f1aeb7..ac92a8f1 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c @@ -5007,7 +5007,7 @@ const unsigned int num_powerpc_operands = ARRAY_SIZE (powerpc_operands); #define E500 PPC_OPCODE_E500 #define E6500 PPC_OPCODE_E6500 #define PPCVLE PPC_OPCODE_VLE -#define PPCHTM PPC_OPCODE_POWER8 +#define PPCHTM PPC_OPCODE_HTM #define E200Z4 PPC_OPCODE_E200Z4 #define PPCLSP PPC_OPCODE_LSP #define SVP64 PPC_OPCODE_SVP64 -- 2.34.1