X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FPrimOps.cmm;h=377418af415cc5b3e1cca48895f7953b406d668a;hb=015d3d46b6de2f95386a515a7d166d996a0416db;hp=b4dfb6ddc28d36ad14bc95ca94a8957b7128c997;hpb=dcba7784a1af5fd0c054031c49fe159d69af4f86;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)); }