From 46d5ebb6e3dc0d6a75ae90f3e6f84b2e14542c78 Mon Sep 17 00:00:00 2001 From: Dmitry Selyutin Date: Mon, 29 May 2023 01:04:58 +0300 Subject: [PATCH] ppc: support ffadds instruction --- gas/testsuite/gas/ppc/ffadds.d | 14 ++++++++++++++ gas/testsuite/gas/ppc/ffadds.s | 6 ++++++ gas/testsuite/gas/ppc/ppc.exp | 1 + opcodes/ppc-opc.c | 2 ++ 4 files changed, 23 insertions(+) create mode 100644 gas/testsuite/gas/ppc/ffadds.d create mode 100644 gas/testsuite/gas/ppc/ffadds.s diff --git a/gas/testsuite/gas/ppc/ffadds.d b/gas/testsuite/gas/ppc/ffadds.d new file mode 100644 index 00000000000..daac033b937 --- /dev/null +++ b/gas/testsuite/gas/ppc/ffadds.d @@ -0,0 +1,14 @@ +#as: -mlibresoc +#objdump: -dr -Mlibresoc + +.*: file format .* + + +Disassembly of section \.text: +0+ <\.text>: +.*:\s+(ef e0 07 c0|c0 07 e0 ef)\s+ffadds\s+f31,f0,f0 +.*:\s+(ec 1f 07 c0|c0 07 1f ec)\s+ffadds\s+f0,f31,f0 +.*:\s+(ec 00 ff c0|c0 ff 00 ec)\s+ffadds\s+f0,f0,f31 +.*:\s+(ef e0 07 c1|c1 07 e0 ef)\s+ffadds.\s+f31,f0,f0 +.*:\s+(ec 1f 07 c1|c1 07 1f ec)\s+ffadds.\s+f0,f31,f0 +.*:\s+(ec 00 ff c1|c1 ff 00 ec)\s+ffadds.\s+f0,f0,f31 diff --git a/gas/testsuite/gas/ppc/ffadds.s b/gas/testsuite/gas/ppc/ffadds.s new file mode 100644 index 00000000000..8529c624bdd --- /dev/null +++ b/gas/testsuite/gas/ppc/ffadds.s @@ -0,0 +1,6 @@ +ffadds 31,0,0 +ffadds 0,31,0 +ffadds 0,0,31 +ffadds. 31,0,0 +ffadds. 0,31,0 +ffadds. 0,0,31 diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp index 5da429e1a80..9cbfcc231e1 100644 --- a/gas/testsuite/gas/ppc/ppc.exp +++ b/gas/testsuite/gas/ppc/ppc.exp @@ -180,3 +180,4 @@ run_dump_test "ffmadds" run_dump_test "ffnmsubs" run_dump_test "ffnmadds" run_dump_test "fdmadds" +run_dump_test "ffmadds" diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c index d168258374f..ab06775d9ff 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c @@ -9507,6 +9507,8 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"flog10s.", XRC(59,973,1), X_MASK, SFFS, PPCVLE, {FRT, FRB}}, {"fremainders", XRC(59,975,0), X_MASK, SFFS, PPCVLE, {FRT, FRA, FRB}}, {"fremainders.", XRC(59,975,1), X_MASK, SFFS, PPCVLE, {FRT, FRA, FRB}}, +{"ffadds", A(59,992,0), AFRC_MASK, SFFS, PPCVLE, {FRT, FRA, FRB}}, +{"ffadds.", A(59,992,1), AFRC_MASK, SFFS, PPCVLE, {FRT, FRA, FRB}}, {"fpowrs", XRC(59,1004,0), X_MASK, SFFS, PPCVLE, {FRT, FRA, FRB}}, {"fpowrs.", XRC(59,1004,1), X_MASK, SFFS, PPCVLE, {FRT, FRA, FRB}}, {"fpows", XRC(59,1005,0), X_MASK, SFFS, PPCVLE, {FRT, FRA, FRB}}, -- 2.30.2