* Add support for values in the constant pool
authorChris Lattner <sabre@nondot.org>
Mon, 13 Jan 2003 00:14:55 +0000 (00:14 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 13 Jan 2003 00:14:55 +0000 (00:14 +0000)
* Add support for functions referenced by name

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5206 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/MachineCodeEmitter.h

index 6f47726de4699475445bf737204edc66ab6e6182..572772dde70ad1611a7e69d0ef2a73a1271029ce 100644 (file)
 #ifndef LLVM_CODEGEN_MACHINE_CODE_EMITTER_H
 #define LLVM_CODEGEN_MACHINE_CODE_EMITTER_H
 
+#include <string>
 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