binutils/PPC-gas-supported-c2000.patch
2024-02-27 10:32:09 +08:00

922 lines
28 KiB
Diff
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From efa66fcdad9c88db3244ec12e1a64db553a9484c Mon Sep 17 00:00:00 2001
From: chenyuanfeng <yuanfeng.chen@shingroup.cn>
Date: Tue, 27 Feb 2024 09:53:29 +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 | 233 +++++++++++++++++++------------------
include/opcode/ppc.h | 7 ++
opcodes/ppc-dis.c | 21 ++--
opcodes/ppc-opc.c | 2 +-
11 files changed, 181 insertions(+), 127 deletions(-)
create mode 100644 binutils/ChangeLog-2024
diff --git a/binutils/ChangeLog-2024 b/binutils/ChangeLog-2024
new file mode 100644
index 00000000..db429887
--- /dev/null
+++ b/binutils/ChangeLog-2024
@@ -0,0 +1,29 @@
+2024-01-03 YuanFeng Chen <yuanfeng.chen@shingroup.cn>
+
+ * 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 c9446db8..0fea501d 100644
--- a/binutils/doc/binutils.info
+++ b/binutils/doc/binutils.info
@@ -2343,7 +2343,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 8314cb57..e94ec504 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -2655,7 +2655,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 a8b034c8..d99a6091 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 ce2dc91c..ef56d9a0 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]
@@ -18702,6 +18702,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 4959c2f6..02cd9058 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
index bf47483b..36aa5fd7 100644
--- 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-07-30 14:35+0100\n"
+"POT-Creation-Date: 2024-02-27 09:52+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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:2097 config/tc-alpha.c:2121
#: config/tc-arc.c:4074 config/tc-arc.c:4147 config/tc-d10v.c:550
#: config/tc-d30v.c:534 config/tc-mn10200.c:1092 config/tc-mn10300.c:1753
-#: config/tc-ppc.c:3959 config/tc-s390.c:1337 config/tc-s390.c:1460
+#: config/tc-ppc.c:3961 config/tc-s390.c:1337 config/tc-s390.c:1460
#: config/tc-s390.c:1594 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:2991
@@ -655,7 +656,7 @@ msgid "too many fixups"
msgstr ""
#: cgen.c:371 cgen.c:393 config/tc-d10v.c:461 config/tc-d30v.c:450
-#: config/tc-mn10200.c:1034 config/tc-mn10300.c:1678 config/tc-ppc.c:3481
+#: config/tc-mn10200.c:1034 config/tc-mn10300.c:1678 config/tc-ppc.c:3483
#: config/tc-s390.c:1321 config/tc-v850.c:2644 config/tc-v850.c:2678
#: config/tc-v850.c:2718 config/tc-v850.c:2964 config/tc-z80.c:785
msgid "illegal operand"
@@ -664,7 +665,7 @@ msgstr ""
#: cgen.c:397 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:1037 config/tc-mn10300.c:1681
-#: config/tc-msp430.c:417 config/tc-ppc.c:3483 config/tc-s390.c:1326
+#: config/tc-msp430.c:417 config/tc-ppc.c:3485 config/tc-s390.c:1326
#: config/tc-sh.c:988 config/tc-v850.c:2648 config/tc-v850.c:2682
#: config/tc-v850.c:2722 config/tc-v850.c:2967 config/tc-xgate.c:895
#: config/tc-z80.c:933 config/tc-z8k.c:349
@@ -688,7 +689,7 @@ msgstr ""
msgid "expression too complex"
msgstr ""
-#: cgen.c:961 config/tc-ppc.c:7489 config/tc-s390.c:2376 config/tc-v850.c:3500
+#: cgen.c:961 config/tc-ppc.c:7491 config/tc-s390.c:2376 config/tc-v850.c:3500
#: config/tc-xstormy16.c:541
msgid "unresolved expression that must be resolved"
msgstr ""
@@ -2689,7 +2690,7 @@ msgid "sequence number in use for !tlsgd!%ld"
msgstr ""
#: config/tc-alpha.c:1994 config/tc-arc.c:2869 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 ""
@@ -2706,7 +2707,7 @@ msgstr ""
msgid "can not resolve expression"
msgstr ""
-#: config/tc-alpha.c:3514 config/tc-microblaze.c:204 config/tc-ppc.c:2405
+#: config/tc-alpha.c:3514 config/tc-microblaze.c:204 config/tc-ppc.c:2407
#, c-format
msgid ".COMMon length (%ld.) <0! Ignored."
msgstr ""
@@ -2926,8 +2927,8 @@ msgstr ""
#: config/tc-ia64.c:7463 config/tc-m68k.c:4558 config/tc-m68k.c:4570
#: config/tc-mips.c:3703 config/tc-mips.c:3736 config/tc-mips.c:3762
#: config/tc-nds32.c:3440 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:1220
@@ -3279,8 +3280,8 @@ msgstr ""
#: config/tc-arc.c:4324
#, c-format
msgid ""
-"A jump instruction with long immediate detected at the end of the ZOL label @"
-"%s"
+"A jump instruction with long immediate detected at the end of the ZOL label "
+"@%s"
msgstr ""
#: config/tc-arc.c:4330
@@ -6026,7 +6027,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:2178 config/tc-msp430.c:4645 config/tc-ppc.c:7768
+#: config/tc-mn10300.c:2178 config/tc-msp430.c:4645 config/tc-ppc.c:7770
#: config/tc-spu.c:878 config/tc-spu.c:1091 config/tc-v850.c:3365
#: config/tc-z80.c:3878
#, c-format
@@ -8716,8 +8717,8 @@ msgstr ""
#: config/tc-i386.c:7529
#, 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:7534
@@ -10849,8 +10850,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:4358 config/tc-ppc.c:4413
+#: config/tc-m32r.c:1514 config/tc-microblaze.c:218 config/tc-ppc.c:2421
+#: config/tc-ppc.c:4360 config/tc-ppc.c:4415
msgid "ignoring bad alignment"
msgstr ""
@@ -11696,7 +11697,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 ""
@@ -11737,11 +11738,10 @@ msgstr ""
msgid "base register expected"
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 ""
@@ -13767,7 +13767,7 @@ msgid "Unrecognized opcode: `%s'"
msgstr ""
#. xgettext:c-format.
-#: config/tc-mn10200.c:1133 config/tc-mn10300.c:1822 config/tc-ppc.c:4008
+#: config/tc-mn10200.c:1133 config/tc-mn10300.c:1822 config/tc-ppc.c:4010
#: config/tc-s390.c:1607 config/tc-v850.c:3041
#, c-format
msgid "junk at end of line: `%s'"
@@ -15226,7 +15226,7 @@ msgstr ""
msgid "pcrel too far"
msgstr ""
-#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3495
+#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3497
msgid "invalid register expression"
msgstr ""
@@ -15494,414 +15494,419 @@ 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: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:4226 config/tc-ppc.c:7691
+#: config/tc-ppc.c:2358 config/tc-ppc.c:4228 config/tc-ppc.c:7693
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:3695
+#: config/tc-ppc.c:3697
#, c-format
msgid "@tls may not be used with \"%s\" operands"
msgstr ""
-#: config/tc-ppc.c:3698
+#: config/tc-ppc.c:3700
msgid "@tls may only be used in last operand"
msgstr ""
-#: config/tc-ppc.c:3736 config/tc-ppc.c:3746 config/tc-ppc.c:3756
-#: config/tc-ppc.c:3771
+#: config/tc-ppc.c:3738 config/tc-ppc.c:3748 config/tc-ppc.c:3758
+#: config/tc-ppc.c:3773
#, c-format
msgid "%s unsupported on this instruction"
msgstr ""
-#: config/tc-ppc.c:3818
+#: config/tc-ppc.c:3820
#, c-format
msgid "assuming %s on symbol"
msgstr ""
-#: config/tc-ppc.c:3941
+#: config/tc-ppc.c:3943
msgid "unsupported relocation for DS offset field"
msgstr ""
-#: config/tc-ppc.c:3994
+#: config/tc-ppc.c:3996
#, c-format
msgid "syntax error; found `%c', expected `%c'"
msgstr ""
-#: config/tc-ppc.c:3999
+#: config/tc-ppc.c:4001
#, c-format
msgid "syntax error; end of line, expected `%c'"
msgstr ""
-#: config/tc-ppc.c:4064 config/tc-ppc.c:6865
+#: config/tc-ppc.c:4066 config/tc-ppc.c:6867
#, c-format
msgid "instruction address is not a multiple of %d"
msgstr ""
-#: config/tc-ppc.c:4183
+#: config/tc-ppc.c:4185
msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string"
msgstr ""
-#: config/tc-ppc.c:4333
+#: config/tc-ppc.c:4335
msgid "missing size"
msgstr ""
-#: config/tc-ppc.c:4342
+#: config/tc-ppc.c:4344
msgid "negative size"
msgstr ""
-#: config/tc-ppc.c:4369
+#: config/tc-ppc.c:4371
msgid "Unknown visibility field in .comm"
msgstr ""
-#: config/tc-ppc.c:4387
+#: config/tc-ppc.c:4389
msgid "missing real symbol name"
msgstr ""
-#: config/tc-ppc.c:4426
+#: config/tc-ppc.c:4428
msgid "attempt to redefine symbol"
msgstr ""
-#: config/tc-ppc.c:4735
+#: config/tc-ppc.c:4737
#, c-format
msgid "no known dwarf XCOFF section for flag 0x%08x\n"
msgstr ""
-#: config/tc-ppc.c:4748
+#: config/tc-ppc.c:4750
#, c-format
msgid "label %s was not defined in this dwarf section"
msgstr ""
-#: config/tc-ppc.c:4862
+#: config/tc-ppc.c:4864
msgid "the XCOFF file format does not support arbitrary sections"
msgstr ""
-#: config/tc-ppc.c:4900
+#: config/tc-ppc.c:4902
msgid "Unknown visibility field in .extern"
msgstr ""
-#: config/tc-ppc.c:4937
+#: config/tc-ppc.c:4939
msgid "Unknown visibility field in .globl"
msgstr ""
-#: config/tc-ppc.c:4974
+#: config/tc-ppc.c:4976
msgid "Unknown visibility field in .weak"
msgstr ""
-#: config/tc-ppc.c:5025
+#: config/tc-ppc.c:5027
msgid ".ref outside .csect"
msgstr ""
-#: config/tc-ppc.c:5046 config/tc-ppc.c:5306
+#: config/tc-ppc.c:5048 config/tc-ppc.c:5308
msgid "missing symbol name"
msgstr ""
-#: config/tc-ppc.c:5076
+#: config/tc-ppc.c:5078
msgid "missing rename string"
msgstr ""
-#: config/tc-ppc.c:5106 config/tc-ppc.c:5708
+#: config/tc-ppc.c:5108 config/tc-ppc.c:5710
msgid "missing value"
msgstr ""
-#: config/tc-ppc.c:5124
+#: config/tc-ppc.c:5126
msgid "illegal .stabx expression; zero assumed"
msgstr ""
-#: config/tc-ppc.c:5156
+#: config/tc-ppc.c:5158
msgid "missing class"
msgstr ""
-#: config/tc-ppc.c:5165
+#: config/tc-ppc.c:5167
msgid "missing type"
msgstr ""
-#: config/tc-ppc.c:5192
+#: config/tc-ppc.c:5194
msgid ".stabx of storage class stsym must be within .bs/.es"
msgstr ""
-#: config/tc-ppc.c:5496
+#: config/tc-ppc.c:5498
msgid "nested .bs blocks"
msgstr ""
-#: config/tc-ppc.c:5527
+#: config/tc-ppc.c:5529
msgid ".es without preceding .bs"
msgstr ""
-#: config/tc-ppc.c:5700
+#: config/tc-ppc.c:5702
msgid "non-constant byte count"
msgstr ""
-#: config/tc-ppc.c:5775
+#: config/tc-ppc.c:5777
msgid ".tc not in .toc section"
msgstr ""
-#: config/tc-ppc.c:5793
+#: config/tc-ppc.c:5795
msgid ".tc with no label"
msgstr ""
-#: config/tc-ppc.c:5821
+#: config/tc-ppc.c:5823
#, c-format
msgid ".tc with storage class %d not yet supported"
msgstr ""
-#: config/tc-ppc.c:5890 config/tc-s390.c:1967
+#: config/tc-ppc.c:5892 config/tc-s390.c:1967
msgid ".machine stack overflow"
msgstr ""
-#: config/tc-ppc.c:5897 config/tc-s390.c:1978
+#: config/tc-ppc.c:5899 config/tc-s390.c:1978
msgid ".machine stack underflow"
msgstr ""
-#: config/tc-ppc.c:5939 config/tc-s390.c:1990
+#: config/tc-ppc.c:5941 config/tc-s390.c:1990
#, c-format
msgid "invalid machine `%s'"
msgstr ""
-#: config/tc-ppc.c:5983
+#: config/tc-ppc.c:5985
msgid "bad symbol suffix"
msgstr ""
-#: config/tc-ppc.c:6082
+#: config/tc-ppc.c:6084
msgid "unrecognized symbol suffix"
msgstr ""
-#: config/tc-ppc.c:6170
+#: config/tc-ppc.c:6172
msgid ".ef with no preceding .function"
msgstr ""
-#: config/tc-ppc.c:6309
+#: config/tc-ppc.c:6311
#, c-format
msgid "warning: symbol %s has no csect"
msgstr ""
-#: config/tc-ppc.c:6641
+#: config/tc-ppc.c:6643
msgid "symbol in .toc does not match any .tc"
msgstr ""
-#: config/tc-ppc.c:7393
+#: config/tc-ppc.c:7395
#, c-format
msgid "%s unsupported as instruction fixup"
msgstr ""
-#: config/tc-ppc.c:7492
+#: config/tc-ppc.c:7494
#, c-format
msgid "unsupported relocation against %s"
msgstr ""
-#: config/tc-ppc.c:7654
+#: config/tc-ppc.c:7656
#, c-format
msgid "R_TLSML relocation doesn't target a TOC entry named \"_$TLSML\": %s"
msgstr ""
-#: config/tc-ppc.c:7674
+#: config/tc-ppc.c:7676
#, 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.33.0