[llvm-commits] CVS: llvm/lib/System/Disassembler.cpp

2007-03-05 Thread Anton Korobeynikov


Changes in directory llvm/lib/System:

Disassembler.cpp updated: 1.2 -> 1.3
---
Log message:

Implement PR1240: http://llvm.org/PR1240 


---
Diffs of the changes:  (+10 -0)

 Disassembler.cpp |   10 ++
 1 files changed, 10 insertions(+)


Index: llvm/lib/System/Disassembler.cpp
diff -u llvm/lib/System/Disassembler.cpp:1.2 
llvm/lib/System/Disassembler.cpp:1.3
--- llvm/lib/System/Disassembler.cpp:1.2Sun Mar  4 00:36:24 2007
+++ llvm/lib/System/Disassembler.cppMon Mar  5 23:32:48 2007
@@ -26,6 +26,16 @@
 
 using namespace llvm;
 
+bool llvm::sys::hasDisassembler(void) 
+{
+#if defined (__i386__) || defined (__amd64__) || defined (__x86_64__)
+  // We have option to enable udis86 library.
+  return true;
+#else
+  return false;
+#endif
+}
+
 std::string llvm::sys::disassembleBuffer(uint8_t* start, size_t length,
  uint64_t pc) {
   std::stringstream res;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/System/Disassembler.cpp

2007-03-03 Thread Chris Lattner


Changes in directory llvm/lib/System:

Disassembler.cpp updated: 1.1 -> 1.2
---
Log message:

fix typo


---
Diffs of the changes:  (+2 -2)

 Disassembler.cpp |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/lib/System/Disassembler.cpp
diff -u llvm/lib/System/Disassembler.cpp:1.1 
llvm/lib/System/Disassembler.cpp:1.2
--- llvm/lib/System/Disassembler.cpp:1.1Tue Jan 23 04:26:08 2007
+++ llvm/lib/System/Disassembler.cppSun Mar  4 00:36:24 2007
@@ -54,11 +54,11 @@
 res << ud_insn_off(&ud_obj) << ":\t" << ud_insn_asm(&ud_obj) << "\n";
   }
 # else
-  res << "No disassembler available. See configure help for avaiable 
options.\n";
+  res << "No disassembler available. See configure help for options.\n";
 # endif
   
 #else
-  res << "No disassembler available. See configure help for avaiable 
options.\n";
+  res << "No disassembler available. See configure help for options.\n";
 #endif
 
   return res.str();



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/System/Disassembler.cpp

2007-01-23 Thread Anton Korobeynikov


Changes in directory llvm/lib/System:

Disassembler.cpp added (r1.1)
---
Log message:

Moved disassembler to libSystem


---
Diffs of the changes:  (+65 -0)

 Disassembler.cpp |   65 +++
 1 files changed, 65 insertions(+)


Index: llvm/lib/System/Disassembler.cpp
diff -c /dev/null llvm/lib/System/Disassembler.cpp:1.1
*** /dev/null   Tue Jan 23 04:26:19 2007
--- llvm/lib/System/Disassembler.cppTue Jan 23 04:26:08 2007
***
*** 0 
--- 1,65 
+ //===- lib/System/Disassembler.cpp --*- C++ 
-*-===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+ // This file was developed by Anton Korobeynikov and is distributed under the
+ // University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ 
//===--===//
+ //
+ // This file implements the necessary glue to call external disassembler
+ // libraries.
+ //
+ 
//===--===//
+ 
+ #include "llvm/Config/config.h"
+ #include "llvm/System/Disassembler.h"
+ 
+ #include 
+ #include 
+ #include 
+ #include 
+ 
+ #if USE_UDIS86
+ #include 
+ #endif
+ 
+ using namespace llvm;
+ 
+ std::string llvm::sys::disassembleBuffer(uint8_t* start, size_t length,
+  uint64_t pc) {
+   std::stringstream res;
+ 
+ #if defined (__i386__) || defined (__amd64__) || defined (__x86_64__)
+   unsigned bits;
+ # if defined(__i386__)
+   bits = 32;
+ # else
+   bits = 64;
+ # endif
+   
+ # if USE_UDIS86
+   ud_t ud_obj;
+
+   ud_init(&ud_obj);
+   ud_set_input_buffer(&ud_obj, start, length);
+   ud_set_mode(&ud_obj, bits);
+   ud_set_pc(&ud_obj, pc);
+   ud_set_syntax(&ud_obj, UD_SYN_ATT);
+   
+   res << std::setbase(16)
+   << std::setw(bits/4);
+   
+   while (ud_disassemble(&ud_obj)) {
+ res << ud_insn_off(&ud_obj) << ":\t" << ud_insn_asm(&ud_obj) << "\n";
+   }
+ # else
+   res << "No disassembler available. See configure help for avaiable 
options.\n";
+ # endif
+   
+ #else
+   res << "No disassembler available. See configure help for avaiable 
options.\n";
+ #endif
+ 
+   return res.str();
+ }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits