Skip to content
  1. Jun 28, 2012
    • Jack Carter's avatar
      This allows hello world to be compiled for Mips 64 direct object. · b9f9de93
      Jack Carter authored
      It takes advantage of r159299 which introduces relocation support for N64. 
      elf-dump needed to be upgraded to support N64 relocations as well.
      
      This passes make check.
      
      Jack
      
      llvm-svn: 159301
      b9f9de93
    • Jack Carter's avatar
      The ELF relocation record format is different for N64 · 8ad0c272
      Jack Carter authored
      which many Mips 64 ABIs use than for O64 which many 
      if not all other target ABIs use.
      
      Most architectures have the following 64 bit relocation record format:
      
        typedef struct
        {
          Elf64_Addr   r_offset; /* Address of reference */
          Elf64_Xword  r_info;   /* Symbol index and type of relocation */
        } Elf64_Rel;
      
        typedef struct
        {
          Elf64_Addr    r_offset;
          Elf64_Xword   r_info;
          Elf64_Sxword  r_addend;
        } Elf64_Rela;
      
      Whereas N64 has the following format:
      
        typedef struct
        {
          Elf64_Addr    r_offset;/* Address of reference */
          Elf64_Word  r_sym;     /* Symbol index */
          Elf64_Byte  r_ssym;    /* Special symbol */
          Elf64_Byte  r_type3;   /* Relocation type */
          Elf64_Byte  r_type2;   /* Relocation type */
          Elf64_Byte  r_type;    /* Relocation type */
        } Elf64_Rel;
      
        typedef struct
        {
          Elf64_Addr    r_offset;/* Address of reference */
          Elf64_Word  r_sym;     /* Symbol index */
          Elf64_Byte  r_ssym;    /* Special symbol */
          Elf64_Byte  r_type3;   /* Relocation type */
          Elf64_Byte  r_type2;   /* Relocation type */
          Elf64_Byte  r_type;    /* Relocation type */
          Elf64_Sxword  r_addend;
        } Elf64_Rela;
      
      The structure is the same size, but the r_info data element 
      is now 5 separate elements. Besides the content aspects, 
      endian byte reordering will be different for the area with 
      each element being endianized separately.
      
      I treat this as generic and continue to pass r_type as 
      an integer masking and unmasking the byte sized N64 
      values for N64 mode. I've implemented this and it causes no 
      affect on other current targets.
      
      This passes make check.
      
      Jack
      
      llvm-svn: 159299
      8ad0c272
  2. Jun 14, 2012
  3. Jun 09, 2012
  4. May 15, 2012
  5. Apr 22, 2012
  6. Apr 17, 2012
  7. Apr 16, 2012
  8. Apr 03, 2012
  9. Apr 02, 2012
  10. Mar 31, 2012
  11. Mar 28, 2012
  12. Mar 27, 2012
  13. Mar 26, 2012
  14. Mar 21, 2012
  15. Mar 05, 2012
  16. Mar 01, 2012
  17. Feb 28, 2012
  18. Feb 24, 2012
  19. Feb 17, 2012
  20. Feb 05, 2012
  21. Feb 03, 2012
  22. Jan 28, 2012
  23. Jan 24, 2012
  24. Jan 20, 2012
  25. Jan 18, 2012
  26. Jan 11, 2012
  27. Dec 22, 2011
  28. Dec 21, 2011
  29. Dec 20, 2011
Loading