From: Jacob Lifshay Date: Mon, 7 Aug 2023 23:04:00 +0000 (-0700) Subject: split out instructions from openpower/isa/svfixedarith.mdwn X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8f0437f316fe126e6241239bb44222076034ac8a;p=openpower-isa.git split out instructions from openpower/isa/svfixedarith.mdwn --- diff --git a/openpower/isa/svfixedarith.mdwn b/openpower/isa/svfixedarith.mdwn index 6ce79fb6..3a74609b 100644 --- a/openpower/isa/svfixedarith.mdwn +++ b/openpower/isa/svfixedarith.mdwn @@ -1,117 +1,9 @@ -# [DRAFT] Multiply and Add Extended Doubleword Unsigned +[[!inline pagenames="openpower/isa/svfixedarith/maddedu" raw="yes"]] -VA-Form +[[!inline pagenames="openpower/isa/svfixedarith/maddedus" raw="yes"]] -* maddedu RT,RA,RB,RC +[[!inline pagenames="openpower/isa/svfixedarith/divmod2du" raw="yes"]] -Pseudo-code: +[[!inline pagenames="openpower/isa/svfixedarith/dsld" raw="yes"]] - - prod[0:XLEN*2-1] <- [0] * (XLEN * 2) - if (RB)[0] != 0 then - prod[0:XLEN*2-1] <- -((RA) * -(RB)) - else - prod[0:XLEN*2-1] <- (RA) * (RB) - - sum[0:XLEN*2-1] <- prod + (EXTSXL((RC)[0], 1) || (RC)) - RT <- sum[XLEN:2*XLEN-1] - RS <- sum[0:XLEN-1] - -Special Registers Altered: - - None - -# [DRAFT] Divide/Modulo Double-width Doubleword Unsigned - -VA-Form - -* divmod2du RT,RA,RB,RC - -Pseudo-code: - - + prod[0:XLEN*2-1] <- [0] * (XLEN * 2) + if (RB)[0] != 0 then + prod[0:XLEN*2-1] <- -((RA) * -(RB)) + else + prod[0:XLEN*2-1] <- (RA) * (RB) + + sum[0:XLEN*2-1] <- prod + (EXTSXL((RC)[0], 1) || (RC)) + RT <- sum[XLEN:2*XLEN-1] + RS <- sum[0:XLEN-1]