-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/Function.h"
-#include <iostream>
-
-namespace {
- struct DebugMachineCodeEmitter : public MachineCodeEmitter {
- void startFunction(MachineFunction &F) {
- std::cout << "\n**** Writing machine code for function: "
- << F.getFunction()->getName() << "\n";
- }
- void finishFunction(MachineFunction &F) {
- std::cout << "\n";
- }
- void startBasicBlock(MachineBasicBlock &BB) {
- std::cout << "\n--- Basic Block: " << BB.getBasicBlock()->getName()<<"\n";
- }
-
- void emitByte(unsigned char B) {
- std::cout << "0x" << std::hex << (unsigned int)B << std::dec << " ";
- }
- void emitPCRelativeDisp(Value *V) {
- std::cout << "<disp %" << V->getName() << ": 0xXX 0xXX 0xXX 0xXX> ";
- }
- void emitGlobalAddress(GlobalValue *V, bool isPCRelative) {
- std::cout << "<addr %" << V->getName() << ": 0xXX 0xXX 0xXX 0xXX> ";
- }
- void emitGlobalAddress(const std::string &Name, bool isPCRelative) {
- std::cout << "<addr %" << Name << ": 0xXX 0xXX 0xXX 0xXX> ";
- }
-
- void emitFunctionConstantValueAddress(unsigned ConstantNum, int Offset) {
- std::cout << "<addr const#" << ConstantNum;
- if (Offset) std::cout << " + " << Offset;
- std::cout << "> ";
- }
- };
-}