diff --git a/0002-PPC-gas-supported-c2000.patch b/0002-PPC-gas-supported-c2000.patch new file mode 100644 index 0000000000000000000000000000000000000000..096102e86c2f948376f7fc990b1fb7ba564ae647 --- /dev/null +++ b/0002-PPC-gas-supported-c2000.patch @@ -0,0 +1,918 @@ +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 @@ ++2014-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 +