Path from Ashok Thirumurthi:
authorGreg Clayton <gclayton@apple.com>
Tue, 30 Oct 2012 18:18:43 +0000 (18:18 +0000)
committerGreg Clayton <gclayton@apple.com>
Tue, 30 Oct 2012 18:18:43 +0000 (18:18 +0000)
commit0665a0f09e6597937766c32e606346baf055a495
tree5a66d2a020dfaab582cb9ced2080a31eb01014c4
parentb3e8e688da4e71a77399f21318f89e4010094324
Path from Ashok Thirumurthi:

The attached patch adds eValueTypeVector to lldb_private::Value.  The nested struct Vector is patterned after RegisterValue::m_data.buffer.  This change to Value allows ClangExpressionDeclMap::LookupDecl to return vector register data for consumption by InterpreterStackFrame::ResolveValue.  Note that ResolveValue was tweaked slightly to allocate enough memory for vector registers.

An immediate result of this patch is that "expr $xmm0" generates the same results on Linux as on the Mac, which is good enough for TestRegisters.py.  In addition, the log of m_memory.PrintData(data_region.m_base, data_region.m_extent) shows that the register content has been resolved successfully.  On the other hand, the output is glaringly empty:
    runCmd: expr $xmm0
    output: (unsigned char __attribute__((ext_vector_type(16)))) $0 = {}
    Expecting sub string: vector_type
    Matched

llvm-svn: 167033
lldb/include/lldb/Core/Value.h
lldb/source/Core/ValueObject.cpp
lldb/source/Core/ValueObjectVariable.cpp
lldb/source/Expression/ClangExpressionDeclMap.cpp
lldb/source/Expression/IRInterpreter.cpp