X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=openpower%2Fisa%2Ffixedshift.mdwn;h=02f1a71a85f2e747e55325fcc78838d1cdf2777a;hb=86f0c748efb10c84e014583cc400dee29564f7a7;hp=514c3b4e7bf7815f8986c1ef7249bb5143c13ba2;hpb=f5367023b60e7ec1383e3c06fbca7b062f2c27ad;p=openpower-isa.git diff --git a/openpower/isa/fixedshift.mdwn b/openpower/isa/fixedshift.mdwn index 514c3b4e..02f1a71a 100644 --- a/openpower/isa/fixedshift.mdwn +++ b/openpower/isa/fixedshift.mdwn @@ -20,7 +20,7 @@ M-Form Pseudo-code: n <- SH - r <- ROTL32((RS)[32:63], n) + r <- ROTL32((RS)[XLEN/2:XLEN-1], n) m <- MASK32(MB, ME) RA <- r & m @@ -37,7 +37,7 @@ M-Form Pseudo-code: - n <- (RB)[59:63] + n <- (RB)[XLEN-5:XLEN-1] r <- ROTL32((RS)[32:63], n) m <- MASK32(MB, ME) RA <- r & m @@ -56,7 +56,7 @@ M-Form Pseudo-code: n <- SH - r <- ROTL32((RS)[32:63], n) + r <- ROTL32((RS)[XLEN/2:XLEN-1], n) m <- MASK32(MB, ME) RA <- r&m | (RA) & ¬m @@ -76,7 +76,7 @@ Pseudo-code: n <- sh r <- ROTL64((RS), n) b <- mb[5] || mb[0:4] - m <- MASK(b, 63) + m <- MASK(b, (XLEN-1)) RA <- r & m Special Registers Altered: @@ -130,10 +130,10 @@ MDS-Form Pseudo-code: - n <- (RB)[58:63] + n <- (RB)[XLEN-5:XLEN-1] r <- ROTL64((RS), n) b <- mb[5] || mb[0:4] - m <- MASK(b, 63) + m <- MASK(b, (XLEN-1)) RA <- r & m Special Registers Altered: @@ -149,7 +149,7 @@ MDS-Form Pseudo-code: - n <- (RB)[58:63] + n <- (RB)[XLEN-5:XLEN-1] r <- ROTL64((RS), n) e <- me[5] || me[0:4] m <- MASK(0, e) @@ -190,11 +190,11 @@ X-Form Pseudo-code: - n <- (RB)[59:63] - r <- ROTL32((RS)[32:63], n) - if (RB)[58] = 0 then - m <- MASK32(0, 31-n) - else m <- [0]*64 + n <- (RB)[XLEN-5:XLEN-1] + r <- ROTL32((RS)[XLEN/2:XLEN-1], n) + if (RB)[XLEN-6] = 0 then + m <- MASK32(0, ((XLEN/2)-1-n)) + else m <- [0]*XLEN RA <- r & m Special Registers Altered: @@ -210,11 +210,11 @@ X-Form Pseudo-code: - n <- (RB)[59:63] - r <- ROTL32((RS)[32:63], 64-n) - if (RB)[58] = 0 then - m <- MASK32(n, 31) - else m <- [0]*64 + n <- (RB)[XLEN-5:XLEN-1] + r <- ROTL32((RS)[XLEN/2:XLEN-1], XLEN-n) + if (RB)[XLEN-6] = 0 then + m <- MASK32(n, ((XLEN/2)-1)) + else m <- [0]*XLEN RA <- r & m Special Registers Altered: @@ -231,11 +231,11 @@ X-Form Pseudo-code: n <- SH - r <- ROTL32((RS)[32:63], 64-n) - m <- MASK32(n, 31) - s <- (RS)[32] - RA <- r&m | ([s]*64)& ¬m - carry <- s & ((r&¬m)[32:63] != 0) + r <- ROTL32((RS)[XLEN/2:XLEN-1], 64-n) + m <- MASK32(n, ((XLEN/2)-1)) + s <- (RS)[XLEN/2] + RA <- r&m | ([s]*XLEN)& ¬m + carry <- s & ((r&¬m)[XLEN/2:XLEN-1] != 0) CA <- carry CA32 <- carry @@ -253,14 +253,14 @@ X-Form Pseudo-code: - n <- (RB)[59:63] - r <- ROTL32((RS)[32:63], 64-n) - if (RB)[58] = 0 then - m <- MASK32(n, 31) - else m <- [0]*64 - s <- (RS)[32] - RA <- r&m | ([s]*64)& ¬m - carry <- s & ((r&¬m)[32:63] != 0) + n <- (RB)[XLEN-5:XLEN-1] + r <- ROTL32((RS)[XLEN/2:XLEN-1], XLEN-n) + if (RB)[XLEN-6] = 0 then + m <- MASK32(n, ((XLEN/2)-1)) + else m <- [0]*XLEN + s <- (RS)[XLEN/2] + RA <- r&m | ([s]*XLEN)& ¬m + carry <- s & ((r&¬m)[XLEN/2:XLEN-1] != 0) CA <- carry CA32 <- carry @@ -278,11 +278,11 @@ X-Form Pseudo-code: - n <- (RB)[58:63] + n <- (RB)[XLEN-6:XLEN-1] r <- ROTL64((RS), n) - if (RB)[57] = 0 then - m <- MASK(0, 63-n) - else m <- [0]*64 + if (RB)[XLEN-7] = 0 then + m <- MASK(0, XLEN-1-n) + else m <- [0]*XLEN RA <- r & m Special Registers Altered: @@ -298,11 +298,11 @@ X-Form Pseudo-code: - n <- (RB)[58:63] - r <- ROTL64((RS), 64-n) - if (RB)[57] = 0 then - m <- MASK(n, 63) - else m <- [0]*64 + n <- (RB)[XLEN-6:XLEN-1] + r <- ROTL64((RS), XLEN-n) + if (RB)[XLEN-7] = 0 then + m <- MASK(n, (XLEN-1)) + else m <- [0]*XLEN RA <- r & m Special Registers Altered: @@ -319,10 +319,10 @@ XS-Form Pseudo-code: n <- sh - r <- ROTL64((RS), 64-n) - m <- MASK(n, 63) + r <- ROTL64((RS), XLEN-n) + m <- MASK(n, (XLEN-1)) s <- (RS)[0] - RA <- r&m | ([s]*64)& ¬m + RA <- r&m | ([s]*XLEN)& ¬m carry <- s & ((r& ¬m) != 0) CA <- carry CA32 <- carry @@ -341,13 +341,13 @@ X-Form Pseudo-code: - n <- (RB)[58:63] - r <- ROTL64((RS), 64-n) - if (RB)[57] = 0 then - m <- MASK(n, 63) - else m <- [0]*64 + n <- (RB)[XLEN-6:XLEN-1] + r <- ROTL64((RS), XLEN-n) + if (RB)[XLEN-7] = 0 then + m <- MASK(n, (XLEN-1)) + else m <- [0]*XLEN s <- (RS)[0] - RA <- r&m | ([s]*64)& ¬m + RA <- r&m | ([s]*XLEN)& ¬m carry <- s & ((r&¬m) != 0) CA <- carry CA32 <- carry @@ -367,8 +367,8 @@ XS-Form Pseudo-code: n <- sh - r <- ROTL64(EXTS64(RS[32:63]), n) - m <- MASK(0, 63-n) + r <- ROTL64(EXTS64(RS[XLEN/2:XLEN-1]), n) + m <- MASK(0, XLEN-1-n) RA <- r & m Special Registers Altered: