[llvm-branch-commits] [llvm-branch] r276560 - Merging r275966:

2016-07-24 Thread Daniel Sanders via llvm-branch-commits
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:

2016-07-24 Thread Daniel Sanders via llvm-branch-commits
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:

2016-07-24 Thread Daniel Sanders via llvm-branch-commits
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