diff options
-rw-r--r-- | utils/clangVisualizers.txt | 92 |
1 files changed, 91 insertions, 1 deletions
diff --git a/utils/clangVisualizers.txt b/utils/clangVisualizers.txt index f9f834b76c..a5a8ee6039 100644 --- a/utils/clangVisualizers.txt +++ b/utils/clangVisualizers.txt @@ -41,4 +41,94 @@ llvm::StringRef{ clang::Token{ preview((clang::tok::TokenKind)(int)$e.Kind) -}
\ No newline at end of file +} + +PointerIntPair<*,*,*,*>{ + preview ( + #( + ($T1*)($e.Value & PointerBitMask), + " [", + ($T3)(($e.Value >> IntShift) & IntMask), + "]" + ) + ) + + children ( + #( + #([ptr] : ($T1*)($e.Value & PointerBitMask)), + #([int] : ($T3)($e.Value >> IntShift) & IntMask) + ) + ) +} + +PointerUnion<*,*>{ + preview ( + #if ((($e.Val.Value >> $e.Val.IntShift) & $e.Val.IntMask) == 0) ( + "PT1" + ) #else ( + "PT2" + ) + ) + + children ( + #( + #if ((($e.Val.Value >> $e.Val.IntShift) & $e.Val.IntMask) == 0) ( + #([ptr] : ($T1)($e.Val.Value & $e.Val.PointerBitMask)) + ) #else ( + #([ptr] : ($T2)($e.Val.Value & $e.Val.PointerBitMask)) + ) + ) + ) +} + +PointerUnion3<*,*,*>{ + preview ( + #if (($e.Val.Val.Value & 0x2) == 2) ( + "PT2" + ) #elif (($e.Val.Val.Value & 0x1) == 1) ( + "PT3" + ) #else ( + "PT1" + ) + ) + + children ( + #( + #if (($e.Val.Val.Value & 0x2) == 2) ( + #([ptr] : ($T2)(($e.Val.Val.Value >> 2) << 2)) + ) #elif (($e.Val.Val.Value & 0x1) == 1) ( + #([ptr] : ($T3)(($e.Val.Val.Value >> 2) << 2)) + ) #else ( + #([ptr] : ($T1)(($e.Val.Val.Value >> 2) << 2)) + ) + ) + ) +} + +PointerUnion4<*,*,*,*>{ + preview ( + #if (($e.Val.Val.Value & 0x3) == 3) ( + "PT4" + ) #elif (($e.Val.Val.Value & 0x2) == 2) ( + "PT2" + ) #elif (($e.Val.Val.Value & 0x1) == 1) ( + "PT3" + ) #else ( + "PT1" + ) + ) + + children ( + #( + #if (($e.Val.Val.Value & 0x3) == 3) ( + #([ptr] : ($T4)(($e.Val.Val.Value >> 2) << 2)) + ) #elif (($e.Val.Val.Value & 0x2) == 2) ( + #([ptr] : ($T2)(($e.Val.Val.Value >> 2) << 2)) + ) #elif (($e.Val.Val.Value & 0x1) == 1) ( + #([ptr] : ($T3)(($e.Val.Val.Value >> 2) << 2)) + ) #else ( + #([ptr] : ($T1)(($e.Val.Val.Value >> 2) << 2)) + ) + ) + ) +} |