[llvm-branch-commits] [llvm-branch] r276560 - Merging r275966:
Author: dsanders Date: Sun Jul 24 05:34:15 2016 New Revision: 276560 URL: http://llvm.org/viewvc/llvm-project?rev=276560&view=rev Log: Merging r275966: r275966 | dsanders | 2016-07-19 11:22:19 +0100 (Tue, 19 Jul 2016) | 11 lines [mips] Recognise the triple used by Debian stretch for mips64el. Summary: The triple used for this distribution is mips64el-linux-gnuabi64. Reviewers: sdardis Subscribers: sdardis, llvm-commits Differential Revision: https://reviews.llvm.org/D22406 Modified: llvm/branches/release_39/include/llvm/ADT/Triple.h llvm/branches/release_39/lib/Support/Triple.cpp Modified: llvm/branches/release_39/include/llvm/ADT/Triple.h URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/include/llvm/ADT/Triple.h?rev=276560&r1=276559&r2=276560&view=diff == --- llvm/branches/release_39/include/llvm/ADT/Triple.h (original) +++ llvm/branches/release_39/include/llvm/ADT/Triple.h Sun Jul 24 05:34:15 2016 @@ -174,6 +174,7 @@ public: UnknownEnvironment, GNU, +GNUABI64, GNUEABI, GNUEABIHF, GNUX32, @@ -476,8 +477,9 @@ public: bool isGNUEnvironment() const { EnvironmentType Env = getEnvironment(); -return Env == Triple::GNU || Env == Triple::GNUEABI || - Env == Triple::GNUEABIHF || Env == Triple::GNUX32; +return Env == Triple::GNU || Env == Triple::GNUABI64 || + Env == Triple::GNUEABI || Env == Triple::GNUEABIHF || + Env == Triple::GNUX32; } /// Checks if the environment could be MSVC. Modified: llvm/branches/release_39/lib/Support/Triple.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Support/Triple.cpp?rev=276560&r1=276559&r2=276560&view=diff == --- llvm/branches/release_39/lib/Support/Triple.cpp (original) +++ llvm/branches/release_39/lib/Support/Triple.cpp Sun Jul 24 05:34:15 2016 @@ -201,6 +201,7 @@ const char *Triple::getEnvironmentTypeNa switch (Kind) { case UnknownEnvironment: return "unknown"; case GNU: return "gnu"; + case GNUABI64: return "gnuabi64"; case GNUEABIHF: return "gnueabihf"; case GNUEABI: return "gnueabi"; case GNUX32: return "gnux32"; @@ -468,6 +469,7 @@ static Triple::EnvironmentType parseEnvi return StringSwitch(EnvironmentName) .StartsWith("eabihf", Triple::EABIHF) .StartsWith("eabi", Triple::EABI) +.StartsWith("gnuabi64", Triple::GNUABI64) .StartsWith("gnueabihf", Triple::GNUEABIHF) .StartsWith("gnueabi", Triple::GNUEABI) .StartsWith("gnux32", Triple::GNUX32) ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r276562 - Merging r275968:
Author: dsanders Date: Sun Jul 24 06:40:23 2016 New Revision: 276562 URL: http://llvm.org/viewvc/llvm-project?rev=276562&view=rev Log: Merging r275968: r275968 | dsanders | 2016-07-19 11:58:06 +0100 (Tue, 19 Jul 2016) | 7 lines [mips][ias] R_MIPS_GOT_(PAGE|OFST) do not need symbols Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: https://reviews.llvm.org/D22458 Modified: llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp llvm/branches/release_39/test/MC/Mips/relocation.s Modified: llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp?rev=276562&r1=276561&r2=276562&view=diff == --- llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp (original) +++ llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp Sun Jul 24 06:40:23 2016 @@ -518,6 +518,10 @@ bool MipsELFObjectWriter::needsRelocateW return true; return false; + case ELF::R_MIPS_GOT_PAGE: + case ELF::R_MICROMIPS_GOT_PAGE: + case ELF::R_MIPS_GOT_OFST: + case ELF::R_MICROMIPS_GOT_OFST: case ELF::R_MIPS_16: case ELF::R_MIPS_32: case ELF::R_MIPS_GPREL32: @@ -539,8 +543,6 @@ bool MipsELFObjectWriter::needsRelocateW case ELF::R_MIPS_SHIFT5: case ELF::R_MIPS_SHIFT6: case ELF::R_MIPS_GOT_DISP: - case ELF::R_MIPS_GOT_PAGE: - case ELF::R_MIPS_GOT_OFST: case ELF::R_MIPS_GOT_HI16: case ELF::R_MIPS_GOT_LO16: case ELF::R_MIPS_INSERT_A: @@ -589,8 +591,6 @@ bool MipsELFObjectWriter::needsRelocateW case ELF::R_MICROMIPS_PC16_S1: case ELF::R_MICROMIPS_CALL16: case ELF::R_MICROMIPS_GOT_DISP: - case ELF::R_MICROMIPS_GOT_PAGE: - case ELF::R_MICROMIPS_GOT_OFST: case ELF::R_MICROMIPS_GOT_HI16: case ELF::R_MICROMIPS_GOT_LO16: case ELF::R_MICROMIPS_SUB: Modified: llvm/branches/release_39/test/MC/Mips/relocation.s URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/test/MC/Mips/relocation.s?rev=276562&r1=276561&r2=276562&view=diff == --- llvm/branches/release_39/test/MC/Mips/relocation.s (original) +++ llvm/branches/release_39/test/MC/Mips/relocation.s Sun Jul 24 06:40:23 2016 @@ -116,7 +116,7 @@ baz:.long foo // ?: R_MIPS_SHIFT5 foo // ?: R_MIPS_SHIFT6 foo -// DATA-NEXT: 0060: 2462 2462 2462 2462 +// DATA-NEXT: 0060: 2462 2462 24620004 2462 addiu $2, $3, %got_disp(foo) // RELOC: R_MIPS_GOT_DISP foo // ENCBE: addiu $2, $3, %got_disp(foo) # encoding: [0x24,0x62,A,A] // ENCLE: addiu $2, $3, %got_disp(foo) # encoding: [A,A,0x62,0x24] @@ -127,17 +127,27 @@ baz:.long foo // ENCLE: addiu $2, $3, %got_page(foo) # encoding: [A,A,0x62,0x24] // FIXUP: # fixup A - offset: 0, value: %got_page(foo), kind: fixup_Mips_GOT_PAGE +addiu $2, $3, %got_page(bar) // RELOC: R_MIPS_GOT_PAGE .data + // ENCBE: addiu $2, $3, %got_page(bar) # encoding: [0x24,0x62,A,A] + // ENCLE: addiu $2, $3, %got_page(bar) # encoding: [A,A,0x62,0x24] + // FIXUP: # fixup A - offset: 0, value: %got_page(bar), kind: fixup_Mips_GOT_PAGE + addiu $2, $3, %got_ofst(foo) // RELOC: R_MIPS_GOT_OFST foo // ENCBE: addiu $2, $3, %got_ofst(foo) # encoding: [0x24,0x62,A,A] // ENCLE: addiu $2, $3, %got_ofst(foo) # encoding: [A,A,0x62,0x24] // FIXUP: # fixup A - offset: 0, value: %got_ofst(foo), kind: fixup_Mips_GOT_OFST +// DATA-NEXT: 0070: 24620004 2462 2462 6462 +addiu $2, $3, %got_ofst(bar) // RELOC: R_MIPS_GOT_OFST .data + // ENCBE: addiu $2, $3, %got_ofst(bar) # encoding: [0x24,0x62,A,A] + // ENCLE: addiu $2, $3, %got_ofst(bar) # encoding: [A,A,0x62,0x24] + // FIXUP: # fixup A - offset: 0, value: %got_ofst(bar), kind: fixup_Mips_GOT_OFST + addiu $2, $3, %got_hi(foo) // RELOC: R_MIPS_GOT_HI16 foo // ENCBE: addiu $2, $3, %got_hi(foo) # encoding: [0x24,0x62,A
[llvm-branch-commits] [llvm-branch] r276561 - Merging r275967:
Author: dsanders Date: Sun Jul 24 06:39:45 2016 New Revision: 276561 URL: http://llvm.org/viewvc/llvm-project?rev=276561&view=rev Log: Merging r275967: r275967 | dsanders | 2016-07-19 11:49:03 +0100 (Tue, 19 Jul 2016) | 16 lines [mips] Correct label prefixes for N32 and N64. Summary: N32 and N64 follow the standard ELF conventions (.L) whereas O32 uses its own ($). This fixes the majority of object differences between -fintegrated-as and -fno-integrated-as. Reviewers: sdardis Subscribers: dsanders, sdardis, llvm-commits Differential Revision: https://reviews.llvm.org/D22412 Added: llvm/branches/release_39/test/CodeGen/Mips/jumptable_labels.ll Modified: llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp llvm/branches/release_39/lib/Target/Mips/MipsTargetMachine.cpp llvm/branches/release_39/test/CodeGen/Mips/2009-11-16-CstPoolLoad.ll llvm/branches/release_39/test/CodeGen/Mips/2010-07-20-Switch.ll llvm/branches/release_39/test/CodeGen/Mips/analyzebranch.ll llvm/branches/release_39/test/CodeGen/Mips/atomic.ll llvm/branches/release_39/test/CodeGen/Mips/blez_bgez.ll llvm/branches/release_39/test/CodeGen/Mips/blockaddr.ll llvm/branches/release_39/test/CodeGen/Mips/ehframe-indirect.ll llvm/branches/release_39/test/CodeGen/Mips/fcmp.ll llvm/branches/release_39/test/CodeGen/Mips/fpbr.ll llvm/branches/release_39/test/CodeGen/Mips/llvm-ir/ashr.ll llvm/branches/release_39/test/CodeGen/Mips/llvm-ir/indirectbr.ll llvm/branches/release_39/test/CodeGen/Mips/llvm-ir/lshr.ll llvm/branches/release_39/test/CodeGen/Mips/llvm-ir/select-dbl.ll llvm/branches/release_39/test/CodeGen/Mips/llvm-ir/select-flt.ll llvm/branches/release_39/test/CodeGen/Mips/llvm-ir/select-int.ll llvm/branches/release_39/test/CodeGen/Mips/llvm-ir/shl.ll llvm/branches/release_39/test/CodeGen/Mips/longbranch.ll llvm/branches/release_39/test/CodeGen/Mips/msa/basic_operations.ll llvm/branches/release_39/test/CodeGen/Mips/msa/basic_operations_float.ll llvm/branches/release_39/test/CodeGen/Mips/octeon.ll llvm/branches/release_39/test/MC/Mips/cpsetup.s llvm/branches/release_39/test/MC/Mips/expansion-jal-sym-pic.s llvm/branches/release_39/test/MC/Mips/macro-la.s llvm/branches/release_39/test/MC/Mips/mips3/valid.s llvm/branches/release_39/test/MC/Mips/mips4/valid.s llvm/branches/release_39/test/MC/Mips/mips5/valid.s llvm/branches/release_39/test/MC/Mips/mips64/valid.s llvm/branches/release_39/test/MC/Mips/mips64r2/valid.s llvm/branches/release_39/test/MC/Mips/mips64r3/valid.s llvm/branches/release_39/test/MC/Mips/mips64r5/valid.s Modified: llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp?rev=276561&r1=276560&r2=276561&view=diff == --- llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp (original) +++ llvm/branches/release_39/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp Sun Jul 24 06:39:45 2016 @@ -28,12 +28,19 @@ MipsMCAsmInfo::MipsMCAsmInfo(const Tripl PointerSize = CalleeSaveStackSlotSize = 8; } + // FIXME: This condition isn't quite right but it's the best we can do until + //this object can identify the ABI. It will misbehave when using O32 + //on a mips64*-* triple. + if ((TheTriple.getArch() == Triple::mipsel) || + (TheTriple.getArch() == Triple::mips)) { +PrivateGlobalPrefix = "$"; +PrivateLabelPrefix = "$"; + } + AlignmentIsInBytes = false; Data16bitsDirective = "\t.2byte\t"; Data32bitsDirective = "\t.4byte\t"; Data64bitsDirective = "\t.8byte\t"; - PrivateGlobalPrefix = "$"; - PrivateLabelPrefix = "$"; CommentString = "#"; ZeroDirective = "\t.space\t"; GPRel32Directive= "\t.gpword\t"; Modified: llvm/branches/release_39/lib/Target/Mips/MipsTargetMachine.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/Mips/MipsTargetMachine.cpp?rev=276561&r1=276560&r2=276561&view=diff == --- llvm/branches/release_39/lib/Target/Mips/MipsTargetMachine.cpp (original) +++ llvm/branches/release_39/lib/Target/Mips/MipsTargetMachine.cpp Sun Jul 24 06:39:45 2016 @@ -57,7 +57,10 @@ static std::string computeDataLayout(con else Ret += "E"; - Ret += "-m:m"; + if (ABI.IsO32()) +Ret += "-m:m"; + else +Ret += "-m:e"; // Pointers are 32 bit on some ABIs. if (!ABI.IsN64()) Modified: llvm/branches/release_39/test/CodeGen/Mips/2009-11-16-CstPoolLoad.ll URL: htt