]> granicus.if.org Git - clang/commit
[mips] Invert the abicalls feature bit to be noabicalls so that it's possible for...
authorDaniel Sanders <daniel.sanders@imgtec.com>
Fri, 8 Aug 2014 15:47:17 +0000 (15:47 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Fri, 8 Aug 2014 15:47:17 +0000 (15:47 +0000)
commitc4d24d4103206a390bdc60c34aea49dc1df0aace
tree22c2f67372e80ba1a2a715f87f9c40f34e84e553
parent22a11d21891eeed1b5d9a936014e3dae69bb2399
[mips] Invert the abicalls feature bit to be noabicalls so that it's possible for -mno-abicalls to take effect.

Also added the testcase that should have been in r215194.

This behaviour has surprised me a few times now. The problem is that the
generated MipsSubtarget::ParseSubtargetFeatures() contains code like this:

   if ((Bits & Mips::FeatureABICalls) != 0) IsABICalls = true;

so '-abicalls' means 'leave it at the default' and '+abicalls' means 'set it to
true'. In this case, (and the similar -modd-spreg case) I'd like the code to be

  IsABICalls = (Bits & Mips::FeatureABICalls) != 0;

or possibly:

   if ((Bits & Mips::FeatureABICalls) != 0)
     IsABICalls = true;
   else
     IsABICalls = false;

and preferably arrange for 'Bits & Mips::FeatureABICalls' to be true by default
(on some triples).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215211 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Driver/Tools.cpp
test/Driver/mips-features.c
test/Driver/mips-integrated-as.s