|
@@ -210,18 +210,20 @@ DECLARE_LOAD_FUNC(sk_load_byte_msh);
|
|
|
___PPC_RS(a) | ___PPC_RB(s))
|
|
|
#define PPC_SRW(d, a, s) EMIT(PPC_INST_SRW | ___PPC_RA(d) | \
|
|
|
___PPC_RS(a) | ___PPC_RB(s))
|
|
|
+#define PPC_RLWINM(d, a, i, mb, me) EMIT(PPC_INST_RLWINM | ___PPC_RA(d) | \
|
|
|
+ ___PPC_RS(a) | __PPC_SH(i) | \
|
|
|
+ __PPC_MB(mb) | __PPC_ME(me))
|
|
|
+#define PPC_RLDICR(d, a, i, me) EMIT(PPC_INST_RLDICR | ___PPC_RA(d) | \
|
|
|
+ ___PPC_RS(a) | __PPC_SH(i) | \
|
|
|
+ __PPC_ME64(me) | (((i) & 0x20) >> 4))
|
|
|
+
|
|
|
/* slwi = rlwinm Rx, Ry, n, 0, 31-n */
|
|
|
-#define PPC_SLWI(d, a, i) EMIT(PPC_INST_RLWINM | ___PPC_RA(d) | \
|
|
|
- ___PPC_RS(a) | __PPC_SH(i) | \
|
|
|
- __PPC_MB(0) | __PPC_ME(31-(i)))
|
|
|
+#define PPC_SLWI(d, a, i) PPC_RLWINM(d, a, i, 0, 31-(i))
|
|
|
/* srwi = rlwinm Rx, Ry, 32-n, n, 31 */
|
|
|
-#define PPC_SRWI(d, a, i) EMIT(PPC_INST_RLWINM | ___PPC_RA(d) | \
|
|
|
- ___PPC_RS(a) | __PPC_SH(32-(i)) | \
|
|
|
- __PPC_MB(i) | __PPC_ME(31))
|
|
|
+#define PPC_SRWI(d, a, i) PPC_RLWINM(d, a, 32-(i), i, 31)
|
|
|
/* sldi = rldicr Rx, Ry, n, 63-n */
|
|
|
-#define PPC_SLDI(d, a, i) EMIT(PPC_INST_RLDICR | ___PPC_RA(d) | \
|
|
|
- ___PPC_RS(a) | __PPC_SH(i) | \
|
|
|
- __PPC_MB(63-(i)) | (((i) & 0x20) >> 4))
|
|
|
+#define PPC_SLDI(d, a, i) PPC_RLDICR(d, a, i, 63-(i))
|
|
|
+
|
|
|
#define PPC_NEG(d, a) EMIT(PPC_INST_NEG | ___PPC_RT(d) | ___PPC_RA(a))
|
|
|
|
|
|
/* Long jump; (unconditional 'branch') */
|