From: Chris Lattner Date: Mon, 13 Jan 2003 00:14:55 +0000 (+0000) Subject: * Add support for values in the constant pool X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=29dd209228125b7ae7431edb9278b6038ef4a87f;p=oota-llvm.git * Add support for values in the constant pool * Add support for functions referenced by name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5206 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/CodeGen/MachineCodeEmitter.h b/include/llvm/CodeGen/MachineCodeEmitter.h index 6f47726de46..572772dde70 100644 --- a/include/llvm/CodeGen/MachineCodeEmitter.h +++ b/include/llvm/CodeGen/MachineCodeEmitter.h @@ -10,8 +10,10 @@ #ifndef LLVM_CODEGEN_MACHINE_CODE_EMITTER_H #define LLVM_CODEGEN_MACHINE_CODE_EMITTER_H +#include class MachineFunction; class MachineBasicBlock; +class MachineConstantPool; class Value; class GlobalValue; @@ -28,6 +30,10 @@ struct MachineCodeEmitter { /// virtual void finishFunction(MachineFunction &F) {} + /// emitConstantPool - This callback is invoked to output the constant pool + /// for the function. + virtual void emitConstantPool(MachineConstantPool *MCP) {} + /// startBasicBlock - This callback is invoked when a new basic block is about /// to be emitted. /// @@ -48,8 +54,17 @@ struct MachineCodeEmitter { /// address of a global value to machine code. This is important for indirect /// calls as well as accessing global variables. /// - virtual void emitGlobalAddress(GlobalValue *V) {} + virtual void emitGlobalAddress(GlobalValue *V, bool isPCRelative) {} + virtual void emitGlobalAddress(const std::string &Name, bool isPCRelative) {} + /// emitFunctionConstantValueAddress - This callback is invoked when the + /// address of a constant, which was spilled to memory, needs to be addressed. + /// This is used for constants which cannot be directly specified as operands + /// to instructions, such as large integer values on the sparc, or floating + /// point constants on the X86. + /// + virtual void emitFunctionConstantValueAddress(unsigned ConstantNum, + int Offset) {} /// createDebugMachineCodeEmitter - Return a dynamically allocated machine /// code emitter, which just prints the opcodes and fields out the cout. This