mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-12 17:24:09 +00:00
PPC: Add unary test and copy instructions.
This commit is contained in:
parent
7457ee869a
commit
44fb3ebc64
@ -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 --------------------------------------------------------- */
|
||||||
|
Loading…
Reference in New Issue
Block a user