diff options
author | Mike Pall <mike> | 2010-09-23 02:42:29 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2010-09-23 02:42:29 +0200 |
commit | f635e3e5bbaa76fecc84ed5bb1d4855220b4a08a (patch) | |
tree | b6bf4bb64cffe34c8a6d97227edd4afdaef11e60 /src | |
parent | 493d0aa259428170c3da819b157dcdce5a1b5765 (diff) | |
download | luajit-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.dasc | 24 |
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 ------------------------------------------------- |