ARM: support emission of complex SO expressions
authorSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 13 Mar 2014 07:02:41 +0000 (07:02 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 13 Mar 2014 07:02:41 +0000 (07:02 +0000)
commit0ed4ef85a85095f3f20f06db6c5eaec12eeb97e7
treef7cea16ca8230dbce965bc44a8ca10901dcfcc3e
parentb0f12dfab6b938351d373ca26c3ee56fd91fad8b
ARM: support emission of complex SO expressions

Support to the IAS was added to actually parse and handle the complex SO
expressions.  However, the object file lowering was not updated to compensate
for the fact that the shift operand may be an absolute expression.

When trying to assemble to an object file, the lowering would fail while
succeeding when emitting purely assembly.  Add an appropriate test.

The test case is inspired by the test case provided by Jiangning Liu who also
brought the issue to light.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203762 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
test/MC/ARM/shift-offset-addressing-emission.s [new file with mode: 0644]