[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcV9CodeEmitter.h

Misha Brukman brukman at cs.uiuc.edu
Tue Jul 15 14:10:01 PDT 2003

Changes in directory llvm/lib/Target/Sparc:

SparcV9CodeEmitter.h updated: 1.9 -> 1.10

Log message:

Correctly handle calls to functions which are further away than 2**32 bits will
allow, i.e. make a sequence of instructions to enable an indirect call using
jump-and-link and 2 temporary registers (which we save and ultimately restore).

Warning: if the delay slot of a function call is used to do meaningful work and
not just a NOP, this behavior is incorrect. However, the Sparc backend does not
yet utilize the delay slots effectively, so it is not necessary to make an
overly complicated algorithm for something that's not used.

Diffs of the changes:

Index: llvm/lib/Target/Sparc/SparcV9CodeEmitter.h
diff -u llvm/lib/Target/Sparc/SparcV9CodeEmitter.h:1.9 llvm/lib/Target/Sparc/SparcV9CodeEmitter.h:1.10
--- llvm/lib/Target/Sparc/SparcV9CodeEmitter.h:1.9	Mon Jul 14 18:26:03 2003
+++ llvm/lib/Target/Sparc/SparcV9CodeEmitter.h	Tue Jul 15 14:09:43 2003
@@ -49,6 +49,8 @@
                          bool isPCRelative);
   bool isFPInstr(MachineInstr &MI);
   unsigned getRealRegNum(unsigned fakeReg, MachineInstr &MI);
+  inline void emitFarCall(uint64_t Addr);

More information about the llvm-commits mailing list