projects
/
libreriscv.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3729da6
)
(no commit message)
author
lkcl
<lkcl@web>
Tue, 25 Oct 2022 10:22:16 +0000
(11:22 +0100)
committer
IkiWiki
<ikiwiki.info>
Tue, 25 Oct 2022 10:22:16 +0000
(11:22 +0100)
openpower/sv/bitmanip.mdwn
patch
|
blob
|
history
diff --git
a/openpower/sv/bitmanip.mdwn
b/openpower/sv/bitmanip.mdwn
index 4744974a88175ede03e33564d83afa1df7260277..a4d68a0c6ee210ccf63d160c5eee9e823341ccba 100644
(file)
--- a/
openpower/sv/bitmanip.mdwn
+++ b/
openpower/sv/bitmanip.mdwn
@@
-249,18
+249,16
@@
Replaces a pair of explicit instructions in hot-loops.
| PO | RT | RA | RB |sm | XO |Rc |
```
| PO | RT | RA | RB |sm | XO |Rc |
```
-
Pseudo-code (shadd):
- shift <- sm & 0x3 # Ensure sm is 2-bit
+Pseudo-code (shadd):
+
shift <- shift + 1 # Shift is between 1-4
sum[0:63] <- ((RB) << shift) + (RA) # Shift RB, add RA
RT <- sum # Result stored in RT
shift <- shift + 1 # Shift is between 1-4
sum[0:63] <- ((RB) << shift) + (RA) # Shift RB, add RA
RT <- sum # Result stored in RT
-Is Rc used to indicate the two modes?
+Pseudo-code (shadduw):
- Pseudo-code (shadduw):
- shift <- sm & 0x3 # Ensure sm is 2-bit
shift <- shift + 1 # Shift is between 1-4
shift <- shift + 1 # Shift is between 1-4
- n <- (RB)
& 0xFFFFFFFF
# Limit RB to upper word (32-bits)
+ n <- (RB)
[XLEN/2:XLEN-1]
# Limit RB to upper word (32-bits)
sum[0:63] <- (n << shift) + (RA) # Shift n, add RA
RT <- sum # Result stored in RT
sum[0:63] <- (n << shift) + (RA) # Shift n, add RA
RT <- sum # Result stored in RT