PPC: Add unary test and copy instructions.

This commit is contained in:
Mike Pall 2010-09-01 20:29:29 +02:00
parent 7457ee869a
commit 44fb3ebc64

View File

@ -1067,7 +1067,34 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
/* -- Unary test and copy ops ------------------------------------------- */ /* -- Unary test and copy ops ------------------------------------------- */
case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
| NYI | // RA = dst*8 or unused, RD = src*8, JMP with RD = target
| evlddx TMP0, BASE, RD
| evaddw TMP1, TISNIL, TISNIL // Synthesize LJ_TFALSE.
| lwz INS, 0(PC)
| evcmpltu TMP0, TMP1
| addi PC, PC, 4
if (op == BC_IST || op == BC_ISF) {
| addis TMP3, PC, -(BCBIAS_J*4 >> 16)
| decode_RD4 TMP2, INS
| add TMP2, TMP2, TMP3
if (op == BC_IST) {
| isellt PC, TMP2, PC
} else {
| isellt PC, PC, TMP2
}
} else {
if (op == BC_ISTC) {
| checkfail >1
} else {
| checkok >1
}
| addis PC, PC, -(BCBIAS_J*4 >> 16)
| decode_RD4 TMP2, INS
| evstddx TMP0, BASE, RA
| add PC, PC, TMP2
|1:
}
| ins_next
break; break;
/* -- Unary ops --------------------------------------------------------- */ /* -- Unary ops --------------------------------------------------------- */