Implement return hooks for Lua functions (zero-cost if disabled).

This commit is contained in:
Mike Pall
2010-02-14 20:48:33 +01:00
parent 8e38231f9e
commit 2a2f8ed6a1
9 changed files with 1505 additions and 1462 deletions

View File

@@ -2453,7 +2453,13 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
| jmp >1
#endif
|
|->vm_hook: // Dispatch target with enabled hooks.
|->vm_rethook: // Dispatch target for return hooks.
| movzx RD, byte [DISPATCH+DISPATCH_GL(hookmask)]
| test RDL, HOOK_ACTIVE // Hook already active?
| jnz >5
| jmp >1
|
|->vm_inshook: // Dispatch target for instr/line hooks.
| movzx RD, byte [DISPATCH+DISPATCH_GL(hookmask)]
| test RDL, HOOK_ACTIVE // Hook already active?
| jnz >5