It's incompletete -- it wasn't filling ReferenceType so it was causing
garbagge on the disassembly.  Furthermore it seems impossible to get the
jump information through this interface.

The solution for function size problem is to effectively book-keep the
machine code start and end address while JIT'ing.
---
 src/gallium/auxiliary/gallivm/lp_bld_debug.cpp | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp 
b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
index 64fb044..9a85248 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
@@ -115,18 +115,6 @@ lp_debug_dump_value(LLVMValueRef value)
 }
 
 
-static const char *
-disassemblerSymbolLookupCB(void *DisInfo,
-                           uint64_t ReferenceValue,
-                           uint64_t *ReferenceType,
-                           uint64_t ReferencePC,
-                           const char **ReferenceName)
-{
-   // TODO: Maybe this can be used to guess jumps
-   return NULL;
-}
-
-
 /*
  * Disassemble a function, using the LLVM MC disassembler.
  *
@@ -149,7 +137,7 @@ disassemble(const void* func, llvm::raw_ostream & Out)
     */
 
    std::string Triple = llvm::sys::getProcessTriple();
-   LLVMDisasmContextRef D = LLVMCreateDisasm(Triple.c_str(), NULL, 0, NULL, 
&disassemblerSymbolLookupCB);
+   LLVMDisasmContextRef D = LLVMCreateDisasm(Triple.c_str(), NULL, 0, NULL, 
NULL);
    char outline[1024];
 
    if (!D) {
-- 
2.1.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to