binutils/0002-PPC-gas-supported-c2000.patch
2024-01-08 03:26:38 -05:00

919 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.

From d1fd0f2d0da3171a8678c7e31bb1863a53dfe1c2 Mon Sep 17 00:00:00 2001
From: chenyuanfeng <yuanfeng.chen@shingroup.cn>
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 <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 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 <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: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