aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2018-03-08 10:17:41 +1030
committerAlan Modra <amodra@gmail.com>2018-03-08 14:17:01 +1030
commit3fea0c3b3fe53ea805f1289ec9ff5e785024362f (patch)
tree49696b751f102f7d74becafe7cdb5a1f031ef893
parent6d4f21f6eee9933a2883f2a214953432c13ee1c2 (diff)
downloadgdb-3fea0c3b3fe53ea805f1289ec9ff5e785024362f.zip
gdb-3fea0c3b3fe53ea805f1289ec9ff5e785024362f.tar.gz
gdb-3fea0c3b3fe53ea805f1289ec9ff5e785024362f.tar.bz2
Remove unnecessary power9 group terminating nop
Power9 doesn't have a group terminating nop, so we may as well emit a normal nop for power9. Not that it matters a great deal, I believe ori 2,2,0 will be treated exactly as ori 0,0,0 by the hardware. * config/tc-ppc.c (ppc_handle_align): Don't emit a group terminating nop for power9.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-ppc.c18
2 files changed, 13 insertions, 10 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 765270d..7670ee2 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2018-03-08 Alan Modra <amodra@gmail.com>
+
+ * config/tc-ppc.c (ppc_handle_align): Don't emit a group
+ terminating nop for power9.
+
2018-03-07 H.J. Lu <hongjiu.lu@intel.com>
PR gas/22874
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index f63003b..dc63d60 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -6550,14 +6550,13 @@ ppc_handle_align (struct frag *fragP)
if ((ppc_cpu & PPC_OPCODE_POWER6) != 0
|| (ppc_cpu & PPC_OPCODE_POWER7) != 0
- || (ppc_cpu & PPC_OPCODE_POWER8) != 0
- || (ppc_cpu & PPC_OPCODE_POWER9) != 0)
+ || (ppc_cpu & PPC_OPCODE_POWER8) != 0)
{
- /* For power6, power7, power8 and power9, we want the last nop to be
- a group terminating one. Do this by inserting an rs_fill frag
- immediately after this one, with its address set to the last nop
- location. This will automatically reduce the number of nops in
- the current frag by one. */
+ /* For power6, power7, and power8, we want the last nop to
+ be a group terminating one. Do this by inserting an
+ rs_fill frag immediately after this one, with its address
+ set to the last nop location. This will automatically
+ reduce the number of nops in the current frag by one. */
if (count > 4)
{
struct frag *group_nop = xmalloc (SIZEOF_STRUCT_FRAG + 4);
@@ -6572,14 +6571,13 @@ ppc_handle_align (struct frag *fragP)
}
if ((ppc_cpu & PPC_OPCODE_POWER7) != 0
- || (ppc_cpu & PPC_OPCODE_POWER8) != 0
- || (ppc_cpu & PPC_OPCODE_POWER9) != 0)
+ || (ppc_cpu & PPC_OPCODE_POWER8) != 0)
{
if (ppc_cpu & PPC_OPCODE_E500MC)
/* e500mc group terminating nop: "ori 0,0,0". */
md_number_to_chars (dest, 0x60000000, 4);
else
- /* power7/power8/power9 group terminating nop: "ori 2,2,0". */
+ /* power7/power8 group terminating nop: "ori 2,2,0". */
md_number_to_chars (dest, 0x60420000, 4);
}
else