X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FPrimOps.cmm;h=377418af415cc5b3e1cca48895f7953b406d668a;hb=071f080ab938648063db1e3c9e0b4d01e9621b1f;hp=b4dfb6ddc28d36ad14bc95ca94a8957b7128c997;hpb=40b1a3cb6bab3955b0de6ce592dd21ae02f4b594;p=ghc-hetmet.git diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm index b4dfb6d..377418a 100644 --- a/rts/PrimOps.cmm +++ b/rts/PrimOps.cmm @@ -1903,8 +1903,23 @@ stg_traceEventzh { W_ msg; msg = R1; + #if defined(TRACING) || defined(DEBUG) + foreign "C" traceUserMsg(MyCapability() "ptr", msg "ptr") []; + +#elif defined(DTRACE) + + W_ enabled; + + // We should go through the macro HASKELLEVENT_USER_MSG_ENABLED from + // RtsProbes.h, but that header file includes unistd.h, which doesn't + // work in Cmm + (enabled) = foreign "C" __dtrace_isenabled$HaskellEvent$user__msg$v1() []; + if (enabled != 0) { + foreign "C" dtraceUserMsgWrapper(MyCapability() "ptr", msg "ptr") []; + } + #endif jump %ENTRY_CODE(Sp(0)); }