r200668 - Handle O32/N64 ABIs for NetBSD/MIPS64. From Matt Thomas.

Joerg Sonnenberger joerg at bec.de
Sun Feb 2 14:59:16 PST 2014


Author: joerg
Date: Sun Feb  2 16:59:16 2014
New Revision: 200668

URL: http://llvm.org/viewvc/llvm-project?rev=200668&view=rev
Log:
Handle O32/N64 ABIs for NetBSD/MIPS64. From Matt Thomas.

Modified:
    cfe/trunk/lib/Driver/ToolChains.cpp
    cfe/trunk/lib/Driver/Tools.cpp

Modified: cfe/trunk/lib/Driver/ToolChains.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=200668&r1=200667&r2=200668&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains.cpp Sun Feb  2 16:59:16 2014
@@ -2248,6 +2248,13 @@ NetBSD::NetBSD(const Driver &D, const ll
         break;
       }
       break;
+    case llvm::Triple::mips64:
+    case llvm::Triple::mips64el:
+      if (hasMipsABIArg(Args, "o32"))
+        getFilePaths().push_back("=/usr/lib/o32");
+      else if (hasMipsABIArg(Args, "64"))
+        getFilePaths().push_back("=/usr/lib/64");
+      break;
     default:
       break;
     }

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=200668&r1=200667&r2=200668&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Sun Feb  2 16:59:16 2014
@@ -6132,6 +6132,22 @@ void netbsd::Link::ConstructJob(Compilat
       break;
     }
     break;
+  case llvm::Triple::mips64:
+  case llvm::Triple::mips64el:
+    if (hasMipsABIArg(Args, "32")) {
+      CmdArgs.push_back("-m");
+      if (getToolChain().getArch() == llvm::Triple::mips64)
+        CmdArgs.push_back("elf32btsmip");
+      else
+        CmdArgs.push_back("elf32ltsmip");
+   } else if (hasMipsABIArg(Args, "64")) {
+     CmdArgs.push_back("-m");
+     if (getToolChain().getArch() == llvm::Triple::mips64)
+       CmdArgs.push_back("elf64btsmip");
+     else
+       CmdArgs.push_back("elf64ltsmip");
+   }
+   break;
   default:
     break;
   }





More information about the cfe-commits mailing list