Example #1
0
void DotBuilder::doTree(ASTElement* tree)
{
  _sb.appendString("digraph G {\n");
  _sb.appendString("  node [shape=record];\n");
  doElement(tree);
  _sb.appendString("}\n");
}
Example #2
0
void DotBuilder::doCall(ASTCall* element)
{
  const Vector<ASTElement*>& arguments = element->getArguments();
  size_t i, len = arguments.getLength();
  size_t celter = len / 2;

  _sb.appendFormat("  N_%u [label=\"", element->getElementId());
  _sb.appendFormat("<F0>%s", Hash<Function>::dataToKey(element->getFunction()));
  for (i = 0; i < len; i++)
  {
    _sb.appendFormat("<A%u>", (unsigned int)i);
  }
  _sb.appendString("\"];\n");

  for (i = 0; i < len; i++)
  {
    _sb.appendFormat("  N_%u:A%u -> N_%u:F0;\n",
      element->getElementId(),
      (unsigned int)i,
      arguments[i]->getElementId());
  }

  for (i = 0; i < len; i++)
  {
    doElement(arguments[i]);
  }
}
Example #3
0
  virtual bool run(void* _func, StringBuilder& result, StringBuilder& expected)
  {
    typedef void (*Func)(uint32_t*, const uint32_t*, size_t);
    Func func = asmjit_cast<Func>(_func);

    enum { kBufferSize = 32 };
    uint32_t dstBuffer[kBufferSize];
    uint32_t srcBuffer[kBufferSize];
  
    uint i;
    for (i = 0; i < kBufferSize; i++)
    {
      dstBuffer[i] = 0;
      srcBuffer[i] = i;
    }
    
    func(dstBuffer, srcBuffer, kBufferSize);

    result.setString("buf={");
    expected.setString("buf={");

    for (i = 0; i < kBufferSize; i++)
    {
      if (i != 0)
      {
        result.appendString(", ");
        expected.appendString(", ");
      }

      result.appendFormat("%u", static_cast<uint>(dstBuffer[i]));
      expected.appendFormat("%u", static_cast<uint>(srcBuffer[i]));
    }

    result.appendString("}");
    expected.appendString("}");

    return memcmp(dstBuffer, srcBuffer, kBufferSize * sizeof(uint32_t)) == 0;
  }