1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00

ARM: correct toggling behaviour

This was a thinko.  The intent was to flip the explicit bits that need toggling
rather than all bits.  This would result in incorrect behaviour (which now is
tested).

Thanks to Nico Weber for pointing this out!

llvm-svn: 215846
This commit is contained in:
Saleem Abdulrasool 2014-08-17 19:20:38 +00:00
parent cb64eee66e
commit 5df0772d37
2 changed files with 14 additions and 8 deletions

View File

@ -9580,14 +9580,12 @@ bool ARMAsmParser::parseDirectiveArchExtension(SMLoc L) {
return false;
}
bool ToggleFeatures = EnableFeature
? (~STI.getFeatureBits() & Extension.Features)
: ( STI.getFeatureBits() & Extension.Features);
if (ToggleFeatures) {
unsigned Features =
ComputeAvailableFeatures(STI.ToggleFeature(Extension.Features));
setAvailableFeatures(Features);
}
unsigned ToggleFeatures = EnableFeature
? (~STI.getFeatureBits() & Extension.Features)
: ( STI.getFeatureBits() & Extension.Features);
unsigned Features =
ComputeAvailableFeatures(STI.ToggleFeature(ToggleFeatures));
setAvailableFeatures(Features);
return false;
}

View File

@ -0,0 +1,8 @@
@ RUN: llvm-mc -triple armv7-eabi -mattr hwdiv -filetype asm -o /dev/null %s
.syntax unified
.thumb
udiv r0, r1, r2
.arch_extension idiv
udiv r0, r1, r2