//===-- SparcV9CodeEmitter.h ------------------------------------*- C++ -*-===//
-//
+//
// The LLVM Compiler Infrastructure
//
// This file was developed by the LLVM research group and is distributed under
// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
+//
//===----------------------------------------------------------------------===//
-//
-// TODO: Need a description here.
+//
+// Target-specific portions of the machine code emitter for the SparcV9.
+// This class interfaces with the JIT's Emitter in order to turn MachineInstrs
+// into words of binary machine code. Its code is partially generated by
+// TableGen's CodeEmitterGenerator.
//
//===----------------------------------------------------------------------===//
public:
SparcV9CodeEmitter(TargetMachine &T, MachineCodeEmitter &M);
- ~SparcV9CodeEmitter();
+ ~SparcV9CodeEmitter() {}
+
+ const char *getPassName() const { return "SparcV9 Machine Code Emitter"; }
/// runOnMachineFunction - emits the given machine function to memory.
///
/// emitWord - writes out the given 32-bit value to memory at the current PC.
///
void emitWord(unsigned Val);
-
+
/// getBinaryCodeForInstr - This function, generated by the
/// CodeEmitterGenerator using TableGen, produces the binary encoding for
/// machine instructions.
///
unsigned getBinaryCodeForInstr(MachineInstr &MI);
- /// emitFarCall - produces a code sequence to make a call to a destination
- /// that does not fit in the 30 bits that a call instruction allows.
- /// If the function F is non-null, this also saves the return address in
- /// the LazyResolver map of the JITResolver.
- void emitFarCall(uint64_t Addr, Function *F = 0);
-
-private:
- /// getMachineOpValue -
+private:
+ /// getMachineOpValue -
///
int64_t getMachineOpValue(MachineInstr &MI, MachineOperand &MO);
- /// emitBasicBlock -
+ /// emitBasicBlock -
///
void emitBasicBlock(MachineBasicBlock &MBB);
- /// getValueBit -
+ /// getValueBit -
///
unsigned getValueBit(int64_t Val, unsigned bit);
- /// getGlobalAddress -
+ /// getGlobalAddress -
///
void* getGlobalAddress(GlobalValue *V, MachineInstr &MI,
bool isPCRelative);
- /// emitFarCall -
+ /// emitFarCall -
///
unsigned getRealRegNum(unsigned fakeReg, MachineInstr &MI);