X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=includes%2FCmm.h;h=4cfb432811f6da84f719f06b150772e1454da34c;hp=d47e6fdaa64bcf9d9b5e434958d7c81e81edd13e;hb=d7fcc5eb8e926038240078ebfccea05f4f3eb1da;hpb=b95ca692ddc47376b114dee0cf93871661a53358 diff --git a/includes/Cmm.h b/includes/Cmm.h index d47e6fd..4cfb432 100644 --- a/includes/Cmm.h +++ b/includes/Cmm.h @@ -102,18 +102,8 @@ #endif /* - * The RTS must UNTAG a pointer before dereferencing it. - * The use of UNTAG follows the following rules of thumb: - * - * - Any pointer might be tagged. - * - Except the pointers that are passed in R1 to RTS functions. - * - R1 is also untagged when entering constructor code. - * - * TODO: - * - * - Remove redundancies of tagging and untagging in code generation. - * - Optimize getTag or dataToTag# ? - * + * The RTS must sometimes UNTAG a pointer before dereferencing it. + * See the wiki page Commentary/Rts/HaskellExecution/PointerTagging */ #define TAG_MASK ((1 << TAG_BITS) - 1) #define UNTAG(p) (p & ~TAG_MASK)