From: Jacob Lifshay Date: Tue, 4 Apr 2023 01:19:03 +0000 (-0700) Subject: resolve ToInt32 instruction count disagreement X-Git-Tag: opf_rfc_ls012_v1~141 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fd4449853ae9d37c81ca396d7fe7678b8f070702;p=libreriscv.git resolve ToInt32 instruction count disagreement --- diff --git a/openpower/sv.mdwn b/openpower/sv.mdwn index d214a5403..e4ecb0652 100644 --- a/openpower/sv.mdwn +++ b/openpower/sv.mdwn @@ -225,9 +225,9 @@ Scalable Vector binaries more efficient, such as the crweird group. Others are to bring the Scalar Power ISA up-to-date within specific workloads, such as a JavaScript Rounding instruction -(which saves 35 instructions including 5 branches) (FIXME: disagrees with int_fp_mv and int_fp_mv/appendix). None of them are strictly -necessary but performance and power consumption may be (or, is already) -compromised +(which saves 32 scalar instructions including seven branch instructions). +None of them are strictly necessary but performance and power consumption may +be (or, is already) compromised in certain workloads and use-cases without them. Vector-related but still Scalar: diff --git a/openpower/sv/int_fp_mv.mdwn b/openpower/sv/int_fp_mv.mdwn index becbd7e5f..f363debb5 100644 --- a/openpower/sv/int_fp_mv.mdwn +++ b/openpower/sv/int_fp_mv.mdwn @@ -89,7 +89,6 @@ well-suited for common/important conversion sequences: The assembly listings in the [[int_fp_mv/appendix]] show how costly some of these language-specific conversions are: JavaScript, the worst case, is 32 scalar instructions including seven branch instructions. -(FIXME: disagrees with ls006 and sv.mdwn) # Proposed New Scalar Instructions diff --git a/openpower/sv/int_fp_mv/appendix.mdwn b/openpower/sv/int_fp_mv/appendix.mdwn index 57eaf9d70..02a002e84 100644 --- a/openpower/sv/int_fp_mv/appendix.mdwn +++ b/openpower/sv/int_fp_mv/appendix.mdwn @@ -271,8 +271,6 @@ inline Target bitwise_cast(Src v) { ### 64-bit float -> 32-bit signed integer -(FIXME: disagrees with ls006 and sv.mdwn) - ``` toInt32(double): stfd 1,-16(1) diff --git a/openpower/sv/rfc/ls006.mdwn b/openpower/sv/rfc/ls006.mdwn index 608fe69ff..8cc92d775 100644 --- a/openpower/sv/rfc/ls006.mdwn +++ b/openpower/sv/rfc/ls006.mdwn @@ -79,8 +79,8 @@ implements each variant. **Notes and Observations**: * These instructions are present in many other ISAs. -* JavaScript rounding as one instruction saves 35 instructions including - six branches. (FIXME: disagrees with int_fp_mv and int_fp_mv/appendix) +* JavaScript rounding as one instruction saves 32 scalar instructions + including seven branch instructions. * Both sets are orthogonal (no difference except being Single/Double). This allows IBM to follow the pre-existing precedent of allocating separate Major Opcodes (PO) for Double-precision and Single-precision