mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-04 11:17:31 +00: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:
parent
cb64eee66e
commit
5df0772d37
@ -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;
|
||||
}
|
||||
|
||||
|
8
test/MC/ARM/directive-arch_extension-toggle.s
Normal file
8
test/MC/ARM/directive-arch_extension-toggle.s
Normal 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
|
Loading…
x
Reference in New Issue
Block a user