aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-09-23 02:42:29 +0200
committerMike Pall <mike>2010-09-23 02:42:29 +0200
commitf635e3e5bbaa76fecc84ed5bb1d4855220b4a08a (patch)
treeb6bf4bb64cffe34c8a6d97227edd4afdaef11e60 /src
parent493d0aa259428170c3da819b157dcdce5a1b5765 (diff)
downloadluajit-f635e3e5bbaa76fecc84ed5bb1d4855220b4a08a.tar.gz
luajit-f635e3e5bbaa76fecc84ed5bb1d4855220b4a08a.tar.bz2
luajit-f635e3e5bbaa76fecc84ed5bb1d4855220b4a08a.zip
PPC: Add dispatch target for call hook.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_ppc.dasc24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc
index a27591e5..e0eaa95b 100644
--- a/src/buildvm_ppc.dasc
+++ b/src/buildvm_ppc.dasc
@@ -1182,12 +1182,32 @@ static void build_subroutines(BuildCtx *ctx)
1182#endif 1182#endif
1183 | 1183 |
1184 |->vm_callhook: // Dispatch target for call hooks. 1184 |->vm_callhook: // Dispatch target for call hooks.
1185 | NYI 1185 | mr CARG2, PC
1186#if LJ_HASJIT
1187 | b >1
1188#endif
1186 | 1189 |
1187 |->vm_hotcall: // Hot call counter underflow. 1190 |->vm_hotcall: // Hot call counter underflow.
1188#if LJ_HASJIT 1191#if LJ_HASJIT
1189 | NYI 1192 | ori CARG2, PC, 1
1193 |1:
1190#endif 1194#endif
1195 | add TMP0, BASE, RC
1196 | stw PC, SAVE_PC
1197 | mr CARG1, L
1198 | stw BASE, L->base
1199 | sub RA, RA, BASE
1200 | stw TMP0, L->top
1201 | bl extern lj_dispatch_call // (lua_State *L, const BCIns *pc)
1202 | // Returns ASMFunction.
1203 | lwz BASE, L->base
1204 | lwz TMP0, L->top
1205 | stw ZERO, SAVE_PC // Invalidate for subsequent line hook.
1206 | sub NARGS8:RC, TMP0, BASE
1207 | add RA, BASE, RA
1208 | lwz LFUNC:RB, FRAME_FUNC(BASE)
1209 | mtctr CRET1
1210 | bctr
1191 | 1211 |
1192 |//----------------------------------------------------------------------- 1212 |//-----------------------------------------------------------------------
1193 |//-- Trace exit handler ------------------------------------------------- 1213 |//-- Trace exit handler -------------------------------------------------