diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vm_ppc.dasc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index b84a1fc2..461676cd 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc | |||
@@ -34,15 +34,15 @@ | |||
34 | |.macro lp, a, b; ld a, b; .endmacro | 34 | |.macro lp, a, b; ld a, b; .endmacro |
35 | |.macro stp, a, b; std a, b; .endmacro | 35 | |.macro stp, a, b; std a, b; .endmacro |
36 | |.define decode_OPP, decode_OP8 | 36 | |.define decode_OPP, decode_OP8 |
37 | |.if FFI | ||
38 | |// Missing: Calling conventions, 64 bit regs, TOC. | ||
39 | |.error lib_ffi not yet implemented for PPC64 | ||
40 | |.endif | ||
37 | |.else | 41 | |.else |
38 | |.macro lpx, a, b, c; lwzx a, b, c; .endmacro | 42 | |.macro lpx, a, b, c; lwzx a, b, c; .endmacro |
39 | |.macro lp, a, b; lwz a, b; .endmacro | 43 | |.macro lp, a, b; lwz a, b; .endmacro |
40 | |.macro stp, a, b; stw a, b; .endmacro | 44 | |.macro stp, a, b; stw a, b; .endmacro |
41 | |.define decode_OPP, decode_OP4 | 45 | |.define decode_OPP, decode_OP4 |
42 | |.if FFI | ||
43 | |// Missing: Calling conventions, 64 bit regs, TOC. | ||
44 | |.error lib_ffi not yet implemented for PPC64 | ||
45 | |.endif | ||
46 | |.endif | 46 | |.endif |
47 | | | 47 | | |
48 | |// Convenience macros for TOC handling. | 48 | |// Convenience macros for TOC handling. |
@@ -4898,7 +4898,11 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
4898 | | cmplw TMP1, TMP2 | 4898 | | cmplw TMP1, TMP2 |
4899 | | stp RC, L->top | 4899 | | stp RC, L->top |
4900 | | li_vmstate C | 4900 | | li_vmstate C |
4901 | |.if TOC | ||
4901 | | mtctr TMP3 | 4902 | | mtctr TMP3 |
4903 | |.else | ||
4904 | | mtctr RD | ||
4905 | |.endif | ||
4902 | if (op == BC_FUNCCW) { | 4906 | if (op == BC_FUNCCW) { |
4903 | | lp CARG2, CFUNC:RB->f | 4907 | | lp CARG2, CFUNC:RB->f |
4904 | } | 4908 | } |