[PATCH v4 0/3] Add support for divde[.] and divdeu[.] instruction emulation
Balamuruhan S
bala24 at linux.ibm.com
Fri Apr 3 02:19:20 AEDT 2020
Hi All,
This patchset adds support to emulate divde, divde., divdeu and divdeu.
instructions and testcases for it.
Changes in v4:
-------------
Fix review comments from Naveen,
* replace TEST_DIVDEU() instead of wrongly used TEST_DIVDEU_DOT() in
divdeu testcase.
* Include `acked-by` tag from Naveen for the series.
* Rebase it on latest mpe's merge tree.
Changes in v3:
-------------
* Fix suggestion from Sandipan to remove `PPC_INST_DIVDE_DOT` and
`PPC_INST_DIVDEU_DOT` opcode macros defined in ppc-opcode.h, reuse
`PPC_INST_DIVDE` and `PPC_INST_DIVDEU` in test_emulate_step.c to
derive them respectively.
Changes in v2:
-------------
* Fix review comments from Paul to make divde_dot and divdeu_dot simple
by using divde and divdeu, then goto `arith_done` instead of
`compute_done`.
* Include `Reviewed-by` tag from Sandipan Das.
* Rebase with recent mpe's merge tree.
I would request for your review and suggestions for making it better.
Boot Log:
--------
:: ::
:: ::
[ 2.777518] emulate_step_test: divde : RA = LONG_MIN, RB = LONG_MIN PASS
[ 2.777882] emulate_step_test: divde : RA = 1L, RB = 0 PASS
[ 2.778432] emulate_step_test: divde : RA = LONG_MIN, RB = LONG_MAX PASS
[ 2.778880] emulate_step_test: divde. : RA = LONG_MIN, RB = LONG_MIN PASS
[ 2.780172] emulate_step_test: divde. : RA = 1L, RB = 0 PASS
[ 2.780582] emulate_step_test: divde. : RA = LONG_MIN, RB = LONG_MAX PASS
[ 2.780983] emulate_step_test: divdeu : RA = LONG_MIN, RB = LONG_MIN PASS
[ 2.781276] emulate_step_test: divdeu : RA = 1L, RB = 0 PASS
[ 2.781579] emulate_step_test: divdeu : RA = LONG_MIN, RB = LONG_MAX PASS
[ 2.781820] emulate_step_test: divdeu : RA = LONG_MAX - 1, RB = LONG_MAX PASS
[ 2.782056] emulate_step_test: divdeu : RA = LONG_MIN + 1, RB = LONG_MIN PASS
[ 2.782296] emulate_step_test: divdeu. : RA = LONG_MIN, RB = LONG_MIN PASS
[ 2.782556] emulate_step_test: divdeu. : RA = 1L, RB = 0 PASS
[ 2.783502] emulate_step_test: divdeu. : RA = LONG_MIN, RB = LONG_MAX PASS
[ 2.783748] emulate_step_test: divdeu. : RA = LONG_MAX - 1, RB = LONG_MAX PASS
[ 2.783973] emulate_step_test: divdeu. : RA = LONG_MIN + 1, RB = LONG_MIN PASS
[ 2.789617] registered taskstats version 1
[ 2.794779] printk: console [netcon0] enabled
[ 2.794931] netconsole: network logging started
[ 2.795327] hctosys: unable to open rtc device (rtc0)
[ 2.953449] Freeing unused kernel memory: 5120K
[ 2.953639] This architecture does not have kernel memory protection.
[ 2.953918] Run /init as init process
[ 3.173573] mount (54) used greatest stack depth: 12576 bytes left
[ 3.252465] mount (55) used greatest stack depth: 12544 bytes left
Welcome to Buildroot
buildroot login:
Balamuruhan S (3):
powerpc ppc-opcode: add divde and divdeu opcodes
powerpc sstep: add support for divde[.] and divdeu[.] instructions
powerpc test_emulate_step: add testcases for divde[.] and divdeu[.]
instructions
arch/powerpc/include/asm/ppc-opcode.h | 8 ++
arch/powerpc/lib/sstep.c | 13 +-
arch/powerpc/lib/test_emulate_step.c | 164 ++++++++++++++++++++++++++
3 files changed, 184 insertions(+), 1 deletion(-)
base-commit: 9c17a47d827c00401c2ff2ba71d7ecf08ed5b677
--
2.24.1
More information about the Linuxppc-dev
mailing list