Skip to content
  1. Feb 14, 2014
    • Reed Kotler's avatar
      This patch has two main functions: · 4cdaa7d7
      Reed Kotler authored
      1) Fix a specific bug when certain conversion functions are called in a program compiled as mips16 with hard float and
      the program is linked as c++. There are two libraries that are reversed in the link order with gcc/g++ and clang/clang++ for
      mips16 in this case and the proper stubs will then not be called. These stubs are normally handled in the Mips16HardFloat pass
      but in this case we don't know at that time that we need to generate the stubs. This must all be handled later in code generation
      and we have moved this functionality to MipsAsmPrinter. When linked as C (gcc or clang) the proper stubs are linked in from libc.
      
      2) Set up the infrastructure to handle 90% of what is in the Mips16HardFloat pass in this new area of MipsAsmPrinter. This is a more
      logical place to handle this and we have known for some time that we needed to move the code later and not implement it using
      inline asm as we do now but it was not clear exactly where to do this and what mechanism should be used. Now it's clear to us
      how to do this and this patch contains the infrastructure to move most of this to MipsAsmPrinter but the actual moving will be done
      in a follow on patch. The same infrastructure is used to fix this current bug as described in #1. This change was requested by the list
      during the original putback of the Mips16HardFloat pass but was not practical for us do at that time.
      
      llvm-svn: 201426
      4cdaa7d7
  2. Feb 01, 2014
    • Rafael Espindola's avatar
      Remove another hasRawTextSupport. · 972e71ab
      Rafael Espindola authored
      To remove this one simply move the end of file logic from the asm printer to
      the target mc streamer.
      
      This removes the last call to hasRawTextSupport from lib/Target.
      
      llvm-svn: 200590
      972e71ab
  3. Jan 27, 2014
  4. Jan 25, 2014
    • Rafael Espindola's avatar
      This reverts commit r200064 and r200051. · 14d02fe5
      Rafael Espindola authored
      r200064 depends on r200051.
      
      r200051 is broken: I tries to replace .mips_hack_elf_flags, which is a good
      thing, but what it replaces it with is even worse.
      
      The new emitMipsELFFlags it adds corresponds to no assembly directive, is not
      marked as a hack and is not even printed to the .s file.
      
      The patch also introduces more uses of hasRawTextSupport.
      
      The correct way to remove .mips_hack_elf_flags is to have the mips target
      streamer handle the default flags (and command line options). That way the
      same code path is used for asm and obj. The streamer interface should *really*
      correspond to what is printed in the .s file.
      
      llvm-svn: 200078
      14d02fe5
    • Jack Carter's avatar
      [Mips] TargetStreamer ELF flag Support for default and commandline options. · ca2ae49d
      Jack Carter authored
      This patch uses a common MipsTargetSteamer interface for both 
      MipsAsmPrinter and MipsAsmParser for recording default and commandline
      driven directives that affect ELF header flags.
      
      It has been noted that the .ll tests affected by this patch belong in
      test/Codegen/Mips. I will move them in a separate patch.
      
      Also, a number of directives do not get expressed by AsmPrinter in the 
      resultant .s assembly such as setting the correct ASI. I have noted this
      in the tests and they will be addressed in later patches.
      
      llvm-svn: 200051
      ca2ae49d
  5. Nov 26, 2013
  6. Nov 12, 2013
  7. Oct 27, 2013
    • Reed Kotler's avatar
      Make first substantial checkin of my port of ARM constant islands code to Mips. · 91ae9829
      Reed Kotler authored
      Before I just ported the shell of the pass. I've tried to keep everything
      nearly identical to the ARM version. I think it will be very easy to eventually
      merge these two and create a new more general pass that other targets can
      use. I have some improvements I would like to make to allow pools to 
      be shared across functions and some other things. When I'm all done we
      can think about making a more general pass. More to be ported but the
      basic mechanism works now almost as good as gcc mips16.
      
      llvm-svn: 193509
      91ae9829
  8. Oct 08, 2013
    • Rafael Espindola's avatar
      Add a MCTargetStreamer interface. · a17151ad
      Rafael Espindola authored
      This patch fixes an old FIXME by creating a MCTargetStreamer interface
      and moving the target specific functions for ARM, Mips and PPC to it.
      
      The ARM streamer is still declared in a common place because it is
      used from lib/CodeGen/ARMException.cpp, but the Mips and PPC are
      completely hidden in the corresponding Target directories.
      
      I will send an email to llvmdev with instructions on how to use this.
      
      llvm-svn: 192181
      a17151ad
  9. Jun 16, 2013
  10. Jan 18, 2013
    • Jack Carter's avatar
      This is a resubmittal. For some reason it broke the bots yesterday · c1b17ed2
      Jack Carter authored
      but I cannot reproduce the problem and have scrubed my sources and
      even tested with llvm-lit -v --vg.
      Support for Mips register information sections.
      
      Mips ELF object files have a section that is dedicated
      to register use info. Some of this information such as
      the assumed Global Pointer value is used by the linker
      in relocation resolution.
      
      The register info file is .reginfo in o32 and .MIPS.options
      in 64 and n32 abi files.
      
      This patch contains the changes needed to create the sections,
      but leaves the actual register accounting for a future patch.
      
      
      Contributer: Jack Carter
       
      llvm-svn: 172847
      c1b17ed2
  11. Dec 04, 2012
  12. Sep 27, 2012
  13. Mar 28, 2012
    • Akira Hatanaka's avatar
      Emit all directives except for ".cprestore" during asm printing rather than emit · 34ee3ff8
      Akira Hatanaka authored
      them as machine instructions. Directives ".set noat" and ".set at" are now
      emitted only at the beginning and end of a function except in the case where
      they are emitted to enclose .cpload with an immediate operand that doesn't fit
      in 16-bit field or unaligned load/stores.
      
      Also, make the following changes:
      - Remove function isUnalignedLoadStore and use a switch-case statement to
        determine whether an instruction is an unaligned load or store.
      
      - Define helper function CreateMCInst which generates an instance of an MCInst
        from an opcode and a list of operands.
      
      llvm-svn: 153552
      34ee3ff8
  14. Mar 17, 2012
  15. Feb 17, 2012
  16. Nov 23, 2011
  17. Jul 08, 2011
  18. Jul 07, 2011
Loading