ppc: introduce flag for draft opcodes
authorDmitry Selyutin <ghostmansd@gmail.com>
Sat, 14 May 2022 10:47:11 +0000 (10:47 +0000)
committerDmitry Selyutin <ghostmansd@gmail.com>
Mon, 23 May 2022 10:55:49 +0000 (10:55 +0000)
include/opcode/ppc.h
opcodes/ppc-dis.c
opcodes/ppc-opc.c

index a9c2529831108c50fd570ad7b0a45937eaa470f1..d81ab10a3cad88654632947bf84dc5badc7a3751 100644 (file)
@@ -231,6 +231,9 @@ extern const unsigned int spe2_num_opcodes;
 /* Opcode is only supported by power10 architecture.  */
 #define PPC_OPCODE_POWER10  0x400000000000ull
 
+/* Opcode is experimental; not yet approved by OpenPOWER Foundation.  */
+#define PPC_OPCODE_DRAFT    0x800000000000ull
+
 /* A macro to extract the major opcode from an instruction.  */
 #define PPC_OP(i) (((i) >> 26) & 0x3f)
 
index 38ddeca26231b81ef12c73c6096a6fa60a47f6ed..169be1e15da7b8dc19dc326eee78abb8c8f12680 100644 (file)
@@ -205,6 +205,12 @@ struct ppc_mopt ppc_opts[] = {
                | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9
                | PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX),
     0 },
+  { "draft",  (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_DRAFT),
+    0 },
   { "ppc",     PPC_OPCODE_PPC,
     0 },
   { "ppc32",   PPC_OPCODE_PPC,
index bd83d44a2ae8837ab6a2f7f2cf64edda230ae0f8..7d19af760e740fb1e664e3a19704fc899be60780 100644 (file)
@@ -4767,6 +4767,7 @@ const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
 #define POWER8 PPC_OPCODE_POWER8
 #define POWER9 PPC_OPCODE_POWER9
 #define POWER10 PPC_OPCODE_POWER10
+#define DRAFT  PPC_OPCODE_DRAFT
 #define CELL   PPC_OPCODE_CELL
 #define PPC64  PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
 #define NON32  (PPC_OPCODE_64 | PPC_OPCODE_POWER4      \