From f968849bae07cde50637a74e73e34b7c616db6aa Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Tue, 25 Apr 2023 10:09:08 +0100 Subject: [PATCH] add ls015 for cr weirds --- openpower/sv/rfc/ls015.mdwn | 135 ++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 openpower/sv/rfc/ls015.mdwn diff --git a/openpower/sv/rfc/ls015.mdwn b/openpower/sv/rfc/ls015.mdwn new file mode 100644 index 000000000..9cb023694 --- /dev/null +++ b/openpower/sv/rfc/ls015.mdwn @@ -0,0 +1,135 @@ +# RFC ls014 CR Weird operations + +**URLs**: + +* +* +* + +**Severity**: Major + +**Status**: New + +**Date**: 25 Apr 2023 + +**Target**: v3.2B + +**Source**: v3.1B + +**Books and Section affected**: + +``` + Book I Fixed-Point Instructions + Appendix E Power ISA sorted by opcode + Appendix F Power ISA sorted by version + Appendix G Power ISA sorted by Compliancy Subset + Appendix H Power ISA sorted by mnemonic +``` + +**Summary** + +``` + Instructions added: crweird, crweirder, mfcrfm, mfcrweird, mtcrweird +``` + +**Submitter**: Luke Leighton (Libre-SOC) + +**Requester**: Libre-SOC + +**Impact on processor**: + +``` + Addition of new GPR-CR-based instructions +``` + +**Impact on software**: + +``` + Requires support for new instructions in assembler, debuggers, + and related tools. +``` + +**Keywords**: + +``` + CR Fields, predication, GPR +``` + +**Motivation** + +Existing Condition Register operations are somewhat anaemic if to be utilised more extensively +as Predicate Masks in a True-Scalable Vector ISA. Merging of multiple CR Fields requires several +operations that may be achieved with a single "weird" operation, and transfer between CR Fields +and GPR is easier and more powerful. This mitigates the need to add dozens of duplicate Logical +Operations. + +**Notes and Observations**: + +1. TODO + +**Changes** + +Add the following entries to: + +* the Appendices of Book I +* Book I 3.3.13 Condition Register Instructions +* Book I 1.6.1 and 1.6.2 + +---------- + +\newpage{} + +[[!inline pages="openpower/sv/cr_int_predication" raw=yes ]] + +---------- + +\newpage{} + +# Instruction Formats + +Add the following entries to Book I 1.6.1 Word Instruction Formats: + +## MM-FORM + +``` + |0 |6 |11 |16 |21 |24 |25 |31 | + | PO | FRT | FRA | FRB | FMM | XO | Rc | + | PO | RT | RA | RB | MMM | / | XO | Rc | +``` + +Add the following new fields to Book I 1.6.2 Word Instruction Fields: + +``` + FMM (21:24) + Field used to specify minimum/maximum mode for fminmax[s]. + + Formats: MM + + MMM (21:23) + Field used to specify minimum/maximum mode for integer minmax. + + Formats: MM +``` + +Add `MM` to the `Formats:` list for all of `FRT`, `FRA`, `FRB`, `XO (25:30)`, +`Rc`, `RT`, `RA` and `RB`. + +---------- + +\newpage{} + +# Appendices + + Appendix E Power ISA sorted by opcode + Appendix F Power ISA sorted by version + Appendix G Power ISA sorted by Compliancy Subset + Appendix H Power ISA sorted by mnemonic + +| Form | Book | Page | Version | Mnemonic | Description | +|------|------|------|---------|----------|-------------| +| MM | I | # | 3.2B | fminmax | Floating Minimum/Maximum | +| MM | I | # | 3.2B | fminmaxs | Floating Minimum/Maximum Single | +| MM | I | # | 3.2B | minmax | Minimum/Maximum | + +[[!tag opf_rfc]] + -- 2.30.2