diff options
Diffstat (limited to '')
-rw-r--r-- | src/buildvm_ppc.dasc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc index 108363e5..a81335db 100644 --- a/src/buildvm_ppc.dasc +++ b/src/buildvm_ppc.dasc | |||
@@ -2430,6 +2430,19 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
2430 | | evstddx TMP0, BASE, RA | 2430 | | evstddx TMP0, BASE, RA |
2431 | | ins_next2 | 2431 | | ins_next2 |
2432 | break; | 2432 | break; |
2433 | case BC_KCDATA: | ||
2434 | #if LJ_HASFFI | ||
2435 | | // RA = dst*8, RD = cdata_const*8 (~) | ||
2436 | | ins_next1 | ||
2437 | | srwi TMP1, RD, 1 | ||
2438 | | subfic TMP1, TMP1, -4 | ||
2439 | | lwzx TMP0, KBASE, TMP1 // KBASE-4-cdata_const*4 | ||
2440 | | li TMP2, LJ_TCDATA | ||
2441 | | evmergelo TMP0, TMP2, TMP0 | ||
2442 | | evstddx TMP0, BASE, RA | ||
2443 | | ins_next2 | ||
2444 | #endif | ||
2445 | break; | ||
2433 | case BC_KSHORT: | 2446 | case BC_KSHORT: |
2434 | | // RA = dst*8, RD = int16_literal*8 | 2447 | | // RA = dst*8, RD = int16_literal*8 |
2435 | | srwi TMP1, RD, 3 | 2448 | | srwi TMP1, RD, 3 |