aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/LineEditor/LineEditor.cpp
diff options
context:
space:
mode:
authorDavid Peixotto <dpeixott@codeaurora.org>2014-02-04 17:22:40 +0000
committerDavid Peixotto <dpeixott@codeaurora.org>2014-02-04 17:22:40 +0000
commitb9b7362cdc52da0bbc2d7a5b8bee46c5720596e7 (patch)
treeb339d2ad5eda1a033adb8145f981adcfed5228a9 /llvm/lib/LineEditor/LineEditor.cpp
parentaeb456438c84851c492a24d6ecf3a521b44f49d3 (diff)
downloadllvm-b9b7362cdc52da0bbc2d7a5b8bee46c5720596e7.zip
llvm-b9b7362cdc52da0bbc2d7a5b8bee46c5720596e7.tar.gz
llvm-b9b7362cdc52da0bbc2d7a5b8bee46c5720596e7.tar.bz2
Fix PR18345: ldr= pseudo instruction produces incorrect code when using in inline assembly
This patch fixes the ldr-pseudo implementation to work when used in inline assembly. The fix is to move arm assembler constant pools from the ARMAsmParser class to the ARMTargetStreamer class. Previously we kept the assembler generated constant pools in the ARMAsmParser object. This does not work for inline assembly because a new parser object is created for each blob of inline assembly. This patch moves the constant pools to the ARMTargetStreamer class so that the constant pool will remain alive for the entire code generation process. An ARMTargetStreamer class is now required for the arm backend. There was no existing implementation for MachO, only Asm and ELF. Instead of creating an empty MachO subclass, we decided to make the ARMTargetStreamer a non-abstract class and provide default (llvm_unreachable) implementations for the non constant-pool related methods. Differential Revision: http://llvm-reviews.chandlerc.com/D2638 llvm-svn: 200777
Diffstat (limited to 'llvm/lib/LineEditor/LineEditor.cpp')
0 files changed, 0 insertions, 0 deletions