1 Star 0 Fork 59

yuucyf/binutils_240

forked from src-openEuler/binutils 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0002-PPC-gas-supported-c2000.patch 28.16 KB
一键复制 编辑 原始数据 按行查看 历史
yuucyf 提交于 2024-01-04 20:54 . [PPC] gas supporte c2000 processor
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918
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
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yuucyf/binutils_240.git
git@gitee.com:yuucyf/binutils_240.git
yuucyf
binutils_240
binutils_240
master

搜索帮助