mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215846 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
78e8d52a58
commit
70d641fbec
@ -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…
Reference in New Issue
Block a user