Skip to content
  1. Aug 06, 2003
    • Misha Brukman's avatar
      SparcV9CodeEmitter.cpp: · 4510698a
      Misha Brukman authored
      * Doxygen-ified comments
      * Added capability to make far calls (i.e., beyond 30 bits in CALL instr)
        which implies that we need to delete function references that were added by
        the call to addFunctionReference() because the actual call instruction is 10
        instructions away (thanks to 64-bit address construction)
      * Cleaned up code that generates far jumps by using an array+loop
      
      SparcV9CodeEmitter.h:
      * Explained more of the side-effects of emitFarCall()
      
      llvm-svn: 7639
      4510698a
  2. Jul 29, 2003
  3. Jul 27, 2003
  4. Jul 16, 2003
  5. Jul 15, 2003
    • Misha Brukman's avatar
      Correctly handle calls to functions which are further away than 2**32 bits will · 384cb5dd
      Misha Brukman authored
      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.
      
      llvm-svn: 7178
      384cb5dd
    • Misha Brukman's avatar
      * Added support for the %ccr register · b402819d
      Misha Brukman authored
      * FP double registers are now coded correctly
      * Removed function which converted registers based on register types, it was
        broken (because regTypes are broken)
      
      llvm-svn: 7175
      b402819d
  6. Jul 03, 2003
    • Misha Brukman's avatar
      Apparently, the "regType" and "regClass" used in the Sparc backend are not both · bb956054
      Misha Brukman authored
      correct: empirically, "regType" is wrong for a number of registers. Thus, one
      can only rely on the "regClass" to figure out what kind of register one is
      dealing with.
      
      This change switches to using only "regClass" and adds a few extra DEBUG() print
      statements and a few clean-ups in comments and code, mostly minor.
      
      llvm-svn: 7103
      bb956054
  7. Jun 05, 2003
  8. Jun 04, 2003
    • Misha Brukman's avatar
      * Instead of re-inventing the MachineConstantPool emitter that's already given · efafdf80
      Misha Brukman authored
        in Emitter.cpp, just convert the Sparc version of the constant pool into
        what's already supported and inter-operate.
      * Implemented a first pass at lazy function resolution in the JITResolver. That
        required adding a SparcV9CodeEmitter pointer to simplify generating
        bit-patterns of the instructions.
      * SparcV9CodeEmitter now creates and destroys static TheJITResolver, which makes
        sense because the SparcV9CodeEmitter is the only user of TheJITResolver, and
        lives for the entire duration of the JIT (via PassManager which lives in VM).
      * Changed all return values in the JITResolver to uint64_t because of the 64-bit
        Sparc architecture.
      * Added a new version of getting the value of a GlobalValue in the
        SparcV9CodeEmitter, which now works for already-generated functions (JITted or
        library functions).
      * Removed little-used and unused functions, cleaning up the internal view of the
        SparcV9CodeEmitter.
      
      llvm-svn: 6612
      efafdf80
  9. Jun 02, 2003
  10. May 30, 2003
    • Misha Brukman's avatar
      Added: · 5bf351c8
      Misha Brukman authored
      * ability to save BasicBlock references to be resolved later
      * register remappings from the enum values to the real hardware numbers
      
      llvm-svn: 6449
      5bf351c8
  11. May 28, 2003
  12. May 27, 2003
Loading