extsw: 32-bit -> 64-bit sign extension
```
-The RTL for `extsb` becomes:
+The pseudo-code for `extsb` becomes:
```
- in <- (RA)[XLEN-8:XLEN-1]
- if XLEN = 8 then RT <- in[0]] * 8 # 1->8
- if XLEN = 16 then RT <- in[13]] * 15 || in[15] # 2->16
- if XLEN = 32 then RT <- in[28]] * 29 || in[29:31] # 4->32
- if XLEN = 64 then RT <- in[55]] * 56 || in[57:63] # 8->64
+RT[0:XLEN-1] <- EXTS((RA)[XLEN*7/8:XLEN-1])
+```
+
+or, if expanded out:
+
+```
+ if XLEN = 8 then RT <- (RA)[ 7] * 7 || (RA)[ 7: 7] # 1 -> 8
+ if XLEN = 16 then RT <- (RA)[14] * 14 || (RA)[14:15] # 2 -> 16
+ if XLEN = 32 then RT <- (RA)[28] * 28 || (RA)[28:31] # 4 -> 32
+ if XLEN = 64 then RT <- (RA)[56] * 56 || (RA)[56:63] # 8 -> 64
```
And `extsh` and `extsw` follow similar logic. Interestingly there is